#bio #bioinformatics #pileup #8-oxo-g #oxo-g

app rustynuc

快速分析 pileup,以确定 8-oxoG 位置的可能性

2 个不稳定版本

0.3.0 2021 年 1 月 20 日
0.2.0 2020 年 10 月 31 日

#1767 in 命令行工具

MIT 许可证

2.5MB
911

rustynuc

install with bioconda Release Build Status Testing, Linting and MSRV Software License

根据比对特征计算 8-oxoG 损伤可能性的工具。

安装

Conda

使用 conda 安装

conda install -c bioconda rustynuc

二进制文件

以下提供了预编译的二进制文件

picture picture
TAR TAR
ZIP ZIP

Cargo

如果您已安装 cargo 或已安装 RUSTUP,可以直接从以下位置安装:

  • Crates.io
cargo install rustynuc
  • Github
cargo install --git https://github.com/bjohnnyd/rustynuc

构建

要从源代码编译,需要 rustup,并且可以从 这里 获取。安装后,下载发行版存档文件并构建。

git clone https://github.com/bjohnnyd/rustynuc.git && cd rustynuc && cargo build --release

所有发行版及其相关的二进制文件和存档都可以在 发行版 下访问。

用法

./rustynuc -h
rustynuc 0.3.0

USAGE:
    rustynuc [FLAGS] [OPTIONS] <bam>

FLAGS:
    -a, --all                Whether to process and print information for every position in the BAM file
    -h, --help               Prints help information
        --no-overlapping     Do not count overlapping mates when calculating total depth
    -n, --no-qval            Skip calculating qvalue
    -p, --pseudocount        Whether to use pseudocounts (increments all counts by 1) when calculating statistics
        --skip-fishers       Skip applying Fisher's Exact Filter on VCF
    -V, --version            Prints version information
    -v, --verbosity          Determines verbosity of the processing, can be specified multiple times -vvv
    -w, --with-track-line    Include track line (for correct visualization with IGV)

OPTIONS:
        --af-both-pass <af-both-pass>        AF on both the ff and fr at which point a call in the VCF will excluded
                                             from the OxoAF filter [default: 0.1]
        --af-either-pass <af-either-pass>    AF above this cutoff in EITHER read orientation will be excluded from OxoAF
                                             filter [default: 0.25]
        --alpha <alpha>                      FDR threshold [default: 0.2]
    -b, --bcf <bcf>                          BCF/VCF for variants called on the supplied alignment file
        --bed <bed>                          A BED file to restrict analysis to specific regions
        --fishers-sig <fishers-sig>          Significance threshold for Fisher's test [default: 0.05]
        --max-depth <max-depth>              Maximum pileup depth to use [default: 1000]
    -m, --min-reads <min-reads>              Minimum number of aligned reads in ff or fr orientation for a position to
                                             be considered [default: 4]
    -q, --quality <quality>                  Minimum base quality to consider [default: 20]
    -r, --reference <reference>              Optional reference which will be used to determine sequence context and
                                             type of change
    -t, --threads <threads>                  Number of threads [default: 4]

ARGS:
    <bam>    Alignments to investigate for possible 8-oxoG damage

输出

默认输出(如果没有提供 --bcf/-b)是一个包含以下信息的 BED 文件:

1. Chromosome
2. Start
3. End
4. Name (format is `<chromosome>_<start>_<end>` or if reference is provided `<chromosome>_<base>_<start>_<end>`
5. -log10 of p-value (p-value is the smallest of the A/C and G/T )
6. Strand
7. Depth
8. Adenine FF:FR counts
9. Cytosine FF:FR counts
10. Guanine FF:FR counts
11. Thymine FF:FR counts
12. A/C two-sided p-value Fisher's Exact Test
13. G/T two-sided p-value Fisher's Exact Test
(14). Sequnce Context (if reference provided)
14/15. adj. pvalue
15/16. Significant at set FDR value (1 if yes, 0 if not)

要仅获取 p 值小于 0.05 的位置

rustynuc -r tests/input/ref.fa.gz tests/alignments/oxog.bam | awk '$12 < 0.05 || $13 < 0.05'  | gzip > sig.bed.gz

如果提供了 VCF/BCF,则输出将以 VCF 格式。VCF 文件中提供了多个摘要

类型 ID 描述
过滤器 OxoG OxoG Fisher 的确切 p 值 < 0.05
过滤器 InsufficientCount 在 FF 或 FR 方向上对齐的读取数量不足,无法进行计算
过滤器 AfTooLow AF 在 FF 或 FR 方向上低于 0.04
信息 OXO_DEPTH OxoG Pileup 深度
信息 ADENINE_FF_FR FF 和 FR 方向上的腺嘌呤计数
信息 CYTOSINE_FF_FR FF 和 FR 方向上的胞嘧啶计数
信息 GUANINE_FF_FR FF 和 FR 方向上的鸟嘌呤计数
信息 THYMINE_FF_FR FF 和 FR 方向上的胸腺嘧啶计数
信息 AC_PVAL A/C 双侧 p 值
信息 GT_PVAL G/C 双侧 p 值
信息 FF_FR_AF FF 和 FR 方向上的等位基因频率计算(每个等位基因 2 个值)
信息 OXO_CONTEXT 3mer 参考序列上下文

AF_FF_FR 可以用于根据 FF 或 FR 方向上的 AF 过滤。

对于每个等位基因,提供了两个等位频率(AF),例如,要过滤第一个替代位点,可以使用 AF_FF_FR[0]AF_FF_FR[1]。下面的命令将使用 FF/FR 上的 AF 进行过滤,并且 FILTER=="PASS" 确保只有具有 p-val < 0.05 的位点被返回。

FILTERCMD='TYPE =="snp" && AF > 0.04 && FILTER=="PASS" && (FF_FR_AF=="." || (FF_FR_AF[0] >= 0.04 && FF_FR_AF[1] >= 0.04))'
rustynuc --pseudocounts -r tests/input/ref.fa.gz --b tests/input/oxog.vcf.gz tests/alignments/oxog.bam | bcftools filter -Oz -i "$FILTERCMD" > nonoxog.vcf.gz

作者

许可证

MIT 许可证(MIT)。更多信息请参阅许可证文件

注释

目前仅处理非 MNP 调用,因此建议在使用工具之前对所有变异进行归一化和转换为等位基因原形。

附加注释

  • DEPTH 是区分 8-oxoG 的关键决定因素。
  • 在深度不高的情况下,使用 AF_FF_FR 替代频率过滤器是一个更好的选项。
  • Fisher 精确检验受 0 计数的影响,因此可以使用 pseudocounts
  • FDR 将严重依赖于基因组 %GC、基因组大小、是否提供了参考、是否提供了 VCF 或测试是否限制在特定区域。

信用额度

使用 rust-htslibniffler crate 实现。

引用

如果用于已发表的科研,则欢迎引用。

DOI

Debebe, Bisrat J: 快速分析堆叠以确定可能的 8-oxoG 位置。 (2020)。doi:10.5281/zenodo.4157557

依赖项

~24MB
~468K SLoC