用R语言对vcf文件进行数据挖掘.5 vcf可视化1

目录

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

本文介绍的案例和方法简介里一样,但是会有更加详细的说明。

使用的数据

和之前一样使用pinfsc50包里的数据。vcf数据,参考序列的fasta数据,还有gff格式的注释数据。

library(vcfR)

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

# Input the files.
vcf <- read.vcfR(vcf_file, verbose = FALSE)
dna <- ape::read.dna(dna_file, format = "fasta")
gff <- read.table(gff_file, sep="\t", quote="")

# Create a chromR object.
chrom <- create.chromR(name="Supercontig", vcf=vcf, seq=dna, ann=gff, verbose=TRUE)

然后蹦出来一段警告文


create.chromR这个函数会自动确认刚才提到的三个文件里的染色体名字是否对的上。这个例子里染色体名用到了Supercontig,貌似有些不匹配,所以跳出了警告文。这里可以进行可视化,确认没有问题的话可以进行下一步。
在此我们根据前面文章里的内容直接对数据进行过滤,然后可视化。

chrom <- masker(chrom, min_QUAL=0, min_DP=350, max_DP=650, min_MQ=59.5, max_MQ=60.5)
chrom <- proc.chromR(chrom, verbose = TRUE)
chromoqc(chrom, dp.alpha = 22)


vcfR里,这样的图被称作chromo plot。图里包含了上述的三个文件的信息(vcf, fasta, gff)。我们从下往上看。
最后一行是注释文件的信息,红色的长方形代表了有注释信息的领域(基因,外显子等等)。再往上一行是序列信息,红色的地方是没有被读到的地方(Ns)。再往上是GC含量,右边还有与之配套的boxplot。再往上(倒数第四行)是每个窗口的变异数。在往上依次是品质(QUAL),匹对品质(MQ),还有深度(DP)。
用R的一个好处就是可以自由缩放窗口(也就是想要看的区域)。比方说,我们把窗口放大到1e4的长度。默认是1e3也就是1kb。

chrom <- proc.chromR(chrom, verbose=FALSE, win.size=1e4)
chromoqc(chrom, dp.alpha = 22)

可以发现Variants per Site和Nucleotide Content发生了变化。

VCF可视化

这个包还可以快速可视化vcf文件。

plot(chrom)

可以看出DP,MQ都趋向于正规分布。最后的每个窗口的variant count的主峰在0表示这个基因大多是纯合体,只有少部分有变异。

结论

通过动手练习我们已经掌握了如何导入vcf文件的数据,然后进行可视化诊断,接下来的文章里会介绍更多的其他用法。

你可能感兴趣的:(用R语言对vcf文件进行数据挖掘.5 vcf可视化1)