![8269e7d6d7bd908ba984179cd8130756.gif](https://i-blog.csdnimg.cn/blog_migrate/8b92ccbcda9820ae256e00fa5a471917.gif)
![7f39690a3536a5a2c9f0bb835a50fb1b.gif](https://i-blog.csdnimg.cn/blog_migrate/e04c451dfe74e5f4ec7438e5f1381a59.gif)
![e8b99fb7d48da6555fe1b96439cca023.png](https://i-blog.csdnimg.cn/blog_migrate/c89f9e4774ae5d07ca1a75d0b4888a27.jpeg)
当时还提到,后续会再展示如何标注独立的SNP或InDel位点,而非密度频数。
然后就忘了……
上周有同学咨询,在提供帮助的同时就顺便简单整理了方法,在本篇继续分享。
示例图大致如下。sample1-4是4个同种不同菌株细菌基因组测序样本,chr1是参考细菌基因组的染色体,并通过与参考基因组比对call变异,确定并筛选了一些SNP以及InDel位点。由于筛选后的位点不多,就方便了直接在基因组对应位置中将它们标注出来。
该图将4个菌株放在一起作图比较,每个圈代表各自基因组。图中的点即为SNP或InDel位点,颜色表示不用的变异类型(如SNP的A>C|T>G替换,或者InDel的插入缺失等)。点对应外圈中的刻度即为变异位点的基因组位置,纵轴数值表示了变异位点的质量。
接下来开始本篇的分享。
作图示例数据及R代码的百度盘链接(提取码,mgse):
https://pan.baidu.com/s/1_nKWA4I5QfUN9538hDqjsQ
示例数据
示例文件“genome_stat.txt”记录了参考基因组信息,即基因包含的染色体ID以及该染色体的长度。
示例文件“sample*_SNV.txt”的内容大致如下。
第1列,变异位点所在的染色体ID;
第2-3列,变异位点在该染色体中的起始和终止位置,SNP是单碱基,InDel可能是多碱基;
第4列,变异类型,SNP就是碱基替换类型,InDel就是插入缺失类型;
第5列,该位点中,变异碱基的占比,在本示例中用于绘制y刻度轴。
以及示例文件“anno_SNV.txt”,在上述基础上添加了一列注释信息,例如SNP导致了同义突变还是非同义突变等。
![2108b3171f874f3893a24081c6dee68f.png](https://i-blog.csdnimg.cn/blog_migrate/0265ea8a11eb516a064029f874d3de7f.png)
示例作图1,直接标记变异位点区块
首先先展示一种简单的绘制方法。并非绘制二维坐标点图,而是类似前文变异圈图的那种样式,通过色块展示位点。区别在于,前文的色块展示的变异位点出现频数,这里直接标记具体位置的位点。
首先预处理数据。
#读取数据
seq_stat sample1 sample2 sample3 sample4
#统计变异类型
sample_df dat[which(dat$change == 'A>T'|dat$change == 'T>A'),'type'] dat[which(dat$change == 'A>G'|dat$change == 'T>C'),'type'] dat[which(dat$change == 'A>C'|dat$change == 'T>G'),'type'] dat[which(dat$change == 'G>A'|dat$change == 'C>T'),'type'] dat[which(dat$change == 'G>T'|dat$change == 'C>A'),'type'] dat[which(dat$change == 'G>C'|dat$change == 'C>G'),'type'] dat[which(dat$change == 'insert'),'type'] dat[which(dat$change &