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 ...
随机推荐
- ksync
#include <linux/init.h> #include <linux/module.h> #include <linux/types.h> #includ ...
- Loadrunner 进行压力测试 并发测试
问题背景: 今年公司项目进行Saas化转型,在中间遇到很多问题,其中之一就是 Saas化后多租户的性能 和 并发问题.公司让我来调研和重现问题,通过调研总结了一些经验教训,分享给大家. 环境: Loa ...
- 阿里云cdn缓存设置技巧,不同文件结尾用不同的缓存时间
https://edu.aliyun.com/lesson_130_1505?spm=5176.10731542.0.0.2ed37dbf42YL6U#_1505
- Ubuntu安装有道词典
dpkg -i youdao-dict.deb正常安装 会报一堆依赖关系的错误, 1.更新系统 #更新系统 apt-get update apt-get dist-upgrade 2.对每一个未安装的 ...
- FileSystemResource 和 ClassPathResource 有何区别
在FileSystemResource 中需要给出spring-config.xml文件在你项目中的相对路径或者绝对路径.在ClassPathResource中spring会在ClassPath中自动 ...
- win10 配置python3虚拟环境
1.安装virtualenv pip install virtaulenv 2.创建虚拟环境 env03 virtualenv env03 3.切换到进入虚拟换环境脚本目录(activate) cd ...
- Spring AOP中使用@Aspect注解 面向切面实现日志横切功能详解
引言: AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一 ...
- 5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
POSIX 同步IO.异步IO.阻塞IO.非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下. ...
- NLP第二课(搜索)
最近压力太大了,持续性修改0注释的代码,变量为阿拉伯数字的代码,压力山大,摆正心态,没有那些bug,还需要我们来做些什么呢?如果一个特别出色的项目,也体现不出来你个人的出色.几句牢骚,我们今天来继续说 ...
- MySQL出现Waiting for table metadata lock的原因以及解决方法(转)
MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...