linux中mpich的运行线程,贝叶斯法构建进化树:MrBayes

1. 简介

使用贝叶斯法构建进化树的软件有很多。在这里简要介绍MrBayes的安装和使用。以下介绍是对几种贝叶斯法构建进化树软件的简介:

MrBayes is a program for Bayesian inference and model choice across a wide range of phylogenetic and evolutionary models. MrBayes uses Markov chain Monte Carlo (MCMC) methods to estimate the posterior distribution of model parameters.

BAMBE A nice program by Bret Larget and Donald Simon for the Bayesian inference of phylogeny.

Mac5 A program by Paul-Michael Agapow that deals with gaps as a fifth state.

Beast BEAST, written by Alexei Drummond and Andrew Rambaut, is a cross-platform program for Bayesian MCMC analysis of molecular sequences. It is particularly good for molecular clock analyses.

PHASE Paul Higgs is the author of Phase, designed specifically for use with RNA sequences that have a conserved secondary structure, e.g. rRNA and tRNA.

2. MrBayes的安装

通过MrByes官网:http://mrbayes.sourceforge.net/来下载MrBayes软件并安装。软件包中有其PDF格式的Manual。在windows系统下的MrBayes不能支持多线程运行,在Linux下则能很好地进行并行运算。

MrBayes的安装过程需要注意:其src文件夹的源码文件中有个名为CompileInstructions.txt的文件,介绍了如何进行软件的安装。

$ sudo yum install openmpi* mpi*

$ wget http://sourceforge.net/projects/mrbayes/files/latest/download?source=files

$ tar zxf mrbayes-3.*.*.tar.gz

$ cd mrbayes_3.*.*/src

$ autoconf

$ ./configure --with-beagle=no --enable-mpi=yes

$ make -j 8

$ sudo cp mb /usr/local/bin (optional)

以下是使用MrBayes的指令,单线程或多线程运行MrBayes.

$ ./mb

$ cat > ~/.mpd.conf

MPD_SECRETWORD=mr45-j9z

$ chmod 600 ~/.mpd.conf

$ mpd &

$ mpirun -np 8 ./mb

MrBayes v3.2.1 x64

(Bayesian Analysis of Phylogeny)

(Parallel version)

(24 processors available)

Distributed under the GNU General Public License

Type "help" or "help " for information

on the commands that are available.

Type "about" for authorship and general

information about the program.

MrBayes >

附加使用心得

1. 使用多线程版本得到的树状图和单线程版本的树状图完全不一样,差别太大。多线程版本的树状图完全是所有的分支都集合到一个点上,而单线程的就正常了。这可能是由于不会使用多线程运行MrBayes的原因 或 软件在多线程下的运算方法不好(可能性很小)

2. 在使用MrBayes 3.2.1版本中,发现默认下得出的tree文件中在treeview软件中显现不出后验概率,而3.1.2版本有。

3. 但是在64位的Linux系统中使用3.1.2版本总是会Crash (core dumped)。幸好在此网页中找到了解决方法:Bioinformatics applications at University of Canterbury HPC。

需要对Mrbayes安装包中多个文件进行修改,方法就是打个补丁:mb_64bit_safe.patch,再以64位的参数来make。步骤如下:

$ wget http://sourceforge.net/projects/mrbayes/files/mrbayes/3.1.2/mrbayes-3.1.2.tar.gz

$ tar zxf mrbayes-3.1.2.tar.gz

$ cd mrbayes-3.1.2

$ wget https://technical.bestgrid.org/images/7/73/Mb_64bit-safe.patch.txt

$ patch -R -p 1 < Mb_64bit-safe.patch.txt

$ OBJECT_MODE=64 make _64BIT=yes

至此,则运行MrBayes正常了。

3. MrBayes的简单教程

3.1 使用MrBayes来做一个典型的 Bayesian phylogenetic analysis,包括4个步骤:

a. Read the Nexus data file

b. Set the evolutionary model

c. Run the analysis

d. Summarize the samples

3.2 MrBayes分步演示

1. 导入nex文件.本案例使用多线程运行的演示,使用24个CPU运行程序。

$ mpd &

$ mpirun -np 24 mb

MrBayes > execute example.nex

2. 设置进化模型参数.本例中设定数据为DNA数据.

MrBayes > lset nst=6 rates=invgamma

3.1 主程序运行。

以下命令中nchains的值要 >= 设置使用CPU数。在单线程运行的时候可以不需要设置,而在多线程运行的时候不设置则会报错;ngen则是运行的长度,默认1,000,000次;samplefreq则是取样频率,每隔多少次运行次数取一次样;printfreq是打印频率,即每运行多少次将打印一行结果到屏幕上,默认为500;diagnfreq则代表每运行多少次分析一次结果,得出 Average standard deviation of split frequencies,默认是5,000.

运行时,会在输出到屏幕的最后一列看到预测的程序剩余运行时间。

MrBayes > mcmc nchains=24 ngen=2000000 samplefreq=1000 printfreq=500 diagnfreq=5000

3.2 如果在设定的代数运行完毕后,给出的 Average standard deviation of split frequencies的值小于0.01,则根据提示输入‘no'来停止运行,反之则输入'yes'继续运行直到满足其值小于0.01为止。

If you are intersted mainly in the well-supported parts of the tree, a standard deviation below 0.05 may be adequate.

4.1 使用sump来对参数值进行归纳。设置的burnin值为 (ngen / samplefreq) * 0.25 。程序给出一个概括的表,要确保PSRF一列中的值接近 1.0,否则需要运行该多的代数。

MrBayes > sump burnin=500

4.2 使用sumt来构树。burnin值和前一个相同

MrBayes > sumt burnin=500

4. 详细的MrBayes使用教程

4.1 将数据导入到MrBayes

MrBayes导入的数据为Nexus文件,该文件可以有4中数据类型:aligned nucleotide or amino acid sequences, morphological ("standard") data, restriction site (binary) data。Nexus文件中可以混合有这4种数据。

Nexus数据文件通常由其它程序产生,比如 Mesquite。文件以 nex 为后缀。

使用 execute fielename 或 exe filename将文件中的数据导入到MrBayes中。

4.2 指定模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux c之gcc -g file.c -o file提示warning: no newline at end of file

1 问题 编译c文件的时候&#xff0c;命令如下 gcc -g file.c -o file 错误提示如下 warning: no newline at end of file 2 解决办法 原因&#xff1a;源文件的最后一行没有回车符造成 我们用vim编辑文件&#xff0c;然后到文件最后一行回车就行 vi和vim操作&#xff0…

php strtoupper 和 array_change_key_case 字符串转大写,小写

strtoupper &#xff1a;字符串转为大写。 array_change_key_case 则是把数组的所有的键转换为大写字母。 strtoupper&#xff1a; <?phpecho strtoupper("Hello world!"); 输出&#xff1a; HELLO WORLD! strtolower &#xff1a;字符串转为小写。 <?…

用Excel VBA连接SQL Server数据库并将表中的数据显示到Excel中

本实例使用VB语言和OLEDB类连接SQL Server 2005数据库。 在sheet1上右键→查看代码&#xff0c;加入如下代码&#xff1a; Sub admin()Dim conn, xRsSet conn CreateObject("ADODB.Connection")conn.Open "ProviderSQLOLEDB.1;Persist Security InfoFalse;Use…

filter与servlet对照

最近在开java物自&#xff0c;还记得刚开始使用servlet这是一个调试ajax什么时候&#xff0c;然后&#xff0c;我不知道怎么用&#xff0c;你知道写的路径来调用&#xff0c;总是提示404错&#xff0c;&#xff0c;到最后自己一点点的调通了&#xff0c;知道servlet是须要serve…

vc++ 提取网页上的文字_网页内容不让你复制?老师傅教的这招太绝了,1键提取全网文字...

在网上冲浪&#xff0c;看到了一些不错的文字&#xff0c;想要复制下来&#xff0c;可是网站就不让你复制&#xff0c;非要你注册登录账号&#xff0c;更有甚者要你购买VIP才能复制文字&#xff0c;这不是天方夜谭吗&#xff1f;今天老师傅就教你一招&#xff0c;学会了网页文字…

使用 C# 生成 EMF 矢量图形文件

前言公众号上有网友询问我如何生成 EMF 文件的问题&#xff1a;本以为非常简单&#xff0c;我快速给出了解决方案&#xff1a;var bitmap new Bitmap(640, 480);var g Graphics.FromImage(bitmap);g.DrawString("My IO", new Font(FontFamily.GenericSerif, 10), B…

php register_shutdown_function响应error 配合error_get_last 捕获错误

register_shutdown_function 函数,当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会 被调用&#xff0c;可以配合 error_get_last 使用&#xff0c;代码如下&#xff0c;注释已经解释了代码了&#xff1a; error_get_last 稍后解释 <?php //a bo…

嵌入式开发linux工具,嵌入式Linux开发入门之MfgTool工具的使用

介绍嵌入式linux开发的环境搭建&#xff1a;一、PC端环境搭建2、Ubuntu装好后&#xff0c;在终端安装minicom工具&#xff0c;安装命令&#xff1a;sudo apt-get install minicom注&#xff1a;该工具在后面烧录开发板可以调试使用&#xff0c;对以后的嵌入式程序开发也是不可获…

SQL Server 2005 cmd工具的使用

您可以使用 sqlcmd 实用工具(Microsoft Win32 命令提示实用工具)来运行特殊的 Transact-SQL 语句和脚本。若要以交互方式使用 sqlcmd,或要生成可使用 sqlcmd 来运行的脚本文件,则需要了解 Transact-SQL。通常以下列方式使用 sqlcmd 实用工具: 在 sqlcmd 环境中,以交互的方…

剑指offer之按层打印树节点

1 问题 按层打印树节点&#xff0c;比如我们有树如下 23 5 1 4 2 3 这样打印&#xff1a;2 3 5 1 4 2 3 2 分析 队列&#xff1a;先进后出&#xff0c;这里我们先打印2&#xff0c;然后再打印3和5&#xff0c;我们这里可以使用队列&#xff0c;我们先把2入队…

基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口

对于hadoop HDFS 中的全部命令进行解析&#xff08;当中操作流程是自己的想法有不允许见欢迎大家指正&#xff09; 接口名称 功能 操作流程 get 将文件拷贝到本地文件系统 。假设指定了多个源文件&#xff0c;本地目的端必须是一个文件夹。 &#xff08;1&#xff09;依照…

【足迹C++primer】52、,转换和继承虚函数

转换和继承,虚函数 Understanding conversions between base and derived classes is essential to understanding how object-oriented programming works in C. 理解基类和派生类之间的转换是不可缺少的 理解面向对象编程在。 Like built-in pointers, the smart pointer cla…

python人脸识别训练模型生产_深度学习-人脸识别DFACE模型pytorch训练(二)

首先介绍一下MTCNN的网络结构&#xff0c;MTCNN有三种网络&#xff0c;训练网络的时候需要通过三部分分别进行&#xff0c;每一层网络都依赖前一层网络产生训练数据供当前训练网络&#xff0c;这样也推动了两个网络之间的最小损耗。PnetRnetOnetMTCNN的人脸模型按照以上结构按照…

聊一聊Redis的离线分析

背景 Redis 或许是我们大部分场景都会用到的一个利器&#xff0c;虽然是利器&#xff0c;用的姿势不对的话&#xff0c;终究还是会整出幺蛾子的。比较常见的问题&#xff0c;不外乎内存暴增&#xff0c;慢查询等情况。那么对于内存问题&#xff0c;可以借助redis自带的bigkey分…

C# 实现Winform全屏后不遮挡任务栏,显示任务栏

最近在忙中抽闲&#xff0c;看我的桌面太过死了&#xff0c;不生动&#xff0c;不可爱。。。 然后默默的想写一个动态桌面的一个小东西活泼一下。。。 随后拿起来了N久不碰的C#&#xff08;本人C#渣&#xff0c;不&#xff0c;应该说什么都渣。。。&#xff09; 结果在winfo…

SQL Server 2005登录名,用户名,角色,架构之间的关系

SQL Server 2005对2000进行了很大的改进,而用户关系这部分也变得相当复杂了,很多朋友都对此一知半解!下面,我将把我应用中总结的和大家分享下,先从概念入手,希望对不理解的朋友有点提示。 今天我们要说的包括服务器登录名ServerLogin,服务器角色Server Role,数据库用户…

【模拟】【codeforces】599B Spongebob and Joke

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id282385 就是一个人最开始有一串数a1 a2 ... am 他的熊孩子队友用一组函数f1 f2 ... fn 以及bi fai 把串A换成了串B 现在告诉你B和F&#xff0c;让你把A换回来&#xff0c;能换回来输出A&#xff0c;换回来可能有…

linux磁盘第一个扇区分析,Linux磁盘分区

一、磁盘连接方式与设备文件名的关系计算机常见的磁盘接口有两种&#xff0c;分别是IDE与SATA接口&#xff0c;目前主流接口已经是SATA接口了。一个IDE扁平电缆可以连接两个IDE设备&#xff0c;通常主机又都会提供两个IDE接口&#xff0c;因此最多可以接到四个IDE设备。也就是说…

剑指offer之分行从上到下打印二叉树

1 题目 分行从上到下打印二叉树 23 5 1 4 2 3 我们打印如下 23 51 4 2 3 2 分析 之前这篇博客写了通过队列按层打印剑指offer之按层打印树节点 现在无非就是还要按照条件打印&#xff0c;第一次打印1个&#xff0c;然后第二次打印2个&…

转:char*, char[] ,CString, string的转换

转&#xff1a;char*, char[] ,CString, string的转换 (一) 概述string和CString均是字符串模板类&#xff0c;string为标准模板类&#xff08;STL&#xff09;定义的字符串类&#xff0c;已经纳入C标准之中&#xff1b;CString&#xff08;typedef CStringT > CString&am…