用R语言对vcf文件进行数据挖掘.2 方法简介

Python019

用R语言对vcf文件进行数据挖掘.2 方法简介,第1张

目录

vcfR 可以直接读取vcf格式的数据。如果同时读取参照序列fasta格式的序列文件和gff格式文件的注释文件还可以获取更完整的信息(此步骤并非必须,可以只读取vcf数据)。在此处便于重复用到了 pinfsc50 包。这个包里是植物致病微生物的基因序列测序结果。包含了一个vcf文件,一个fasta文件和一个gff文件。

这里用到参照序列的数据。

当这些数据被读取到内存的时候就可以开始对染色体名字或者其它一些东西进行修改了。由于 vcfR 更擅长对的单独染色体进行分析,所以当你的基因过大或者有很多样本的时候,建议对数据进行拆分。

读取完数据以后就可以建立 chromR ,来对数据进行详细的分析。

首先对数据进行初步的可视化,

我们在上面的图里得到很多信息,比方说测序深度(DP)的峰在500,但是拖着尾巴,这个尾巴表示数据里包含着CNV信息。然后比对质量(MQ)的峰值在60,于是我们可以以60为中心对数据进行过滤。

使用 masker 可以对数据进行过滤标记。然后可视化过滤以后的数据。

是不是顺眼多了。当然我们也可以看一下SNP的分布情况。注意右下角的图。

用 chromoqc() 可以对数据进行更完整的可视化。包括外显子内含子的分布,GC含量的分布等等。

最后可以用函数 write.vcf() 把数据输出成新的vcf文件。

容易遇到的问题:

1.在导入文件时,可能会出现第一列列名为“X.U.FEFF.xx”。这可能是文件类型或编码方式导致,本人解决方法是将csv(utf-8)文件另存为csv文件。“X.U.FEFF.xx”字样消除。

2.在数据合并时参数type=“full”容易导致数据合并不成功。

参考网站: http://blog.sina.com.cn/s/blog_46d621c00101l66x.html

code

#先将默认目录设置到specdata下

files.name=list.files(pattern="csv")#读入目录下所有csv文件

files.length=length(files.name)#文件数,按题意为332

newdata=numeric(0)#用于存放所有sulfate数据

for(i in 1:files.length){

tmp=read.csv(a[i],head=T,sep=",")#csv文件一个个的读取

newdata=rbind(newdata,tmp[,2])}#每个文件的第2列,也就是sulfate数据,按行合并

m=mean(newdata)#计算结果