油菜(Brassica napus)(AACC,2n=38)是芸薹属油料作物的统称,其作为世界上最重要的油料作物之一,又是世界五大经济作物而备受学者关注。清代皇帝乾隆爷也曾作诗赞美“黄萼裳裳绿叶稠,千村欣卜榨新油;爱他生计资民用,不是闲花野草流。”
趁着三四月各地油菜花香的好时节,小编也应个景,给大家带来一篇2023年初发表题为《Identifi cation and phylogenetic analysis of R2R3-MYB subfamily in Brassica napus》的文章,但本文今天重点给大家介绍这篇文章中作者是如何展示油菜R2R3-MYB基因家族的进化关系的,这也是文章中最有特色,图片最美观的一部分了,真是不负“黄萼裳裳绿叶稠”的美景!
下图即为文章中R2R3-MYB基因家族和其他物种进化关系分析图,图中共包含油菜、白菜、甘蓝以及拟南芥四个物种的MYB家族基因,接下来我们就一起学习一下这四个物种基因组进化关系(共线性分析)到底有什么特别之处,以及是如何进行共线性分析的。
在讲解这个图之前我们要先明白两个问题,那就是为什么要选择白菜、甘蓝、拟南芥和油菜分析进化关系呢?利用什么软件画图?
油菜、白菜(Brassica rapa)(AA,2n=20)、甘蓝(Brassica oleracea)(CC,2n=18)以及拟南芥(Arabidopsis thaliana)(n=5)同属十字花科植物,白菜与甘蓝又同属芸薹属;而油菜正是由白菜和甘蓝自然杂交加倍形成的异源四倍体。因此甘蓝型油菜基因组两套染色体组A染色体组和C染色体组分别与白菜和甘蓝染色体组同源,那么通常甘蓝型油菜中相对于白菜和甘蓝会含有2个或2个以上的重复基因。下图为芸薹属六个物种之间的亲缘关系,可以看出物种之间的进化关系。
这篇文章正是基于甘蓝型油菜异源多倍体的特性,将其分为A,C两个亚基因组,研究两个亚基因组与白菜,甘蓝以及拟南芥进化关系。
接下来我们来解释一下文中共线性图片的内容:通过物种之间的共线性分析可以很好地解释基因家族基因在不同物种中进化关系:加倍,丢失,复制等演化关系。从文章中的共线性图中可以发现在油菜、白菜、甘蓝以及拟南芥之间普遍存在共线性关系。再看R2R3-MYB基因家族在不同物种中的同源基因是否因物种的分化与演化发生基因缺失和加倍事件。
共线性分析工具
绘制共线性分析的图片方法有很多,例如:WGDI,MCScanX,JCVI等,本文介绍是是Python版MCScan(JCVI工具包),这个包很强大,是从MCScanx升级而来的基因组共线性分析软件,不仅能修改参数还能美化图片,非常强大。
接下来,我们就以文章的数据库以及鉴定好的油菜、白菜、甘蓝、拟南芥的MYB基因为例,给大家具体展示如何绘图。
数据准备
1. 下载数据
绘制图片之前,我们需要下载数据,这里我们以文章中拟南芥,白菜,甘蓝,油菜的数据(下载的数据为:gff和cds文件)为例进行下载,油菜的数据来自hzau网站(http://cbi.hzau.edu.cn/bnapus/),其余物种数据均来自Ensembl网站(https://plants.ensembl.org/index.html)。
2. 处理数据
数据下载完毕,将下载的基因组数据中gene和mRNA ID前面加gene: 和 transcript: 去掉,并将 GFF 转换为 BED 文件并重命名它们,同时根据BED文件调整CDS文件,保证最终BED文件和CDS文件中id一致。
#将gff压缩文件转换成bed格式
python3-m jcvi.formats.gff bed --type=gene Arabidopsis_thaliana.gff3 -o Arabidopsis_thaliana.bed
python3 -m jcvi.formats.gff bed --type=gene Brassica_rapa.gff3 -o baicai.bed
python3 -m jcvi.formats.gff bed --type=gene Brassica oleracea.gff3 -o ganlan.bed
python3 -m jcvi.formats.gff bed --type=gene Brassica napus.gff3 -o youcai.bed
共线性分析
1. 分析4个物种之间共线性区域
#我们主要研究油菜和其他三个物种之间的共线性关系,同时我们将油菜自己和自己进行比较,为后面将油菜分为A基因组和C基因组做准备
Python3 -m jcvi.compara.catalog ortholog Arabidopsis_thaliana youcai --cscore=0.99 --no_strip_names
Python3 -m jcvi.compara.catalog ortholog youcai Brassica_rapa --cscore=0.99 --no_strip_names
Python3 -m jcvi.compara.catalog ortholog youcai ganlan --cscore=0.99 --no_strip_names
Python3 -m jcvi.compara.catalog ortholog youcai youcai --cscore=0.99 --no_strip_names
--cscore=0.99这个选项能够有效地筛选出best hit,建议加上,--no_strip_names是必加的参数(.cds和.bed都是要按照上述步骤修改对应格式),原文描述如下:
2. 对共线性区域进行过滤,生成.simple文件
python3 -m jcvi.compara.synteny screen --minsize=0 --minspan=30 --simple At.youcai.anchors At.youcai.anchors..new
python3 -m jcvi.compara.synteny screen --minsize=0 --minspan=30 --simple youcai.youcai.anchors youcai.youcai.anchors.new
python3 -m jcvi.compara.synteny screen --minsize=0 --minspan=30 --simple youcai.baicai.anchors youcai.baicai.anchors.new
python3 -m jcvi.compara.synteny screen --minsize=0 --minspan=30 --simple youcai.ganlan.anchors youcai.ganlan.anchors.new
--minspan是规定syntenic region的总长度(i.e. 基因个数)最低阈值,默认是0。
--minsize是规定syntenic region的anchors总个数(i.e.有共线性关系的基因对数目)最低阈值,默认是0,这里注意概念不要混淆.
span长度为10个基因并不代表10个基因全都是检测出的高质量anchor(只是人为规定的syntenic region的一个筛选标准而已,具有主观性和物种特异性,自己视情况定)。
size才是syntenic region中高质量anchor的(最小)数目,也是自己视情况定(参考synteny.py#L1345 in jcvi)。
给特定共线性关系区域高亮的话,那么直接修改.simple文件即可,只需要将想要高亮的那一行共线性关系区域的行首加你想改的颜色,也可以改成r,那样就成了红色,也可以加#ff0000(十六进行制颜色,表示红色),颜色的修改根据自己喜好修改即可;
文件中的每一行都是一个同步块。每一列表示的意义也不同,前两列是拟南芥开始和停止的基因,然后是油菜开始和停止的基因,最后两列是分数和方向。
绘图实操
绘图需要2个配置文件(layout和seqid),配置文件可以调整绘图的各种参数,修改完毕便可利用python画图了。1. 修改layout文件中y, xstart分别表示距离y、x轴的距离,rotation表示绘图时染色体倾斜的角度,color表示标签的颜色,label标签(可以根据自己的需要修改),va是染色体标签位置(top染色体标签在上,bottom在下),bed是物种的bed文件。
# y, xstart, xend, rotation, color, label, va, bed
.85, .4, .7, 0, green, Arabidopsis thaliana, top, At.bed .65, .2, .45, -30, Aqua, Brassica rapa, top, baicai.bed .65, .65, .9, 30, Sienna, Brassica oleracea, top, ganlan.bed .25, .2, .45, 30, MediumBlue, Brassica napus A, bottom, youcai.bed
.25, .65, .9, -30, Indigo, Brassica napus C, bottom, youcai.bed
#.25, .2, .45, 0, MediumBlue, Brassica napus A, bottom, youcai.bed
#.25, .65, .9, 0, Indigo, Brassica napus C, bottom, youcai.bed
#.25, .55, .9, 0, Indigo, Brassica napus C, bottom, youcaiC.bed
#.85, .50, .9, 0, Sienna, Glycine max, top, Gm.bed
# edges
e, 0, 1, At.baicai.anchors.simple.color
e, 0, 2, At.ganlan.anchors.simple.color
e, 1, 3, youcai.baicai.anchors.simple.color
e, 2, 4, youcai.ganlan.anchors.simple.color
e, 3, 4, youcai.youcai.anchors.simple.color
2. 修改seqid
seqids文件就是自己想要plot的染色体而定,下面是示例文件,染色体之间用逗号分隔。
#此文件的染色体编号名称需要和layout文件染色体编号名称对应,只是名称需要一致,顺序,数目可以不一致,例如你只想画拟南芥1号,2号条染色体,只需在第一行修改为1,2及可
1,2,3,4,5 #拟南芥染色体
A01,A02,A03,A04,A05,A06,A07,A08,A09,A10 #白菜染色体
C9,C8,C7,C6,C5,C4,C3,C2,C1 #甘蓝染色体,为使图片美观,特将染色体倒叙粘贴
scaffoldA01,scaffoldA02,scaffoldA03,scaffoldA04,scaffoldA05,scaffoldA06,scaffoldA07,scaffoldA08,scaffoldA09,scaffoldA10 #油菜scaffoldA组染色体
scaffoldC09,scaffoldC08,scaffoldC07,scaffoldC06,scaffoldC05,scaffoldC04,scaffoldC03,scaffoldC02,scaffoldC01 #油菜scaffoldC组染色体
3. 绘图
输入下面以python开头的一行代码,便可以绘制图片。
#figsize=15(长)x10(宽)
#--format=pdf(图片格式,还有emf|eps|pdf|png|ps|raw|rgba|svg|svgz等)
#如果生成png,还可以加参数--dpi=DPI (--dpi=300)
#其他参数如下图
python -m jcvi.graphics.karyotype --format=pdf --figsize=15x10 mcscan_seqid mcscan_layout
图片就这样画好了,是不是很简单呀!今天就讲到这里,如果你也想做多物种间的进化分析,赶快试一下吧!
如果你的物种是三个,也可以做成三角形,如下图:
温馨提示:
1.layout文件中,如果xstart设置为0.1的话你设置的label只能显示半个。所以调成了0.2;这里的y值我的理解是纵向的位置,如果你把上下两个值填一样的(比如都是0.5)上下两条会重叠在一起;xend不能调比0.9大的值,否则会变得特别特别小,变成一条线。
2.下面的edges不能瞎改,0和1的意思是把第一个和第二个连线。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!