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

varlens的Python项目详细描述


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

变透镜

用于处理基因组变体和 下一代测序读取。对于大型数据集来说不是特别快。这个 重点是将所需的内容从BAMS和VCF提取到CSV文件中 进一步分析。

建立在varcodepysam上。

可变透镜变型
合并、注释和筛选VCF或CSV文件中的变体。可用 注释包括基因,变异效应,周围的序列背景, 支持从指定BAM文件读取和MHC I绑定的计数 突变肽的亲和力预测
varlens读取
显示、筛选和复制从sam/bam文件读取的内容。部分替换samtools view
varlens等位基因支持
在BAM文件中的指定位置支持每个等位基因的计数读取。

安装

PyPI安装:

pip install varlens

或者从git结帐处:

pip install .

运行测试:

nosetests .

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

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

文档将写入_build/html目录。

varlens变型

给定一个或多个VCF或CSV文件的变体,应用筛选器,添加其他 列,并输出到csv。

目前我们只能输出到csv,而不能输出到vcf。

通过指定 形式选项'-包括xxx',例如'-包括基因'。请参阅详细帮助 (用-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的每个位点提供支持每个等位基因的读取计数。

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

此命令输出的位置在interbase坐标中,即。 从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的坐标。我们试着 在任何时候我们都可以用“interbase”这个词来把混乱降到最低 使用基于0的半开放坐标和“包含”时,我们使用基于1的 包含坐标。

一个特别棘手的问题是当指定位置时上 命令行,例如--locuschr22:43243-43244。保持一致性 使用最常见的其他工具,当您指定 chr22:10-20,我们将其解释为基于1的包含坐标。到 指定基于0的半开放坐标,使用以下语法:chr22/11-20(即 斜线而不是冒号)。

看这个blog post 有关坐标系的详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java制作Minecraft Mod。编译错误   java如何将系统属性文件传递给GWT?   java如何使用Android Studio 0.8.9配置Andengine、Andengine平铺地图、Physics2DBox?   java无法从Ubuntu14安装带有dockerfile的openjdk7jdk。04   java是捕获大多数try-catch语句的一种方法   java在Tomcat上启动Jenkins时出现一个问题(http://localhost:8080/jenkins/)   cmd如何在不单独启动的情况下作为java程序的一部分使用?   如何使Java在同一命令提示符窗口中打开批处理文件   Java:有没有一种方法可以将ArrayList<Boolean>转换为Boolean[](基本数组)?   java如何使用SpringWebClient进行同步调用?   java将上下文传递给多个线程是否安全?   在java中,为什么静态字段(不是final)被限制在内部类中   java关于Play2和Hibernate的几个问题   java如何使用JSch连接在单个会话中运行多个命令并读取其输出?   在Java中通过socket连接发送2D字符串数组   尽管服务已经启动,但不允许java远程访问namenode。