祝大家新春快乐,大吉大利!
新闻越短事越大,推文越简情越真。要过年了,赶紧收藏年前最后一篇干货欢欢喜喜过大年啊~
直奔主题,在分析(宏)基因组/转录组等数据时,往往需要绘制如下图所示的gene map,以形象展示基因簇、操纵子以及基因之间的相互关系等信息。本文将推送一个python脚本和一个svg编辑工具,用于绘制矢量gene map(效果图见下方)。
当然,该方法属于“曲线救国”。可是,绘图工具千千万,为何非要如此“曲线救国”呢?原因很简单,重复性的工作交给软件,个性化的工作交给我们自己的脑袋。那么,接下来介绍的python脚本便可以完成重复性绘图工作,svg编辑工具则可以帮助我们完成gene map的个性化修改。
首先介绍一下第一个工具,get_SVG_code_for_gene_map.py。这是一个python脚本,用于获得svg代码。那么可能会有读者问“python脚本是啥?” “什么又是svg代码?” 所以为了帮助无生信基础的读者绘制自己的gene map(似乎有生信基础的朋友都可以自己码代码绘图,无所谓本文的工具了),先容我三言两语介绍一下:
python是一种非常受欢迎的编程语言,用python写作的可以实现特定功能的一段代码,即python脚本,也可以理解为一个小程序。svg即Scalable Vector Graphics (可缩放的矢量图),是一种XML文件,可以由任何的文本编辑器创建,但需要严格遵循XML语法,因此,svg图可以笼统的理解为一串代码(关于svg的具体介绍大家可以自行检索)。获得这串代码是一个重复性的工作,我们交给python脚本来完成。
python脚本自然需要python解释器来运行,因此首先需要安装python3(python2和python3在语法方面有比较大的变化,本文脚本用python3写作,因此需要安装python3)。那么在windows系统下安装完python3,又如何使用python脚本呢?
1)运行(快捷键 win+ R),输入cmd,打开命令行,如下图
2)输入pythonget_SVG_code_for_gene_map.py [options](脚本需要输入全路径,然后输入参数,例如查看帮助使用-h,如图所示)
一共有6个参数:
-h显示脚本说明及帮助文档;
-i输入文件,即基因列表,给定全路径,列表需要包含四列:第一列是基因ID,第二列是基因方向(+和-表示),第三列是基因起始位置,第四列是基因终止位置(列间要用“tab”键分隔,而不是空格键);
-o输出文件,同-i 参数一样,需要指明全路径,文件名只要你喜欢就好;
-cgene map的配色方案,可以指定1-5中的一种,也可以缺省使用默认值;
-s基因编号的字号,给定类型为数字,也可以缺省使用默认值40;
-a不给该参数时,默认画幅为6000*500px,当给定genecluster过大或者过小使用默认画幅不合适时,可以给定该参数让程序进行自动调整。
下面是运行实例:
生成的svg_test.txt文件即svg代码,接下来我们该进行展示和个性化调整了,使用的软件是Inkscape。
Inkscape安装不再啰嗦,而对svg进行展示则更简单,直接将svg_test.txt拖到Inkscape的快捷方式即可,当然,期间会有下面的提示,甭管他,直接关闭提示就可以看到我们的gene map了。
接下来,如下图,更改关键基因的颜色,添加/删除文字描述,移动基因位置等等,只要你开心就好。
好了好了,在卢瑟菌的不停催稿不断施压下,终于码完文章,可以开开心心过年啦,哈哈哈哈哈哈哈。。。
温馨提示:
本期校稿:卢瑟菌 李小圆
本期排版:卢瑟菌
领取专属 10元无门槛券
私享最新 技术干货