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 数据库接口

Download history 3/week @ 2024-05-01 149/week @ 2024-05-08 9/week @ 2024-05-15 21/week @ 2024-05-22 162/week @ 2024-05-29 249/week @ 2024-06-05 290/week @ 2024-06-12 68/week @ 2024-06-19 29/week @ 2024-06-26 213/week @ 2024-07-03 193/week @ 2024-07-10 80/week @ 2024-07-17 66/week @ 2024-07-24 114/week @ 2024-07-31 57/week @ 2024-08-07 53/week @ 2024-08-14

每月294 次下载
用于 2 crates

Apache-2.0

1MB
19K SLoC

install with bioconda CI codecov Crates.io Crates.io Crates.io

annonars

使用 Rust 和 RocksDB 进行基因组注释。

此外

Annona(来自 Taíno annon)是番荔枝科 Annonaceae 中的一种开花植物属,番荔枝/糖苹果。它是该科中仅次于 Guatteria 的第二大属,包含约 166 种主要产于新热带和非洲热带的树木和灌木。

Annona -- 维基百科

运行 CLI

您可以通过构建带有 cli 功能的项目来启用 annonars CLI(最简单的方法是使用 --all-features

# cargo run --all-features -- --help

处理 TSV 文件

当构建带有 cli 功能时,annonars 允许您将 TSV 文件中的变体注释导入 RocksDB 数据库。这允许您导入由 CADDdbNSFP 提供的变体注释 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
  • 使用 ChromPosRefAlt 列来指定变体。
  • 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