10 个版本 (5 个破坏性更新)
使用旧的 Rust 2015
0.7.0 | 2024 年 1 月 18 日 |
---|---|
0.6.1 | 2021 年 2 月 24 日 |
0.6.0 | 2020 年 12 月 10 日 |
0.5.0 | 2020 年 8 月 28 日 |
0.2.0-alpha6 | 2019 年 3 月 24 日 |
#43 in 生物学
每月 32 次下载
在 lorikeet-rs 中使用
2.5MB
11K SLoC
CoverM
CoverM 致力于成为一个可配置的、易于使用且快速的 DNA 读覆盖和相对丰度计算器,专注于宏基因组应用。
CoverM 可以计算基因组/MAGs 的覆盖度 coverm genome
(帮助) 或单个 contig coverm contig
(帮助)。通过读映射计算覆盖度,其输入可以是按参考排序的 BAM 文件,也可以是各种格式的原始读和参考基因组。
安装
通过 bioconda 软件包安装
CoverM 及其依赖项可以通过 bioconda conda 频道进行安装。在初始化 conda 和 bioconda 频道后,可以使用以下命令安装
conda install coverm
预编译的二进制文件
静态编译的 CoverM 二进制文件可在 发布页面 上找到。此安装方法需要单独安装非 Rust 依赖项 - 请参阅 依赖项部分。
从源码编译
CoverM 还可以从源码安装,使用在安装 Rust 后的 cargo 构建系统。
cargo install coverm
开发版本
要运行未发布的 CoverM 版本,在安装 Rust 和以下列出的任何其他附加依赖项后
git clone https://github.com/wwood/CoverM
cd CoverM
cargo run -- genome ...etc...
运行测试
cargo build
cargo test
依赖项
要获得完整选项集,还需要安装其他程序,无论是从源码安装还是进行开发。
可以使用 conda YAML 环境定义安装这些程序
conda env create -n coverm -f coverm.yml
或者,可以手动安装这些程序
和一些映射软件
用于去重
Shell 完成脚本
可以为各种shell生成完成脚本,例如BASH(这需要root权限)
coverm shell-completion --output-file coverm --shell bash
mv coverm /etc/bash_completion.d/
也可以安装到用户的家目录中(不需要root权限)
coverm shell-completion --shell bash --output-file /dev/stdout >>~/.bash_completion
在两种情况下,为了生效,可能需要重新启动终端。为了测试,请输入 coverm gen
并在按TAB键后应该完成。
用法
CoverM在几种模式下运行。详细的用法信息(包括示例)可以在以下链接中找到,或者也可以使用每个模式的 -h
或 --full-help
标志来获取
还有一些实用模式
计算方法
-m/--methods
标志指定要计算的特定覆盖度类型。
为了说明,想象有一组3对读段,其中只有1对映射到长度为1000bp的单个参考contig
read1_forward ========>
read1_reverse <====+====
contig ...-----------------------------------------------------....
| | | | |
position 200 210 220 230 240
不同的覆盖度度量将是
方法 | 值 | 公式 | 解释 |
---|---|---|---|
mean | 0.02235294 | (10+9)/(1000-2*75) | 两个读段中有10和9个碱基精确对齐,平均在1000-2*75 bp(contig长度减去两端各75bp)。 |
relative_abundance | 33.3% | 0.02235294/0.02235294*(2/6) | 如果contig被认为是基因组,那么它的平均覆盖度是0.02235294。所有基因组中有0.02235294的平均覆盖度,6个读段中有2个(3对中的1对)映射。这种覆盖度计算仅在'genome'模式下可用。 |
trimmed_mean | 0 | mean_coverage(mid-ranked-positions) | 在移除5%最高覆盖度的碱基和5%最低覆盖度的碱基后,所有剩余位置的覆盖度均为0。 |
covered_fraction | 0.02 | (10+10)/1000 | 20个碱基被任何读段覆盖,总共1000bp。 |
covered_bases | 20 | 10+10 | 20个碱基被覆盖。 |
variance | 0.01961962 | var({1;20},{0;980}) | 方差计算为样本方差。 |
length | 1000 | contig的长度是1000bp。 | |
count | 2 | 2个读段被映射。 | |
reads_per_base | 0.002 | 2/1000 | 2个读段映射到1000bp。 |
metabat | contigLen 1000, totalAvgDepth 0.02235294, bam depth 0.02235294, variance 0.01961962 | 复制MetaBAT 'jgi_summarize_bam_contig_depths' 工具输出,产生相同的输出。 | |
coverage_histogram | 覆盖度1的20个碱基,覆盖度0的980个碱基 | 统计具有不同覆盖度的位置数量。 | |
rpkm | 1000000 | 2 * 10^9 / 1000 / 2 | 这里的计算假设没有其他读段映射到其他contig。有关RPKM的解释,请参阅https://haroldpimentel.wordpress.com/2014/05/08/what-the-fpkm-a-review-rna-seq-expression-units/ |
tpm | 1000000 | rpkm/total_of_rpkm * 10^6 | 这里的计算假设没有其他读段映射到其他contig。有关RPKM的说明,请参阅上文。 |
基因组覆盖率的计算(genome
模式)与计算连续序列覆盖率的计算方法类似,区别在于报告的单位是每个基因组而不是每个连续序列。对于排除基于覆盖率的碱基位置的计算方法,考虑所有连续序列中的所有位置。例如,如果一个2000bp的连续序列中所有位置的覆盖率为1X,而基因组中的2,000,000bp连续序列没有映射的读取,那么trimmed_mean将为0,因为2000bp中的所有位置都在按覆盖率排序的前5%的位置中。
许可
CoverM在GPL3+下提供。有关详细信息,请参阅LICENSE.txt。版权所有Ben Woodcroft。
由Ben Woodcroft在昆士兰科技大学微生物组研究中心开发。
依赖项
~36–48MB
~764K SLoC