CAFE: a computational tool for the study of gene family evolution
1、摘要
摘要:我们提出了CAFE(计算分析基因家族进化),这是一个统计分析基因家族进化规模的工具。它使用随机的出生和死亡过程来模拟一个系统发育过程中基因家族大小的进化。对于一个特定的系统发育树,并给定现存物种的基因家族大小,CAFE可以估计全局基因家族的出生率和死亡率,推断所有内部节点上最可能的基因家族大小,确定基因加速损益率的家庭(用并确定哪些分支导致p值较小重要的家庭。)
2、 INTRODUCTION
对全基因组和单基因家族的分析揭示了家族规模的巨大变化,即使是对全基因组和单基因家族的分析也发生了巨大的变化揭示了家族大小的巨大变化,甚至在亲缘关系密切的生物体之间也是如此。此外,基因家族的大收缩和扩张通常归因于自然选择,而这些说法没有统计基础。为了使推论关于两个基因家庭规模变化的方向和大小,以及大尺寸的变化是否真正进化意义重大,我们介绍cafe(基因家族进化的计算分析):一个分析的工具基因家庭规模系统上下文的变化。Hahn et al. (2005);介绍了cafe所采用的概率模型;它使用随机的出生和死亡过程来模拟沿着系统发育树的每个谱系的基因得失。为了对整个系统发育过程进行推断,采用概率图形模型计算了系统发育过程中基因家族大小由父节点向子节点转移的概率。使用图形化模型机制,可以得出推论关于所有祖先物种的基因家族大小。特别是,树中现存分类单元中基因家族大小的说明足以估计祖先基因家族大小(因此也就可以确定每个分支的变化方向),并进行识别,特别是,现存的规范基因家族大小的类群在树上能充分估计祖先的基因家族的大小(因此改变在每个分支的方向),以及识别异常基因家族进化,并违反了一个特定模型的谱系及基因家族。CAFE可以通过一个易于使用的图形界面运行,也可以通过一个命令行版本运行,这两个版本都允许研究人员指定他们希望运行的分析。
3、DESCRIPTION
CAFE的主要输入是一个根和分叉的系统发育树的Newick描述(包括以时间为单位的分支长度)和一个包含现存的类群。数据文件可以由一个家族的数据组成,也可以由指定树的数千个家族组成。数据文件的第一行应该包含现有物种的名称(在Newick中使用),以tab键分隔,没有特定的顺序。随后的每行对应一个基因家族,并包含这些现存物种的制表符分隔的家族大小。如果数据文件中的列的标题与Newick树描述中的任何名称都不对应(Newick树描述可能提供关于基因家族的附加信息),那么这些列将被忽略,并简单地复制到输出文件中。Newick树描述的例子和相应的数据文件可以在在线用户手册中找到。第三个输入是λ,这是在系统发育过程中,每个基因在单位时间内每个基因获得和丢失的概率[CAFE假设基因的出生和死亡的概率相等]。用户可以通过输入一个数值来指定λ,或者让CAFE在数据文件中找到给定基因家族的最大似然值。应该注意的是,估计值λ是输入文件中所有家族的全局最可能值;可以通过单独运行每个家庭计算单个家庭的估计值λ。为了估计最大似然值,CAFE在用户提供的两个数值之间计算该参数的11个等距值的数据的似然值(在命令行版本中,使用的等距值的数量可以更改)。给定λ的初始范围,在后续分析中使用导致最大似然值的值;或者,在计算了λ的最大似然估计值后,可以要求CAFE停止分析。如果最可能的值是CAFE查询的两个最极端值之一,或者给定的初始范围非常大,建议在围绕前一个最可能值的区间内再次运行λ的估计。CAFE输出的日志文件包含所有查询值λ。给定系统发育树、现存物种(数据文件)中的基因家族大小和λ的值,可以使用图形模型计算祖先物种中最可能的家族大小,以及每个家族的大小。CAFE计算这些所谓的维特比赋值,通过比较所有父节点和子节点的估计大小,可以推断每个分支上基因家族大小变化的方向和大小。维特比赋值报告在主输出文件中。日志文件中报告了沿着树的每个分支扩展的平均大小(负值表示所有家族之间的平均收缩),以及树的每个分支上没有变化、扩展或收缩的家族的数量。对于数据文件中的每个基因家族,根据我们的基因家族进化模型,CAFE计算了与现存物种的基因家族大小相关的p值。拥有大量大小上的差异,特别是在亲缘关系密切的物种之间,可能具有较低的p值。低p值的基因家族很有趣,因为大的收缩或扩张可能与自然选择有关,或者与包含多个相关基因的染色体的大量复制或缺失有关。对于那些p值较小的基因家族,识别发生最大变化的树的分支(因此也就是反对模型的地方)是很有意义的。cafe合并三个方法来标识这些分支。虽然这些方法在本质上是不同的,但根据我们的经验,它们在大多数情况下是一致的。第一个方法(' Viterbi ')使用对祖先节点的Viterbi赋值,然后沿着树的每个分支计算从父节点到子节点的转换的p值。第二种方法(“分支切割”)计算如果我们切割树的一个分支,与一个基因家族相关的总p值是否会增加。通过“切割”一个分支,我们意味着移除该分支的父和子家庭大小之间的概率耦合。然后,给定删除一个分支作为模型的树,计算基因家族的p值(对每个分支分别执行此操作)。如果在切割一个分支之后,p值显著增加,那么这个分支可能要为整个模型的整体p值较低负责。第三种方法(“似然比检验”)通过估计进化速率参数l在被调查分支上的单独值,最大限度地提高了基因家族的可能性。模型中有两个参数的似然值与只有一个参数的似然值之比可用于评估沿着单个分支需要额外参数的情况。因此,高值表示分支的进化变化量大于预期
CAFE: a computational tool for the study of gene family evolution的更多相关文章
- Calculus on Computational Graphs: Backpropagation
Calculus on Computational Graphs: Backpropagation Introduction Backpropagation is the key algorithm ...
- (译)Calculus on Computational Graphs: Backpropagation
Posted on August 31, 2015 Introduction Backpropagation is the key algorithm that makes training deep ...
- Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]
最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...
- Mathematics for Computer Graphics
Mathematics for Computer Graphics 最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=105 ...
- Go 语言相关的优秀框架,库及软件列表
If you see a package or project here that is no longer maintained or is not a good fit, please submi ...
- Awesome Go精选的Go框架,库和软件的精选清单.A curated list of awesome Go frameworks, libraries and software
Awesome Go financial support to Awesome Go A curated list of awesome Go frameworks, libraries a ...
- 斯坦福CS课程列表
http://exploredegrees.stanford.edu/coursedescriptions/cs/ CS 101. Introduction to Computing Principl ...
- 七种常见的核酸序列蛋白编码能力预测工具 | ncRNAs | lncRNA
注:这些工具的应用都是受限的,有些本来就是只能用于预测动物,在使用之前务必用ground truth数据来测试一些.我想预测某一个植物的转录本,所以可以拿已经注释得比较好的拟南芥来测试一下.(测试的结 ...
- 32 Profiling Go Programs 分析go语言项目
Profiling Go Programs 分析go语言项目 24 June 2011 At Scala Days 2011, Robert Hundt presented a paper titl ...
随机推荐
- java基础(5)内部类
1 成员内部类的定义和使用 public class Outer { private String name; public class Inner { public void innerMethod ...
- UITabView使用详解
在开发iphone的应用时基本上都要用到UITableView,这里讲解一下UITableView的使用方法及代理的调用情况 - (void)viewDidLoad { [super viewDidL ...
- BZOJ - 3170: 松鼠聚会 (切比雪夫转曼哈顿距离)
pro: 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离.0&l ...
- git创建分支并上传仓库
1. 新建分支 xxx 2. git pull (目录下 命令行将线上分支拉倒本地) 3. git checkout xxx (切换到到该分支 ) (可使用 git status 查看目前处于哪一个 ...
- ViewpageAdapter
import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory; ...
- Centos7 firewall开放3306端口
目录 Centos7 firewall开放3306端口 1. 查看防火墙状态 2. 关闭防火墙firewall 3. 关闭防火墙firewall后开启 4. 开启端口 5. 重启防火墙 6. 常用命令 ...
- C++学习(三十五)(C语言部分)之 单链表
单链表 就好比火车 火车头-->链表头部火车尾-->链表尾部火车厢-->链表的节点火车厢连接的部分-->指针火车中的内容-->链表节点的的数据链表节点包含数据域和指针域数 ...
- cordova网络情况检测插件使用:cordova-plugin-network-information
1. 添加插件 : cordova plugin add cordova-plugin-network-information 2. 调用方法: document.addEventListener(' ...
- Netty学习记录
一.Netty简介 Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性. Netty 是一个 NIO client-s ...
- python的set处理二维数组转一维数组
for splitValue in set(dataset[:, featureIndex].tolist()): 首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重:但是set接收 ...