欢迎关注"生信修炼手册"
当完成突变位点注释之后,我们会得到一个巨大的VCF文件,文件大小从几十M到几十G不等。在数量如此多的突变位点中,我们只会根据注释结果从中挑选部分感兴趣的突变位点,这就要求对VCF文件进行过滤。如此大的文件用Excel 操作是不现实的,脚本语言处理大文件时效果也不尽人意,所以SnpEff的开发团队专门开发了一款工具,叫做SnpSift, 用来对VCF文件进行过滤。
对VCF进行过滤是SnpSift最基本的功能,除此之外,还提供了许多非常实用的功能。软件是集成在SnpEff软件包中的, 在下载的SnpEff安装包中,就会有这款软件。
基本用法如下
cat variants.vcf | java -jar SnpSift.jar filter "(CHROM = 'chr1')" > filtered.vcf
上面的例子是删选位于1号染色体上的突变位点, CHROM = 'chr1'
就是筛选的条件表达式,用双引号包裹起来。`snpsift 提供了灵活的筛选策略,最核心的地方,就是条件表达式的写法,有以下几种用法
1. 单一值的变量
在VCF文件中,常用的字段都可以作为变量名称
1. CHROM
"( CHROM = 'chr1' )"
2. POS
"( POS > 123456 ) & ( POS < 654321 )"
3. REF
"( REF = 'A' )"
4. ALT
"( ALT = 'T' )"
5. QUAL
"( QUAL > 30 )"
6. FILTER
"( na FILTER ) | (FILTER = 'PASS')"