RaxML使用
1、下载
https://github.com/stamatak/standard-RAxML
2、How many Threads shall I use?
重要的是要知道,RAxML PThreads版本的并行效率取决于比对长度。通常,随着使用的内核/处理器数量的增加,您会希望并行程序变得更快。然而,通常情况下并非如此,因为使用的处理器越多,它们等待输入解析和彼此通信的时间就越多。在计算机科学中,这种现象被称为Amdahl法则(http://en.wikipedia.org/wiki/Amdahl's_law,https://www.cnblogs.com/battlecry/p/4696405.html.)。因此,如果您使用32而不是1个线程运行RAxML,这并不意味着它会自动变得快32倍,甚至可能变得更慢。正如我已经提到的,并行效率,即,在使用多少线程/内核的情况下,您仍然可以有效地并行执行它,取决于比对长度,或者更精确地说,取决于比对中不同模式的数量。这个数字由RAxML打印到终端并输入RAxML_info.runID文件,如下所示:
Alignment has distinct alignment patterns
根据经验,我将使用一个核心/线程每500个DNA位点模式,即,如果你有更少的,那么最好使用 sequential 版本。约有1000个位点的单基因DNA比对,可以用2个或最多4个线程进行分析。因此,比对的模式越多,则可以有效地使用更多的线程/内核。还要注意,效率取决于数据的类型,或者更准确地说,取决于数据中的状态数(例如,DNA中的4个状态,蛋白质中的20个状态)。状态越多,每个线程/核心需要的站点模式(site patterns)就越少,这样RAxML才能高效地并行执行。这是因为随着状态数的增加,每个站点模式需要进行更多的计算工作(更多的数学操作)。因此,使用蛋白质数据,每个线程需要更少的站点才能有效地运行RAxML。因此,当使用16个核时,具有1000个蛋白位点模式的MSA仍然可以有效地运行。最后,并行效率还取决于速率异质性模型。与γ模型(GAMMA)需要更多的计算,因此通常使用更多的线程,GAT模型执行 大概是γ模型需要大约¼的计算。注意,这些只是非常粗略的经验规则,您需要测试您的数据集的最佳设置是什么!
3、 RAxML Likelihood Values & Idiosyncrasies
需要注意的是,RAxML生成的似然值不能直接与其他ML程序的似然值进行直接比较。以上当然指的是对相同树的可能性进行评估,就树搜索而言,程序将生成不同的树拓扑结构,因此在大多数情况下也会产生不同的似然值。注意,PHYML/RAxML和GARLI似然值之间的偏差有时可能更大,因为GARLI使用稍微不同的过程来计算碱基频率(Derrick Zwickl, personal communication,许多年前),而RAxML中的方法与在PHYML中实现的方法完全相同。在多序列比对中,RAxML/PHYML和GARLI之间的偏差似乎更大。还要注意,由不同的RAxML版本产生的似然值,尤其是不应该直接相互比较。这是由于在似然函数实现和模型参数优化过程中频繁改变代码和数据结构造成的!因此,如果希望比较不同ML程序获得的拓扑结构与它们的可能性,请确保使用同一个程序优化最终拓扑的分支长度和模型参数。
4、Differences in Likelihood scores
理论上,所有ML程序实现相同的数学函数,因此对于固定的模型和给定的树拓扑结构,应该产生相同的似然值。然而,如果我们试图在有限的机器上实现一个数值函数,我们将不可避免地获得舍入误差。即使我们改变序列(或如果它是由编译器改变,通常是这样)的一些操作,在我们的计算机应用浮点数或双精度算术,我们可能会得到不同的结果。我个人的观点是,为获得好的最终ML树,拓扑搜索(分析拓扑的数量)比精确的似然值得分更重要。特别是在有超过1000个序列的大型树中,拓扑引起的似然值的差异通常非常大,以致于使用1 log似然单元的epsilon (RAxML -e选项)进行非常粗略的参数优化。如果两个连续的模型参数优化迭代之间的差小于1.0,已经清楚地显示出差异,我们停止优化。注意,如果执行bootstrap分析,则不需要过多担心似然值,因为通常只对引导拓扑感兴趣。
5、Alignment input File Formats
RAxML的输入 alignment格式是relaxed interleaved或顺序排列的FASTA。放松意味着序列名称的长度可以在1到256个字符之间变化。如果需要更长的分类单元名称,可以在源文件axml.h中适当地使用常量#define nmlngth 256。此外,RAxML对交错的PHYLIP文件的PHYLIP格式(制表符、insets等)不太敏感。输入树格式是Newick(http://evolution.genetics.washington.edu/phylip/newicktree.html)。
Alignment Error Checking(RAxML自动分析对齐,并检查以下错误):
1. 在比对中多次出现相同的序列名,当您从某个工具导出一个标准的PHYLIP文件时,很容易发生这种情况,该文件将序列名截断为8或10个字符。
2. 具有不同名称但完全相同的序列。这种情况通常发生在将某些难以比对的对齐区域排除在对齐之外,并且使用时没有意义。
3、只包含模糊字符的待定列将被视为丢失的数据,即对于AA数据,完全由X、?、*、-组成的列,以及N、O、X、?、-用于DNA数据(类似于其他数据类型)
4、只包含模糊字符(见上文)的待定序列将被视为丢失的数据。
分类单元名称中的禁止字符是包含任何形式的空格字符的名称,如空格、制表符和回车符,以及下列禁止字符之一::或()或[]
如果RAxML检测到相同的序列和/或未确定的列并执行,例如,使用-n alignmentName,通过删除相同的序列和/或未确定的列,它将自动生成一个名为alignmentName.reduced的比对文件。如果在分区模型分析中检测到这一点,则对应的模型文件modelFileName.reduced也会被写下来。如果RAxML遇到相同的序列名称、未确定的序列或分类单元名称中的非法字符,它将带着一个错误退出,您必须修正比对。
The RAxML options
到目前为止,最重要的命令是显示所有选项的RAxML帮助选项。我也经常使用它,因为我不能记住所有的。
RaxML使用的更多相关文章
- RAxML安装
1.下载解压 $ wget https://codeload.github.com/stamatak/standard-RAxML/zip/master -O standard-RAxML-maste ...
- 15、使用ggtree实现进化树的可视化和注释(转载)
本文作者:余光创,目前就读于香港大学公共卫生系,开发过多个R/Bioconductor包,包括ChIPseeker, clusterProfiler, DOSE,ggtree,GOSemSim和Rea ...
- 从零开始学生信-orthofinder的安装和使用-基因家族分析
[环境变量]注释掉conda3,source ~/.bashrc conda install orthofinder # 若在上一章之后没有重启的同学请重启后操作. # 由于是刚开始搭建,这里没有给o ...
随机推荐
- LSTM容易混淆的地方
1 如果只是学习怎么用LSTM,那么可以这么理解LSTM LSTM可以看成一个仓库,而这个仓库有三个门卫,他们的功能分别是 遗忘门.决定什么样的物品需要从仓库中丢弃. 输入门.决定输入的什么物品用来存 ...
- VS2017项目升级 error LNK2005: "public: __thiscall ATL::CTime::
我是将项目升级到从VS2012 升级VS2017, 报错如下 1>atlsd.lib(atltime.obj) : error LNK2005: "public: __thiscall ...
- NETCore下IConfiguration和IOptions的用法(转载)
原文:https://www.jianshu.com/p/b9416867e6e6 新建一个NETCore Web API项目,在Startup.cs里就会开始使用IConfiguration和IOp ...
- 【VS开发】COM组件技术概述
这篇文章对COM做出来比较完整的解释,非常好. COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术.在COM构架下,人们可以开发出各种各样功能专一的组件,然后将它 ...
- 1+X证书Web前端开发HTML专项练习
1 . HTML5 之前的 HTML 版本是? A.HTML 4.01 B.HTML 4 C.HTML 4.1 D.HTML 4.9 2 . HTML5 的正确 doctype 是? A.<!D ...
- MySQL如果频繁的修改一个表的数据,那么这么表会被锁死。造成假死现象。
MySQL如果频繁的修改一个表的数据,那么这么表会被锁死.造成假死现象. 比如用Navicat等连接工具操作,Navicat会直接未响应,只能强制关闭软件,但是重启后依然无效. 解决办法: 首先执行: ...
- 【07】Nginx:状态统计 / 状态码统计
写在前面的话 在 nginx 中,有些时候我们希望能够知道目前到底有多少个客户端连接到了我们的网站.我们希望有这样一个页面来专门统计显示这些情况.这个需求在 nginx 中是可以实现的,我们可以通过简 ...
- cuda,cudnn
20191008 服务器上的cuda总是被人搞坏掉,好烦.记录下: 卸载干净cuda sudo rm -rf /usr/local/cuda sudo apt-get remove cuda sudo ...
- .NET使用本地Outlook邮箱指定邮箱用户名和密码发送邮件
1.添加Microsoft.Office.Interop.Outlook引用 2.封装发送邮件方法 using System; using System.Configuration; using Sy ...
- 花了近十年的时间,整理出史上最全面Java面试题
1.String 是最基本的数据类型吗? 不是.Java中的基本数据类型只有8个:byte.short.int.long.float.double.char.boolean:除了基本类型(primit ...