2 个不稳定版本
0.3.0 | 2021 年 1 月 20 日 |
---|---|
0.2.0 | 2020 年 10 月 31 日 |
#1767 in 命令行工具
2.5MB
911 行
rustynuc
根据比对特征计算 8-oxoG 损伤可能性的工具。
安装
Conda
使用 conda 安装
conda install -c bioconda rustynuc
二进制文件
以下提供了预编译的二进制文件
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-htslib 和 niffler crate 实现。
引用
如果用于已发表的科研,则欢迎引用。
Debebe, Bisrat J: 快速分析堆叠以确定可能的 8-oxoG 位置。 (2020)。doi:10.5281/zenodo.4157557
依赖项
~24MB
~468K SLoC