Skip to main content

基因组变异和 NGS 读取的命令行操作

项目描述

https://travis-ci.org/hammerlab/varlens.svg?branch=master

瓦伦斯

一组用于处理基因组变异和下一代测序读取的 Python 工具。对于大型数据集不是特别快。重点是将您需要的 BAM 和 VCF 提取到 CSV 文件中以供进一步分析。

建立在varcodepysam上。

varlens 变体

组合、注释和过滤来自 VCF 或 CSV 文件的变体。可用的注释包括基因、变异效应、周围序列上下文、来自指定 BAM 文件的支持读取计数以及突变肽的 MHC I 结合亲和力预测。

varlens 读取

显示、过滤和复制来自 SAM/BAM 文件的读数。samtools 视图的部分替换。

varlens等位基因支持

计数支持 BAM 文件中指定位点的每个等位基因的读数。

安装

PyPI安装:

pip install varlens

或者来自 git checkout:

pip install .

要运行测试:

nosetests .

要构建文档(仅此自述文件和命令行工具帮助):

pip install -e .
pip install Sphinx
cd docs
make clean setup rst html

文档将被写入_build/html目录。

varlens 变体

给定来自一个或多个 VCF 或 CSV 文件的变体,应用过滤器,添加其他列,然后输出到 CSV。

目前我们只能输出到 CSV,不能输出到 VCF。

通过指定“–include-XXX”形式的选项,例如“–include-gene”,可以为每个变体添加许多有用的注释。查看详细帮助(使用 -h 运行)。

例子

打印在两个 VCF 文件中找到的变体的基本信息。请注意,在这两个文件中找到的变体都列在一行中,并且“来源”列列出了在其中找到每个变体的文件:

$ varlens-variants test/data/CELSR1/vcfs/vcf_1.vcf test/data/CELSR1/vcfs/vcf_2.vcf

genome,contig,interbase_start,interbase_end,ref,alt,sources
GRCh37,22,21829554,21829555,T,G,1.vcf
GRCh37,22,46931059,46931060,A,C,1.vcf
GRCh37,22,46931061,46931062,G,A,1.vcf 2.vcf
GRCh37,22,50636217,50636218,A,C,1.vcf
GRCh37,22,50875932,50875933,A,C,1.vcf
GRCh37,22,45309892,45309893,T,G,2.vcf

与上述相同,但包括提供 varcode 变体效果注释的附加列以及变体重叠的基因,并写入文件:

$ varlens-variants test/data/CELSR1/vcfs/vcf_1.vcf test/data/CELSR1/vcfs/vcf_2.vcf \
    --include-effect \
    --include-gene \
    --out /tmp/result.csv

Wrote: /tmp/result.csv

$ cat /tmp/result.csv

genome,contig,interbase_start,interbase_end,ref,alt,sources,effect,gene
GRCh37,22,21829554,21829555,T,G,1.vcf,non-coding-transcript,PI4KAP2
GRCh37,22,46931059,46931060,A,C,1.vcf,p.S670A,CELSR1
GRCh37,22,46931061,46931062,G,A,1.vcf 2.vcf,p.S669F,CELSR1
GRCh37,22,50636217,50636218,A,C,1.vcf,intronic,TRABD
GRCh37,22,50875932,50875933,A,C,1.vcf,splice-acceptor,PPP6R2
GRCh37,22,45309892,45309893,T,G,2.vcf,p.T214P,PHF21B

打印支持来自指定 BAM 的参考/变体/其他等位基因的读数的计数,仅计算映射质量 >= 10 的读数:

$ varlens-variants test/data/CELSR1/vcfs/vcf_1.vcf \
    --include-read-evidence \
    --reads test/data/CELSR1/bams/bam_1.bam \
    --min-mapping-quality 10

genome,contig,interbase_start,interbase_end,ref,alt,sources,num_alt,num_ref,total_depth
GRCh37,22,21829554,21829555,T,G,vcf_1.vcf,0,0,0
GRCh37,22,46931059,46931060,A,C,vcf_1.vcf,0,216,320
GRCh37,22,46931061,46931062,G,A,vcf_1.vcf,0,321,321
GRCh37,22,50636217,50636218,A,C,vcf_1.vcf,0,0,0
GRCh37,22,50875932,50875933,A,C,vcf_1.vcf,0,0,0

varlens 读取

过滤来自一个或多个 BAM 的读取并输出 CSV 或新的 BAM。

可以指定基因座和 VCF 文件,在这种情况下,读数会被过滤以与指定的基因座或变体重叠。

例子

打印 BAM 中读取的基本字段:

$ varlens-reads test/data/CELSR1/bams/bam_0.bam

query_name,reference_start,reference_end,cigarstring
HISEQ:142:C5822ANXX:3:2116:16538:101199,46929962,46930062,100M
HISEQ:142:C5822ANXX:3:1106:18985:32932,46929964,46930064,100M
HISEQ:142:C5822ANXX:3:2201:21091:67220,46929966,46930066,100M
HISEQ:142:C5822ANXX:4:1304:5363:12786,46929966,46930066,100M
HISEQ:142:C5822ANXX:4:1104:9008:85114,46929969,46930069,100M
HISEQ:142:C5822ANXX:3:2304:9921:94828,46929970,46930070,100M
HISEQ:142:C5822ANXX:3:2211:6266:74633,46929973,46930073,100M
HISEQ:142:C5822ANXX:3:1305:8982:42729,46929974,46930074,100M
HISEQ:142:C5822ANXX:4:2316:5630:7371,46929978,46930078,100M
...

与上面相同,但仅过滤在 (-) 链上对齐的读取,写入文件而不是标准输出,并且还在输出中包含映射质量和测序碱基:

$ varlens-reads test/data/CELSR1/bams/bam_0.bam \
    --is-reverse \
    --field mapping_quality query_alignment_sequence \
    --out /tmp/result.csv

Wrote: /tmp/result.csv

$ head /tmp/result.csv

query_name,reference_start,reference_end,cigarstring,mapping_quality,query_alignment_sequence
HISEQ:142:C5822ANXX:3:2116:16538:101199,46929962,46930062,100M,60,CATGATCTGGGCATTAGGGCCTTCATCAGGGTCGTTAGCACGAATCTTTGCCACCACCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCG
HISEQ:142:C5822ANXX:3:1106:18985:32932,46929964,46930064,100M,60,TGATCTGGGCATTAGGGCCTTCATCAGGGTCGTTAGCACGAATCTTTGCCACCACCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTC
HISEQ:142:C5822ANXX:4:1104:9008:85114,46929969,46930069,100M,60,TGGGCATTAGGGCCTTCATCAGGGTCGTTAGCACGAATCTTTGCCACCACCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTCCTTCT
HISEQ:142:C5822ANXX:4:1202:18451:91174,46929979,46930079,100M,60,GGCCTTCATCAGGGTCGTTAGCACGAATCTTTGCCACCACCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTCCTTCTCAAACATGGG
HISEQ:142:C5822ANXX:3:1211:18522:54773,46929987,46930087,100M,60,TCAGGGTCGTTAGCACGAATCTTTGCCACCACCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTCCTTCTCAAACATGGGGGCATTGT
HISEQ:142:C5822ANXX:3:2114:19455:45093,46929987,46930087,100M,60,TCAGGGTCGTTAGCACGAATCTTTGCCACCGCCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTCCTTCTCAAACATGGGGGCATTGT
HISEQ:142:C5822ANXX:4:2115:9153:21593,46929994,46930094,100M,60,CGTTAGCACGAATCTTTGCCACCACCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTCCTTCTCAAACATGGGGGCATTGTCATTAAT
HISEQ:142:C5822ANXX:4:1212:15644:87227,46929995,46930095,100M,60,GTTAGCACGTATGTTTGCCACCACCGACCCCACTGAGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTGCTTCTCAAACATGGGGGCAGTGTCATTAATG
HISEQ:142:C5822ANXX:3:1103:4717:26369,46929997,46930097,100M,60,TAGCACGAATCTTTGCCACCACCGACCCCACTGGGTTGTTCTCCTCAACAAACAGCTCCAGTTCGTCCTTCTCAAACATGGGGGCATTGTCATTAATGTC

编写一个 bam 文件,其中包含映射质量 >=30 且与某个位点重叠的读取:

$ varlens-reads test/data/CELSR1/bams/bam_0.bam \
    --min-mapping-quality 30 \
    --locus 22:46932040-46932050 \
    --out /tmp/result.bam

编写一个 bam 文件,其中包含来自 VCF 的读取重叠变体:

$ varlens-reads test/data/CELSR1/bams/bam_0.bam \
    --variants test/data/CELSR1/vcfs/vcf_1.vcf \
    --out /tmp/result.bam

仅以 csv 格式打印 BAM 的标题:

$ varlens-reads test/data/CELSR1/bams/bam_0.bam --header

varlens等位基因支持

给定一个或多个 BAM 和一些要考虑的基因组位点,编写一个 csv 文件,给出每个 BAM 在每个位点支持每个等位基因的读取计数。

要考虑的基因组位点可以通过基因座(–locus 选项)或通过一个或多个 VCF 文件指定。

该命令输出的位置是在基间坐标中,即从 0 开始,包括第一个索引,不包括第二个索引(与 VCF 文件中使用的基于一的包含坐标相反)。

例子

varlens-allele-support \
    --reads test/data/CELSR1/bams/bam_1.bam \
    --locus 22:46931061 22:46931063

source,contig,interbase_start,interbase_end,allele,count
bam_1.bam,22,46931060,46931061,,1
bam_1.bam,22,46931060,46931061,G,329
bam_1.bam,22,46931062,46931063,A,327
bam_1.bam,22,46931062,46931063,AC,1
bam_1.bam,22,46931062,46931063,AG,2

坐标系注意事项

varlens 在内部使用基于 0 的半开坐标。许多工具(包括 samtools 和 VCF 文件)使用包含 1 的坐标。当我们使用基于 0 的半开坐标时,我们使用术语“interbase”来尽量减少混淆,而当我们使用基于 1 的包容性坐标时,我们会使用术语“inclusive”。

一个特别棘手的地方是在命令行上使用例如--locus chr22:43243-43244指定基因座时。为了与最常见的其他工具保持一致,当您指定像 chr22:10-20这样的轨迹时,我们将其解释为基于 1 的包含坐标。要指定从 0 开始的半开坐标,请使用以下语法:chr22/11-20(即斜杠而不是冒号)。

有关坐标系的更多详细信息,请参阅此博客文章

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

varlens-0.0.2.tar.gz (38.9 kB 查看哈希

已上传 source