Phylogenomics

写在前面

关于系统发育基因组学的内容,本文参考了 Mike Lee 的文章,

有一个相关的视频,时长为32‘51‘‘ 感兴趣的可以点击下方进入观看。

系统基因组学:推断微生物之间的进化关系

什么是系统基因组学?

用一个容易理解但是不准确的概念来表示: 系统基因组学正试图在基因组水平上推断进化关系。

因为在实践中,我们并没有关注的所有生物体整个基因组。

并且根据我们考虑的多样性的广度,无论如何使用整个基因组是不可能或毫无意义的(因为它们可能太不同了)。

所以更恰当的说法是:系统基因组学试图在更接近基因组的水平上推断进化关系,而不是单个基因的系统发育(比如16S rRNA 基因树)。

一般大家习惯于查看和使用的大多数系统发育树是单一基因类型(如 16S rRNA 基因)的不同拷贝去估计进化关系的视觉表示。

如果我们试图在生物体层面上思考,我们将使用这些基因拷贝作为代表生物体本身的代理,并且我们假设这些基因的进化关系告诉我们一些关于它们源生物进化关系的有意义的事情。

我们正在用系统基因组学做同样的事情,只是我们使用多个基因而不是单个基因。

最后,我们仍然只是使用序列作为代理。所以更合适的定义可能是:

系统基因组学试图推断由多个串联基因组成的序列之间的进化关系,同时假设这些推断的进化关系告诉我们一些关于其源基因组进化关系的有意义的信息。

什么是单拷贝核心基因?

单拷贝核心基因,或单拷贝基因 (single-copy genes SCGs),是我们目前正在谈论的大多数生物体中恰好存在 1 个拷贝的基因。

为了比较生物体之间的基因,我们需要考虑实际拥有这些基因的生物体。但是我们也需要单拷贝的基因(而不是在我们的目标生物体内往往存在多个拷贝的基因),因为系统发育学中的一个内置假设通常是所考虑的基因处于相似的进化压力下

即使使用单拷贝基因,这也是微不足道的(并且可能永远不会真正完全正确),但是如果同一基因组中有多个基因拷贝(这些被称为旁系同源物),我们更有可能违反该假设。

所以这就是为什么当我们谈论系统基因组学时,SCG 扮演着如此重要的角色。

我们应该使用哪些基因?

我们选择研究的生物体决定了应该使用的基因。

根据上面谈到的关于为什么 SCG 在系统基因组学中如此有用,如果我们专注于更密切相关的生物群,那么符合这些标准的基因数量将比关注一个更分化的有机体组会相对较大。

上图来自 Hug et al. 2016 的生命之树使用了 15 个目标基因,因为它旨在跨越 3 个域。

但是,例如,如果我们只关注蓝藻,那么这一群体中共享的单拷贝基因的数量会大得多。

例如,为了为 GToTree 设计一个特定于蓝藻的单拷贝基因集,需要在 NCBI 提供的至少 90% 中蓝藻基因组中找到恰好存在于 1 个拷贝中的所有基因。

该过程在执行时产生了 251 个基因靶点。相比之下,当对所有细菌基因组应用相同的过程时,结果是 74 个。

没有一套理想的目标基因可以一直使用,因为它完全取决于我们试图研究的多样性的广度。

流程概览

假设有我们想要包含的基因组以及想要定位的一组单拷贝基因。下一步是什么?

目前最常见的方法之一可能如下所示:

1. 在我们所有的输入基因组中识别我们的目标基因

  • 这些由右侧卡通中的颜色表示
  • 请注意,基因组 “B” 缺少 3 个示例目标基因之一

2. 单独比对每组识别的基因

  • 例如 从所有输入基因组中识别出的目标基因“X”的所有拷贝都对齐在一起;对所有基因组单独完成相同的过程
  • 对于缺少目标基因之一的任何基因组,将 gaps 插入到该基因组的该基因的比对中(如上图”Genome B”的基因“Y”的比对)

3. 将所有这些序列水平对齐排列

  • 所有的单个基因比对并水平对齐排列,如果是氨基酸比对,通常会有一些“spacing”字符,比如几个“X”

4. 推断这些组合序列的进化关系

  • 构建进化树

这些一般步骤中的大多数可以以不同的方式完成,并且有很多决定需要做出,例如我们如何尝试识别我们的目标基因,我们使用什么来对齐它们,以及我们使用什么来制作我们的树。还有很多我们可能需要注意的事情,例如:

  • 可能想要采取一些措施来进行某种形式的自动筛选,以确保我们不会让任何被确定为我们目标基因版本的基因通过,但可能不应该这样做(因为这可能会影响我们对该基因集的比对)。

  • 如果一个给定的输入基因组中已识别出有目标基因的多个拷贝,我们可能不希望包含来自该基因组的该基因(具体可参见上面的SCG部分)。

  • 如果输入基因组的目标基因总体上很少被识别,我们可能希望从分析中完全删除该基因组。

下面我们将使用 GToTree 做一些系统基因组学,我们将看到它如何为我们自动化这些过程。

系统基因组学实操

这里要用到一款关于软件 GToTree 这是一个系统基因组学工作流程的软件,具体的内容可以通过 Github 访问,当然这款软件也不是适用于所有的数据组,还需要去自己详细了解一下。

GToTree 是一个用户友好的系统基因组学工作流程。

它为我们处理了所有潜在的计算量大的任务,例如:

  • 大规模访问基因组数据
  • 整合来自不同文件格式的基因组
  • 执行基因和基因组过滤
  • input labels 交换为 lineage 信息
  • 为我们将流程中的不同工具拼接在一起;等等

它使系统发育树的生成和迭代更加容易处理。 GToTree wiki 上有更多信息,
这里展示其概览图:

安装 GToTree

使用 GToTree 创建一个 conda 环境,并像这样激活它:

conda create -y -n gtotree -c conda-forge -c bioconda -c defaults -c astrobiomike gtotreeconda activate gtotree

聚球藻(Synechococcus)实例

聚球藻菌属(学名:Synechococcus)为聚球藻菌科的一个属。它是一种丰富的蓝藻,遍布全球海洋(和其他地方,但这里我们只讨论海洋 Synechococcus)

分类分配工具( taxonomy assignment tool )会告诉我们这些是聚球藻,这是必要的第一步

下一步是看看哪些聚球藻(Synechococcus)推断与新基因组最密切相关 —— 这就是从头系统发育树派上用场的地方(在使用新基因组时,无论是来自分离物测序或从宏基因组中恢复,一般在使用 GToTree 生成系统发育树之前使用GTDB-Tk 进行分类分配。)

我们需要提供给 GToTree 两件必需的内容:

  1. 我们想要研究哪些基因组;
  2. 我们想用哪些目标基因来构建我们的系统发育树。

输入基因组

把新基因组(FASTA格式)放入一些海洋参考聚球藻中(只需要提供 NCBI accessions 之后 GToTree 会为我们获取它们)。

我们可以使用以下内容下载此起始示例数据:

curl -L -o syn-gtotree-example.tar.gz https://ndownloader.figshare.com/files/23629763tar -xvzf syn-gtotree-example.tar.gzcd syn-gtotree-example/

如果我们查看该ref-syn-accs.txt文件,我们可以看到其中有 20 个 NCBI 程序集:

wc -l ref-syn-accs.txt
head ref-syn-accs.txt
GCF_000011385
GCF_000012505
GCF_000012625
GCF_000014585
GCF_000063505
GCF_000063525
GCF_000153065
GCF_000153285
GCF_000153805
GCF_000153825

其中包括 19 种海洋聚球藻参考,以及 Gloeobacter violaceus(一种更远的蓝藻)作为外群创建有根树

系统发育基因组学(Phylogenomics)的介绍以及实操相关推荐

  1. 重置已清账项目及两种不同重置方式(只重置、重置并冲销)介绍和实操-FBRA

    文章目录 一.重置已清账项目介绍 1.1 重置方式:只重置 1.2 重置方式:重置并冲销 二.业务实操 2.1 验证是否可以直接冲销-FB08 2.2 重置方式:只重置 2.3 重置方式:重置并冲销 ...

  2. 语言模型(LM)介绍及实操

    原文地址:https://medium.com/analytics-vidhya/a-comprehensive-guide-to-build-your-own-language-model-in-p ...

  3. 信而泰OLT使用介绍-网络测试仪实操

    一.OLT产品介绍 1.概述 PON作为FTTX网络发展的核心技术,局端设备OLT尤其重要. 本文档中主要介绍OLT的功能特性.业务配置 2.基本功能特性 2.1大容量和高集成度 ZXA10 C300 ...

  4. goaccess的安装、使用及介绍【实操完整版】

    goaccess的安装.使用及介绍 goaccess的安装.使用及介绍 一.安装goaccess 二.启动 1.第一种,用定时任务,定时生成html 2.第二种,改配置文件,让goaccess在后台运 ...

  5. 【iVX 开发 - 入门】UI 组件介绍及实操详解

    本文导读 写在前面 iVX 各 UI 组件及属性面板详解 1. 图片组件 2. 图片序列组件 3. 文本组件 4. 输入框组件 5. 富文本/富文本编辑器组件 6. 地图组件 7. 二维码组件 写在前 ...

  6. GIS基础测量、地形分析、位置分析、空间分析功能介绍与实操应用

    通知 入门级.进阶级一.二.三期.高阶级一期已完成,大家可进入公众号"图新地球"查看底部菜单:2022教程,获得软件直播课程的相关资料,包括直播讲解.直播PPT.直播的示例数据. ...

  7. 大数据框架介绍与实操

    文章目录 一. 大数据开源框架汇总简介 1.1 hadoop 1.2 hdfs 1.3 yarn 1.4 mapreduce 1.5 spark 1.6 hbase 1.7 zookeeper 1.8 ...

  8. win2012 磁盘阵列 介绍和实操

    2012存储的基本概念: 1.raid类型:raid0,raid1,raid4,raid10 2.磁盘类型:mbr模式(早期)(0-2g).GPT(大于2g) 一.raid1: 1.概述 又称为mir ...

  9. 【网络工程】6、防火墙介绍及配置实操

    接上篇<5.路由器介绍及配置实操> 之前我们讲解了网络设备路由器的介绍,以及完成了路由器的相关配置实操.本篇我们来讲解防火墙的基础知识以及相应的实操案例. 一.什么是防火墙? 防火墙是一个 ...

  10. 实操|风控规则的监控与自动化策略生成

    风险策略分析工作是风险管理的重要工作内容,其工作内容需要涉及风控领域中多个环节及细节内容,包含贷前策略调整.策略分析调优.贷中业务监控.贷后策略调整等模块内容. 监控这些风控策略,我们用得最多的就是各 ...

最新文章

  1. LeetCode简单题之二叉树中第二小的节点
  2. Bash shell
  3. linux下使用tar命令
  4. Alpha冲刺Day10
  5. jupyter 安装目录Table of Contents
  6. 深度学习:yolo v3训练结果测试
  7. bzoj1705[Usaco2007 Nov]Telephone Wire 架设电话线(dp优化)
  8. 【Flink】Flink 1.10之改进的TaskManager内存模型与配置
  9. Java虚拟机性能监测工具Visual VM与OQL对象查询语言
  10. Sengled Snap带摄像头的智能灯泡
  11. calendar获取本周一的日期_Java日期时间API系列1-----Jdk7及以前的日期时间类
  12. 【每周一本书】之《解码者:艾伦·图灵传》:解码计算机之父、人工智能奠基者的谜样人生
  13. [2020-11-30 ]国产化操作系统调研
  14. 链栈的基本操作(入栈,出栈)
  15. HDOJ 1197 Specialized Four-Digit Numbers 特别的四位数
  16. weblogic密码破解
  17. GLES2.0中文API-glReadPixels
  18. 《C++ primer plus》学习笔记
  19. abel533 / ECharts
  20. oracle 回收站那些事

热门文章

  1. 米思齐MT1637简单显示字符串和时间
  2. 点餐系统+小程序常见问题解决(2022年最新版)
  3. 计算机网络中的www服务,计算机网络基础练习题01
  4. sql与hsql的区别以及分别怎么用!
  5. r语言 与python r中python环境的创建
  6. springSecurity分离资源服务器分析
  7. 直流电机单闭环调速matlab仿真,单闭环直流电机调速Simulink仿真.docx
  8. socket 服务器端和客户端通信,面向TCP的
  9. Java利用HttpPost工具类提交数据
  10. Noiseware 5 降噪滤镜