71 个版本 (37 个破坏性更新)
0.40.0 | 2024年7月16日 |
---|---|
0.38.0 | 2024年6月8日 |
0.36.1 | 2024年3月1日 |
0.31.2 | 2023年12月22日 |
0.14.1 | 2023年7月31日 |
#293 in 数据库接口
每月294 次下载
用于 2 crates
1MB
19K SLoC
annonars
使用 Rust 和 RocksDB 进行基因组注释。
此外
Annona(来自 Taíno annon)是番荔枝科 Annonaceae 中的一种开花植物属,番荔枝/糖苹果。它是该科中仅次于 Guatteria 的第二大属,包含约 166 种主要产于新热带和非洲热带的树木和灌木。
运行 CLI
您可以通过构建带有 cli
功能的项目来启用 annonars CLI(最简单的方法是使用 --all-features
)
# cargo run --all-features -- --help
处理 TSV 文件
当构建带有 cli
功能时,annonars
允许您将 TSV 文件中的变体注释导入 RocksDB 数据库。这允许您导入由 CADD 或 dbNSFP 提供的变体注释 TSV。变体指定为 SPDI 表示法,如 Holmes 等人 2020 年 所述。一个文件中的所有变体都引用同一个基因组构建。
您可以使用 tsv import
导入 TSV 文件。例如,要导入 "包含所有注释的 CADD" 文件,您可以使用以下方法
# annonars tsv import \
--path-in-tsv InDels_inclAnno.tsv.gz \
--path-in-tsv whole_genome_SNVs_inclAnno.tsv.gz \
--path-out-rocksdb cadd-rocksdb \
--genome-release grch37 \
--db-name cadd \
--db-version 1.6 \
--col-chrom Chrom \
--col-start Pos \
--col-ref Ref \
--col-alt Alt \
--skip-row-count=1 \
--inference-row-count 100000 \
--add-default-null-values
这将
- 将数据库的基因组版本设置为
grch37
。 - 将数据名称和版本的元信息设置为
cadd
,版本为1.6
。 - 使用
Chrom
、Pos
、Ref
和Alt
列来指定变体。 - CADD 文件从标题行上方开始有一个版权声明行,所以我们跳过一行。
- 使用前 100,000 行来推断列的数据类型。
- 指定用于缺失值的默认空值集(
NA
、.
、-
)。
当运行时,annonars
首先会尝试从前 100,000 行数据中推断模式。然后,它将数据导入到 RocksDB 数据库中。生成的模式将以 JSON 格式输出。如果需要,您也可以指定一个包含 JSON 格式模式的文件,用作模式推断的种子。您可能需要在模式中看到 "Unknown"
类型时这样做。最后,数据库将被压缩,这可能需要一些时间,但这是必要的,以减小数据库的大小并确保它可以在只读模式下读取。
完成所有操作后,您需要在输出 RocksDB 目录中手动查找与 *.log
匹配的文件。这是 RocksDB 的预写日志 (WAL) 文件,可以安全删除(如果一切顺利,它应该是零大小的)。
以下是导入 dbNSFP 的方法。请注意,您必须为每个想要用于查找的基因组发布版构建一个 RocksDB 数据库。
# annonars tsv import \
$(for f in dbNSFP4.4a_variant.*.gz; do echo --path-in-tsv $f; done) \
--path-out-rocksdb dbnsfp-rocksdb \
--genome-release grch37 \
--db-name dbnsfp \
--db-version 4.4a \
--col-chrom hg19_chr \
--col-start hg19_pos(1-based) \
--col-ref ref \
--col-alt alt \
--inference-row-count 100000 \
--null-values=.
annonars
可以使用 tabix 索引来加速数据库构建。如果每个输入文件都有一个 .tbi
文件,那么 annonars
将使用它,并根据基因组窗口并行执行导入。否则,annonars
将并行导入所有输入文件(尽管按顺序读取每个文件)。默认情况下,每个系统 CPU 核心使用一个线程。您可以通过设置环境变量 RAYON_NUM_THREADS
来控制要使用的线程数。
您可以使用 tsv query
查询 rocksdb 数据库,基于变异体、位置(该位置的所有变异体)或区域。请注意,annonars
使用 SPDI 风格的坐标(1 为基数,包含)进行所有查询。您可以选择在查询前加上 gnome 发布版(比较不区分大小写)和 annonars
将检查数据库是否与基因组发布版匹配。
示例
# tsv query --path-rocksdb tests/tsv/example/data.tsv.gz.db --range GRCh37:1:1000:A:T
# tsv query --path-rocksdb tests/tsv/example/data.tsv.gz.db --pos GRCh37:1:1000
# tsv query --path-rocksdb tests/tsv/example/data.tsv.gz.db --range GRCh37:1:1000:1001
开发者备注
protobuf 模式中 v1
令牌指的是协议缓冲区的 内部 版本,而不是 gnomAD 等的版本。
依赖项
~75MB
~1.5M SLoC