5 个版本
新版本 0.1.4 | 2024 年 8 月 18 日 |
---|---|
0.1.3 | 2024 年 8 月 13 日 |
0.1.2 | 2024 年 7 月 31 日 |
0.1.1 | 2024 年 7 月 31 日 |
0.1.0 | 2024 年 7 月 31 日 |
#95 in 生物学
每月 439 次下载
605KB
1.5K SLoC
klassify
根据独特的 kmer 内容对嵌合读数进行分类,并识别断点位置。
断点可能由以下原因引起
- 重组/交叉事件
- 结构变异
虽然有许多工具可以识别结构变异,但本工具旨在比较后代(例如 F1)读数与亲本基因组。关键思想是对 trio binning 方法的一种扩展,其中我们使用亲本基因组中每个染色体/contig 的独特 kmer 来分类跨越两个不同染色体/contig 的读数。
以下是该工具识别的重组读数示例
安装
cargo install klassify
使用方法
假设你有 3 个输入文件
parents.genome.fa
:亲本基因组f1_reads.fa
:后代读数parent_reads.fa
:亲本读数
- 创建一个从亲本基因组中提取的独特 kmer 的数据库
mkdir ref
faSplit byname parents.genome.fa ref/
klassify build ref/*.fa -o kmers.bc
这会生成所有独特 kmer(存在于单个 contig/chromosome 中)的索引。
- 根据独特 kmer 对后代(例如 F1)读数进行分类
mkdir f1_reads f1_classify
faSplit about f1_reads.fa 2000000000 f1_reads/
klassify classify kmers.bc f1_reads/*.fa -o f1_classify
- 将“嵌合”后代读数映射到父母参考基因组
klassify extract f1_classify.filtered.tsv f1_reads/*.fa -o f1_classify.fa
minimap2 -t 80 -ax map-hifi --eqx --secondary=no parents.genome.fa f1_classify.fa \
--split-prefix f1_classify | samtools sort -@ 8 -o f1_classify.bam
- 使用亲本读数重复这些步骤
mkdir parent_reads parent_classify
faSplit about parent_reads.fa 2000000000 parent_reads/
klassify classify kmers.bc parent_reads/*.fa -o parent_classify
klassify extract parent_classify.filtered.tsv parent_reads/*.fa -o parent_classify.fa
minimap2 -t 80 -ax map-hifi --eqx --secondary=no parents.genome.fa parent_classify.fa \
--split-prefix parent_classify | samtools sort -@ 8 -o parent_classify.bam
- 使用亲本读数作为“对照”,识别在 F1 读数中出现但不在亲本读数中出现的“嵌合”区域(因此我们不会受到组装错误的影响)
klassify regions f1_classify.bam parent_classify.bam
这样就完成了!亲本基因组中的断点位置在 f1_classify.regions.tsv
文件中,其中第 2 列表示断点周围每个 10kb bin 的深度
SoChr01A:118800000-118810000 10
SoChr01B:43130000-43150000 8,12
依赖项
~18MB
~375K SLoC