8 个版本
0.6.2 | 2020年7月18日 |
---|---|
0.6.1 | 2020年5月26日 |
0.5.1 | 2019年2月22日 |
0.4.1 | 2018年10月9日 |
0.3.0 | 2018年7月19日 |
#119 in 生物学
23 每月下载量
105KB
2.5K SLoC
长读长嵌合体读取检测器
使用全对全读映射,yacrd 执行
- 每个读取的堆叠覆盖计算
- 嵌合体检测
嵌合体检测如下
- 对于覆盖小于或等于
min_coverage
(默认 0)的每个区域,yacrd 创建一个 坏区域。 - 如果存在一个 坏区域,它严格在读取开始之后开始,并在读取结束之前结束,则读取被标记为
Chimeric
- 如果总 坏区域 长度 > 读取长度 * 0.8,则读取被标记为
NotCovered
- 如果一个读取既不是
Chimeric
也不是NotCovered
,则标记为NotBad
理由
长读错误纠正工具通常检测并删除嵌合体,但很难从这一步中隔离或检索信息。
DAStrim(来自 DASCRUBBER 套件)与 yacrd 做类似的工作,但依赖于不同的映射步骤,并使用不同的(可能更先进的)启发式算法。Yacrd 更简单,更容易使用。
此 仓库 包含一组脚本来评估 yacrd 在真实数据集上与其他类似工具(如 DASCRUBBER 和 miniscrub)的性能。
输入
任何长读集(PacBio、Nanopore、任何可以给 minimap2 的东西)。yacrd 以 minimap2 或其他长读重叠器(如 BLASR m4 文件)的结果 PAF(成对对齐格式)作为输入。
要求
- Rust 稳定渠道
- libgz
- libbzip2
- liblzma
安装
使用 conda
yacrd 可在 bioconda 频道 中找到
如果已设置 bioconda 频道,您可以运行
conda install yacrd
从源代码
git clone https://github.com/natir/yacrd.git
cd yacrd
git checkout v0.6.1
cargo build
cargo test
cargo install --path .
如何使用 Yacrd
查找嵌合体
minimap2 reads.fq reads.fq > overlap.paf
yacrd -i overlap.paf -o reads.yacrd
检测后操作
yacrd 可以执行一些检测后操作
- 过滤器:对于序列或重叠文件,标记为嵌合体或未覆盖的读取记录不写入输出
- 提取:对于序列或重叠文件,包含标记为嵌合体或未覆盖的读取记录写入输出
- 拆分:对于序列文件,移除读取中间的坏区域,移除未覆盖的读取
- scrubb:对于序列文件,移除所有坏区域,移除未覆盖的读取
minimap2 reads.fq reads.fq > mapping.paf
yacrd -i mapping.paf -o reads.yacrd filter -i reads.fasta -o reads.filter.fasta
yacrd -i mapping.paf -o reads.yacrd extract -i reads.fasta -o reads.extract.fasta
yacrd -i mapping.paf -o reads.yacrd split -i reads.fasta -o reads.split.fasta
yacrd -i mapping.paf -o reads.yacrd scrubb -i reads.fasta -o reads.scrubb.fasta
读取刮擦推荐的参数
对于纳米孔数据,我们建议使用所有与所有纳米孔预置的minimap2,种子之间的最大距离固定为500(选项-g 500
)以生成重叠。我们建议使用最小覆盖固定为4(选项-c
)和读取的最小覆盖固定为0.4(选项-n
)运行yacrd。
这是运行yacrd刮擦的一个示例
minimap2 -x ava-ont -g 500 reads.fasta reads.fasta > overlap.paf
yacrd -i overlap.paf -o report.yacrd -c 4 -n 0.4 scrubb -i reads.fasta -o reads.scrubb.fasta
对于PacBio P6-C4数据,我们建议使用所有与所有PacBio预置的minimap2,种子之间的最大距离固定为800(选项-g 800
)以生成重叠。我们建议使用最小覆盖固定为4(选项-c 4
)和读取的最小覆盖固定为0.4(选项-n 0.4
)运行yacrd。
minimap2 -x ava-pb -g 800 reads.fasta reads.fasta > overlap.paf
yacrd -i overlap.paf -o report.yacrd -c 4 -n 0.4 scrubb -i reads.fasta -o reads.scrubb.fasta
对于PacBio Sequel数据,我们建议使用所有与所有PacBio预置的minimap2,种子之间的最大距离固定为5000(选项-g 5000
)以生成重叠。我们推荐使用最小覆盖固定为3(选项-c 3
)和读取的最小覆盖固定为0.4(选项-n 0.4
)运行yacrd。
minimap2 -x ava-pb -g 5000 reads.fasta reads.fasta > overlap.paf
yacrd -i overlap.paf -o report.yacrd -c 3 -n 0.4 scrubb -i reads.fasta -o reads.scrubb.fasta
重要说明
扩展
yacrd使用扩展来检测格式文件,如果你的文件名包含(任何地方)
.paf
:文件被认为是minimap文件.m4
,.mhap
:文件被认为是blasr m4文件(mhap输出).fa
,.fasta
:文件被认为是fasta文件.fq
,.fastq
:文件被认为是fastq文件.yacrd
:文件被认为是yacrd输出文件
压缩
yacrd自动检测文件是否已压缩(gzip、bzip2和lzma压缩可用)。对于检测后的操作,如果输入已压缩,则输出具有相同的压缩格式。
使用yacrd报告作为输入
您可以使用yacrd报告作为重叠文件输入,如果使用yacrd报告作为输入,则忽略ondisk
选项。
输出
type_of_read id_in_mapping_file length_of_read length_of_gap,begin_pos_of_gap,end_pos_of_gap;length_of_gap,be…
示例
NotCovered readA 4599 3782,0,3782
在这里,readA没有足够的覆盖,在位置0和3782之间存在一个长度为3782bp的零覆盖区域。
Chimeric readB 10452 862,1260,2122;3209,4319,7528
在这里,readB是嵌合体,有2个零覆盖区域:一个在碱基1260和2122之间,另一个在4319和7528之间。
引用
如果您在研究中使用yacrd,请引用以下出版物
Pierre Marijon, Rayan Chikhi, Jean-Stéphane Varré, yacrd and fpa: upstream tools for long-read genome assembly, Bioinformatics, btaa262, https://doi.org/10.1093/bioinformatics/btaa262
bibtex格式
@article {@article{Marijon_2020,
doi = {10.1093/bioinformatics/btaa262},
url = {https://doi.org/10.1093%2Fbioinformatics%2Fbtaa262},
year = 2020,
month = {apr},
publisher = {Oxford University Press ({OUP})},
author = {Pierre Marijon and Rayan Chikhi and Jean-St{\'{e}}phane Varr{\'{e}}},
editor = {Inanc Birol},
title = {yacrd and fpa: upstream tools for long-read genome assembly},
journal = {Bioinformatics}
}
依赖关系
~15–25MB
~336K SLoC