查看原文
其他

vcf格式文件处理大全(三)

王通 基因学苑 2023-08-18

前面介绍过fasq,fastq,bam三种生物数据分析中常用的格式。fasta一般作为比对的参考序列,fastq为测序数据,将fastq比对到fasta则生成bam文件,对bam进行排序建立索引,就可以直接输出为vcf格式,这个系列我们来详细介绍一下vcf格式的操作。

vcf格式文件处理大全(一)

vcf格式文件处理大全(二)

8 合并多个结果

vcf中不仅可以包含单个样品,也可以同时包含多个样品的信息,只需要将多个样品的vcf合并即可。注意合并之前需要对每个样品创建索引。

bcftools merge A1.vcf.gz B1.vcf.gz -O b -o merge.bcf.gz  

9 拆分SNP与InDel

vcf既可以用来存储SNP,也可以用来存储其他突变,一般的变异检测软件会同时检测SNP与一些小的InDel,同时输入出来,如果只想输出其中的一种,可以使用bcftools view的-v选项,后面可以接snps与indels或者mnps等。

#筛选SNPs
 bcftools view -v snps A1.freebayes.bcf.gz | less -S
#筛选InDels
 bcftools view -v indels A1.freebayes.bcf.gz | less -S

10 过滤

变异检测的策略一般是先找全,然后在找准。也就是软件首先输出尽可能多的结果,保存到vcf文件中,然后在采取不同的标准对vcf进行过滤。过滤可以采取很多的标准,一般包括测序深度,打分制,碱基质量值,先验概率等。可以使用bcftools进行过滤。bcftools的filter功能其实与query,view都类似,可以进行多种模式的过滤,关键是要掌握其表达式EXPRESSIONS的写法。

#过滤掉等位频率>0.3同时覆盖深度小于10的突变位点
bcftools filter -e "INFO/AF[0] > 0.3 & FORMAT/DP < 30" A1.bcf.gz

11 bcftools注释

vcf的注释主要是将突变位点定位到基因组上,确定突变发生在哪个基因,因为不同的突变发生位置,会对基因产生不同的影响,例如同义突变,错误突变或者无义突变等。另外一种注释就是与已知突变位点进行比较,定位到已知的rs number号上面。

bcftools annotate -a /ifs1/Database/GATK/hg38/dbsnp_146.hg38.vcf.gz -c ID,QUAL,+TAG file.vcf -o annotate.vcf  

12 SNPeff注释

SNPeff比bcftools具有更多的注释功能。snpeff是用于变异注释的软件,其中的eff是effect的意思,也就是变异的影响,虽然叫做snpeff,但是变异的位点不仅仅包括snp,也包括小的插入,缺失等。SNPeff软件包中包含两个程序snpeff与snpsift。snpeff主要用来预测snp突变的影响,包括氨基酸变化等,这个根据密码字表就可以判断,不需要依赖数据库,输入文件是变异检测得到的vcf文件;
snpsift的功能是用来操作变异结果文件,包括过滤,注释,统计,合并,分割等等操作。在进行注释的时候,需要使用相关数据库。和其他所有注释工具一样,注释内容严重依赖数据库的信息。

 #列出所有数据库    
java -jar snpEff.jar databases | less     
#筛选人基因组数据库    
java -jar snpEff.jar  databases |grep "Homo"  

#与dbsnp进行注释得到rs号  
java -jar SnpSift.jar  annotate dbsnp_146.hg38.vcf.gz A1.bcf.gz >A1.anno.rs.vcf 


---------- END ----------

(添加作者微信,请注明单位姓名)



您可能还会感兴趣的

生物信息暑期班(北京站)开始报名
基因学苑文章列表(201906)

上传数据,直接分析,1T内存服务器来了
手把手教你生信分析平台搭建专栏合集
生物信息重要资源站点合集
不会编程,如何进行批量操作
一个人全基因组完整数据分析脚本
一个细菌基因组完整分析脚本
如何在Linux下优雅的装X

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存