![](https://guangchuangyu.github.io/blog_images/2016/Screen Shot 2016-11-17 at 8.20.21 PM.png)

这是高老师文章里的图,每一个小图都是通过比较两条比对序列差异而做出来的,从图A和B中可以看出,CF_YL21有可能是Mont和Oz两条序列重组而来。高老师自己做出这图后,深知手工统计序列差异、画图、拼图之困难。问我有没有办法读两条序列,生成一个图。

很多东西都没有现成的,需要自己造轮子,于是我写了个R包来做这个事情:

library(seqcombo)
fas = list.files(system.file("examples","GVariation", package="seqcombo"), 
pattern="fas", full.names=TRUE)
x = seqdiff(fas[1])
plot(x)

![](https://guangchuangyu.github.io/blog_images/2016/Screen Shot 2016-11-17 at 8.25.26 PM.png)

一行代码读文件,然后plot画出来,就是这么简单。

这里有三个文件,我们可以三个文件一起读,三个图一起画。

x = lapply(fas, seqdiff)
plts = lapply(x, plot)

然后可以很容易把三张图拼在一起

plot_grid(plotlist=plts, ncol=1, labels=LETTERS[1:3])

简直完美,跟文章中的图一毛一样。

这个包我取名seqcombo,90后大概不知道何为combo,如果你知道,没错,说的就是你,你已经暴露年龄了!因为这个图是可以辅助看序列重组的,所以取这个名字,以后有可能的话,再实现一些其它的可视化方法,起码得有三把刷子,才对得起combo这名字。