本文为以 4 个兰科物种中 NB-ARC 结构域的序列信息作为输入,构建 有根基因树。步骤参考文献 Genome- Wide Analysis of the Nucleotide Binding Site Leucine-Rich Repeat Genes of Four Orchids Revealed Extremely Low Numbers of Disease Resistance Genes,Front. Genet.,08 January 2020。

我们知道构建基因家族的有根基因树与基因家族的扩张和收缩分析 需要物种树作为支持(详情参见:OrthoFinder 2.0 原理及所涉及的相关概念 )。本文通过 OrthoFinder 推断物种树

OrthoFinder 虽然可以生成基因树,但是组成基因树的基因必须来自于 OrthoFinder 通过 MCL 算法聚类出的 Orthogroup。如果待研究的基因家族基因无法被聚在 1 个 Orthogroup 中,则无法通过 Orthogroup 将所有基因家族成员绘制在 1 个基因树中。为了提高分析的灵活性,本文使用 IQtree 推断无根基因树 ,然后利用 Notung 调和无根基因树与有根物种树,得到有根基因树并完成基因家族的扩张和收缩分析。最后利用 iTOL 对基因树进行可视化呈现。

一、使用数据

  1. 构建物种树使用的是 4 个兰科物种的全部蛋白质序列信息。
  2. 构建基因树使用的是 4 个兰科物种蛋白组中 NB-ARC 结构域序列信息(结构域长度 ∈ [ 75% mean-length,125% mean-length ])。

二、分析流程

1. 使用 OrthoFinder 推断有根物种树

  • 有关 OrthoFinder 的介绍详见 OrthoFinder 2.0 原理及所涉及的相关概念

使用 orthofinder 根据 4 个兰科物种的蛋白序列,构建物种树。

$ orthofinder -f protein_fasta/ -t 50 -a 50
-t number_of_threads:多序列比对及建树等所调用的 CPU 数
-a number_of_orthofinder_threads :多序列比对及建树外其他操作所调用的 CPU 数

OrthoFinder 将文件夹 protein_fasta 内所有以 .fa、.faa、.fasta、.fas、.pep 结尾的文件作为输入,读取文件内的蛋白序列。有根物种树结果如下图(图 1)所示(通过 megax 查看)


与参考文献中物种树结构一致(图 2),说明了 OrthoFinder 结果的准确性 。由于 OrthoFinder 无需外群即可生根,为了判断无外群生根的准确性,本实验以 Amborellla trichopoda 作为外群进行建树,命令如下:

$ orthofinder -b protein_fasta/OrthoFinder/Results_Jan11/WorkingDirectory/ -f Atrichopoda/
  • -b <dir1> -f <dir2> 中 <dir1> 是指原先分析输出中的 WorkingDirectory 文件夹路径,<dir2> 是指新添物种的蛋白序列文件夹路径。命令表示在原先分析 <dir1> 的基础上添加 <dir2> 中物种的蛋白序列进行分析。这种做法相比从头分析省去了原先蛋白序列间比对的时间,OrthoFinder 将只进行新添序列间及新添序列与原序列间的比对。物种树结果如下:

可以发现,不加外群和加外群物种树的拓扑结构是一致的,验证了 OrthoFinder 不加外群构建有根物种树的准确性

  • Amborella trichopoda,无油樟,双子叶植物,其被认为是被子植物中最早分化出来的一支,和其他几乎所有的被子植物都没有明显的亲缘关系,常被用作基因分析的外群。Amborella 的基因组数据下载自 JGI phytozome
    https://phytozome.jgi.doe.gov/pz/portal.html#!info?alias=Org_Atrichopoda
    https://data.jgi.doe.gov/refine-download/phytozome?organism=Atrichopoda&expanded=291。

由于 OrthoFinder 不支持输入用户定义的 Orthogroup,而 4 个物种的 NB-ARC domain 会被 OrthoFinder 分割为多个 Orthogroup 并分别构建基因树,无法将 4 个物种的 NB-ARC 构建在 1 棵基因树中。这里使用 IQtree 来推断基因树结构。

2. 使用 IQtree 推断无根基因树

  • 有关 IQtree、MUSCLE 的介绍详见 MUSCLE、IQtree 软件及使用简介

使用 MUSCLE 对 NB-ARC domain 蛋白序列进行多序列比对。

muscle -in NB-ARC.domain.fasta -out NB-ARC.domain.afa -maxiters 2
-in 输入文件
-out 输出文件名,输出文件默认为 Fasta 格式
-maxiters 最大迭代次数

将多序列比对的结果作为 IQtree 的输入,推断无根基因树结构。

$ iqtree -s NB-ARC.domain.afa -nt 50 -m JTT+F+R10 -n 2 -alrt 1000
-s  输入文件
-nt 线程数
-m  指定使用模型:JTT+F+R10
-n  指定进化树迭代次数:2
-alrt 使用SH-aLRT检验并指定重复抽样次数:1000

252 个 NB-ARC domian 蛋白序列信息中 6 个蛋白没有通过 IQtree 的 chi2 检验,最终构建出包含 246 个蛋白的无根基因树。

3. 使用 Notung 根据有根物种树为无根基因树生根且推断基因复制、转移、丢失事件

Notung 输入:有根物种树、无根基因树

  • 物种树必须包含基因树中所有基因的物种,额外的物种将被 Notung 忽略。
  • 输入的基因树中的每个基因需要包含物种信息(格式:gene_species)。Notung 以 “_” 作为分隔符,基因名中最后一个 “_” 后内容作为物种名。如 Notung 认为 XP_020599319.1_Phalaenopsis_equestris 的基因名为 XP_020599319.1_Phalaenopsis,物种名为 equestris。所以如果物种名中包含 “_” 需替换为 “-” 或其他字符。

在 Notung 中导入基因树、物种树后,通过 Rooting Mode 将无根基因树转化为有根基因树。Rooting Mode 根据有根物种树为每个边计算 DTL 分数(DTL 分数越小的越适合做根),Notung 会高亮(红色)最小值及附近 [(max-min) × 5% ] 的边。用户通过鼠标点击确定选择那个边作为根。将生根后的基因树以 NEWICK 格式导出。

  • Notung 的 Reconciliation Mode 功能的输入是 有根基因树,通过比较基因树和物种树推断基因复制、转移、丢失事件。
  • Notung 的 Rooting Mode 功能的输入是 无根基因树,通过比较基因树和物种树推断最可能的生根边,根据用户选择的根推断基因复制、转移、丢失事件。本文使用的是 Rooting Mode 功能。

将有根物种树、无根基因树导入后发现 Notung 会计算出许多适合的生根位点(下图红线)。在没有外群的情况下,难以确定适合的生根位点。


为此,本文原先的数据集中加入外群(Amborella trichopoda)后重新进行 MUSCLE、IQtree 分析。Notung 计算出适合的生根位点如下图所示。可以发现,凭借外群能方便寻找适合的生根位点。从 Notung 的底边栏可以看到 Notung 推断 NB-ARC 发生了 254 次基因复制事件,76 次基因丢失事件。将生根后的基因树以 NEWICK 格式导出。

4. 利用 iTOL 在线工具绘制基因树图

iTOL:https://itol.embl.de/upload.cgi

将 Notung 生成的有根基因树文件作为输入,提交至 iTOL。图中

  • 土黄:Amborella trichopoda(外群)
  • 红色:Dendrobium catenatum
  • 紫色:Phalaenopsis equestris
  • 青色:Apostasia shenzhenica
  • 绿色:Gastrodia_elata

利用 OrthoFinder、IQtree、Notung、iTOL 绘制基因树相关推荐

  1. 用python画玫瑰花教程-利用Python的turtle库绘制玫瑰教程

    用Python的turtle库绘图是很简单的,闲来无事就画了一个玫瑰花,下面奉上源码.... 源码: ''' Created on Nov 18, 2017 @author: QiZhao ''' i ...

  2. php代码输出笑脸,利用HTML5中的Canvas绘制笑脸的代码

    这篇文章主要介绍了利用HTML5中的Canvas绘制一张笑脸的教程,使用Canvas进行绘图是HTML5中的基本功能,需要的朋友可以参考下 今天,你将学习一项称为Canvas(画布)的web技术,以及 ...

  3. 霍兰德人格分析:利用Python第三方库matplotlib绘制雷达图

    美国约翰霍普金斯大学霍兰德教授认为,个人职业兴趣特性与职业之间应有一种内在的对应关系.根据兴趣的不同,人格可分为研究型(I).艺术型(A).社会型(S).企业型(E).传统型(C).现实型(R)六个维 ...

  4. 【应用】Python利用高德地图经纬度数据绘制定位

    [应用]Python利用高德地图经纬度数据绘制定位 一. 背景 二. 获取API 1. 注册高德开放平台个人开发者 2. 获取key 三. 具体步骤 1. 库的导入 2. 根据地址获取经纬度 3. 绘 ...

  5. 利用基于注意力的神经网络绘制化学反应空间图谱

    <Mapping the Space of Chemical Reactions Using Attention-Based Neural Networks> 利用基于注意力的神经网络绘制 ...

  6. 利用思维导图软件绘制鱼骨图怎样做

    思维导图的类型有哪些? 圆圈图 主要用于把一个主题展开来,联想或描述细节.小圈圈是主题,而外面的大圈圈里放的是和这个主题有关的细节或特征 气泡图 由很多泡泡组成,中间一个主题泡泡描述核心主题,周围的属 ...

  7. [Unity]利用Mesh在Unity中绘制扇形图片

    背景 最近碰到个功能, 要画一个扇形图案, 如下图: 美术原图: 需求是这个图形跟随角色, 在角色背后, 并且每个角色的扇形角度可能不同. So, NGUI和UGUI很好用的FilledType是用不 ...

  8. python绘制简单城市剪影图_利用Python的folium包绘制城市道路图的实现示例

    写在前面 很长一段时间内,我都在研究在线地图的开发者文档,百度地图和高德地图的开发者中心提供了丰富的在线地图服务,虽然有一定的权限限制,但不得不说,还是给我的科研工作提供了特别方便的工具,在博客前面我 ...

  9. Google Earth Engine(GEE)——利用DEM数据划分100m等高线绘制青藏高原等高线

    我们利用NASA的DEM数据绘制等高线在GEE中MAP上进行展示: 1.加载DEM影像 2.添加一个点作为展示影像的中心点 3.建立一个时间序列作为DEM的高度,和设置切片(这个就相当于切片DEM,每 ...

最新文章

  1. 微信无法连接到服务器(110087)),110087无法连接网络是什么意思
  2. ASP 判断Session变量是否存在的4种方法
  3. C#枚举(Enum)小结
  4. 8-1:C++继承之对继承的理解和继承的基本使用,继承的格式
  5. 【Gamma】 Phylab 发布说明
  6. 思维导图使用技巧:手把手教你怎么画思维导图
  7. Delphi中小试Opencv--图像差异对比(大家来找茬辅助实现cvAbsDiff函数的使用)
  8. 【答题游戏】最强王者--小游戏开发解析
  9. 当在Windows上安装SQL Server,点击setup,出现以下错误0 x84b10001
  10. MySQL性能优化的最佳20+条经验
  11. 《大数据处理技术Spark》--林子雨
  12. 关于GNS3常用命令
  13. 【NOIP2016提高A组模拟9.24】天使的分裂
  14. 安装驱动显卡重启计算机,Win7系统安装显卡驱动后电脑一直重启怎么办
  15. 国科大学习资料--最优化计算方法(王晓)--第四次作业答案
  16. 强化练习200题(一)正题:160
  17. 赵钟秋谈又拍网架构中的消息/任务系统
  18. xslt简介_XSLT简介
  19. windows中java环境变量配置
  20. DotNetty TLS 开启双向认证加密传输数据

热门文章

  1. Waifu2x-Extension-GUI 人工智能无损放大与降噪(超分辨率) 图片 GIF 视频 v1.61.3 更新
  2. 拼多多的新用户,是从哪来的?
  3. c语言库函数 gmp,GMP中文简介
  4. python培训机构哪里好知乎
  5. 犀浦某校一名计算机系大二男生,大学生的恋爱观与婚姻观精选.pptx
  6. 为什么恒压驱动电源会缩短LED的使用寿命?
  7. 上期所API头文件四、ThostFtdcTraderApi.h--交易相关组件的定义(源代码6.3.19版)
  8. CentOS7服务器搭建百度贴吧云签到
  9. elementUi——适合于Vue的UI框架
  10. java的timertask_Java 定时器(Timer,TimerTask)详解及实例代码