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

目录

  1. 前言
  2. 方法简介
  3. 从vcf文件里提取有用信息
  4. tidy vcfR
  5. vcf可视化1
  6. vcf可视化2
  7. 测序深度覆盖度
  8. 窗口缩放
  9. 如何单独分离染色体
  10. 利用vcf信息判断物种染色体倍数
  11. CNV分析

1.读取数据

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

1.1 整合数据

pkg <- "pinfsc50"
vcf_file <- system.file("extdata", "pinf_sc50.vcf.gz", package = pkg)
dna_file <- system.file("extdata", "pinf_sc50.fasta", package = pkg)
gff_file <- system.file("extdata", "pinf_sc50.gff", package = pkg)

1.2 用vcfR读取vcf数据

library(vcfR)
vcf <- read.vcfR( vcf_file, verbose = FALSE )

1.3 用ape读取fasta数据

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

dna <- ape::read.dna(dna_file, format = "fasta")

1.4 读取gff格式的注释文件

gff <- read.table(gff_file, sep="\t", quote="")

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

2. 建立chromR项目

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

library(vcfR)
chrom <- create.chromR(name='Supercontig', vcf=vcf, seq=dna, ann=gff)

3. 对chromR进行进一步处理

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

plot(chrom)

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

chrom <- masker(chrom, min_QUAL = 1, min_DP = 300, max_DP = 700, min_MQ = 59.9,  max_MQ = 60.1)
plot(chrom)

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

chrom <- proc.chromR(chrom, verbose=TRUE)
plot(chrom)

4. 数据可视化

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

chromoqc(chrom, dp.alpha=20)

5. 数据输出

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

之后的文章里会有更加详细的说明

你可能感兴趣的:(用R语言对vcf文件进行数据挖掘.2 方法简介)