前言
假期在家的某一天,小老板突然给我打电话,问我能不能画一张“基因家族在染色体上的分布图”。虽然我不会画,但是我还是头铁的应了下来,看到他给我发的模板后,便开始着手找资料,下面总结一下我绘制的过程。
准备工作
1.要绘制的基因家族.txt(因为给我的文件已经带着基因的位置信息,所以我直接拿来画,至于如何获取基因的位置信息请查看我参考链接里面的文章)
2.水稻注释文件gff
3.水稻MSU与RAP对照表
4.在线绘图工具MG2C:http://mg2c.iask.in/mg2c%5Fv2.1/
!!! 2,3可在水稻权威网站RAP-db download页面获得。https://rapdb.dna.affrc.go.jp/
正式绘图
1.获取染色体长度
samtools faidx IRGSP-1.0_genome.fasta
cut -f 1,2 IRGSP-1.0_genome.fasta.fai > chr_length.txt
2.处理gff文件
因为Linux比windows更快捷,所以尽量把复杂冗余的工作交给linux,最后留一点点工作到R中去处理。
#统计第三列的行内容
less -SN IRGSP-1.0_representative_transcript_exon_2019-12-17.gtf | cut -f 3 |sort |uniq -c
197353 exon
44698 transcript
#提取基因号和RAP号
awk '{if($3~/^exon$/)print}' IRGSP-1.0_representative_transcript_exon_2019-12-17.gtf | cut -f 1,9 |sed 's/";.*//g'|sed 's/gene_id\s"//g' > chr_rap.txt
3.在R中进行处理
其实就是利用merge()函数对chr_rap,水稻MSU与RAP对照表,要绘制的基因家族.txt,进行不同merge,最终得到染色体+起止位置+基因名称的文件。
这个时候可能有小伙伴有疑问,这个RAP号与MSU号的文件是起什么作用呢,因为给我的基因家族文件是MSU号,而注释文件是用的RAP号,所以要做ID转换,最终让我用MSU号来画图。原本有519个gene,有些基因的MSU号没法对应到RAP号,因为就可以省略,最终我是拿427个基因去作图。
更改的参数说明
SVG container height 2000;single chromosome container height 700;
chromosome height 700,fill green;gene lines gene_display_type 3;
gene id size 4,margin 50。
最终的图是svg格式的,可以在AI里进行美化修改。(右击-此框架-另存框架为)
后记
网页版的工具的示例已经解释的很详细了,我就不赘述了。有一个小问题,就是我想看一些某一些基因(如物理距离<20kb)是否可以聚集成一个cluster,而MG2C这个工具没有这项功能,发邮件问了晁师兄,师兄也回复没有,这个时候我突发奇想能不能将Tair上的chromosome mapping tools里面的信息更改为水稻的,然后在本地用servlet运行再作图,不过源代码是JAVA写的,但我不懂JAVA语法。我一个在阿里做事的朋友跟我说可以改程序,让我自己写,碍于我当前python还玩的不是很6,这种进阶性的问题,等我水平高一点了再来挑战把。
附上链接:
JAVA入门:https://www.liaoxuefeng.com/wiki/1252599548343744/1255878730977024
chromesome mapping tools:https://www.arabidopsis.org/jsp/ChromosomeMap/tool.jsp(在download里面有源代码的下载)
参考文献
Stronger When Together: Clustering of Plant NLR Disease resistance Genes
参考链接
https://www.jianshu.com/p/a07a4407608f