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帮助选项。我也经常使用它,因为我不能记住所有的。

最新文章

  1. 【腾讯Bugly干货分享】基于RxJava的一种MVP实现
  2. Python中关于字符串的问题
  3. javascript十六进制数字和ASCII字符之间转换
  4. XML Namespace 命名空间
  5. 2.Sprng-IoC-Java反射例子
  6. javascript实现队列功能
  7. Google Web Toolkit (GWT)怎么制作多个用户界面
  8. Excel VBA批量修改文件夹下的文件名
  9. 【写一个自己的js库】 2.实现自己的调试日志
  10. 静态查找_Search
  11. 获取一个请求的URL内容
  12. iOS开发之XMPP即时通讯简单实现
  13. 解决adb server is out of date. killing...问题
  14. 更方便的函数回调——Lambda
  15. atlwin中不停发WM_PAINT消息原因分析
  16. 谈谈浏览器http缓存
  17. LeetCode算法题-Assign Cookies(Java实现)
  18. jfinal中,render的时候如何取到view根目录
  19. MyBatis mapper parameterType
  20. Linux下DNS简单部署(主从域名服务器)

热门文章

  1. linux jdk1.8 64位下载永久地址,ubuntu,centos,java
  2. MySQL锁表查询SQL
  3. mysql启动报错:Failed to start LSB: start and stop MySQL
  4. IDEA创建xml文件
  5. 第三章 web设计原则:
  6. GO学习笔记 - 数据校验
  7. Caused by: java.lang.ClassNotFoundException: org.springframework.data.repository.config.BootstrapMode
  8. python匹配ip地址
  9. 千万级MySQL数据库建立索引,提高性能的秘诀
  10. scrapy学习笔记(二)框架结构工作原理