宏基因组分析

MrBayes构建贝叶斯树

2023-09-07  本文已影响0人  路人里的路人

1.前期准备

构建贝叶斯树需要用到的软件有phylosuite(序列准备)、iqtree2(最适模型查找)、mrbayes(构建贝叶斯树)。

2.phylosuite准备序列

在phylosuite中进行的操作主要是序列下载、比对、修剪与串联,在最后一步串联(concatenate sequence)时选择输出文件为Nexus Format(sequential)。这个文件后期作为mrbayes的输入文件。
phylosuite具体使用方法请见:phylosuite软件使用 - 简书 (jianshu.com)

3.iqtree2查找最适模型

在使用iqtree2构建ML树时,其产生的日志文件(*.log)中有记录bayes最适模型,使用“Bayesian”为关键词查找即可找到。
iqtree2具体使用方法请见:ML树软件iqtree2的安装与使用 - 简书 (jianshu.com)

4.mrbayes的安装与使用

4.1mrbayes安装

mrbayes安装可通过配制安装和conda安装两种方式完成,但因为配置安装需要管理员权限,我没有权限故使用conda安装。

conda create -n mrbayes
conda activate mrbayes
conda install -c bioconda mrbayes=3.2.7a
#直接一个conda安装三件套

使用conda安装软件时最好都进行以上三步操作,确保每个软件都有自己的一个环境从而不会干扰到其他软件的安全。这个很比较重要。
遇到的问题

(mrbayes) [monkeyflower@localhost:~]$ mb
mb: error while loading shared libraries: libhmsbeagle.so.1: cannot open shared object file: No such file or directory

经典缺少依赖库,但是这回我变聪明了,缺少依赖库是吧,我直接给你找一个出来。

cd ~/miniconda3
find /home/monkeyflower/miniconda3/ -type f -name "libhmsbeagle*"
home/monkeyflower/miniconda3/pkgs/beagle-lib-3.1.2-h9f5acd7_4/lib/libhmsbeagle-cpu-sse.so.31.0.0
/home/monkeyflower/miniconda3/pkgs/beagle-lib-3.1.2-h9f5acd7_4/lib/libhmsbeagle-cpu.so.31.0.0
/home/monkeyflower/miniconda3/pkgs/beagle-lib-3.1.2-h9f5acd7_4/lib/libhmsbeagle-jni.so
/home/monkeyflower/miniconda3/pkgs/beagle-lib-3.1.2-h9f5acd7_4/lib/libhmsbeagle.so.1.3.2
/home/monkeyflower/miniconda3/pkgs/beagle-lib-4.0.0-h4ac6f70_2/lib/libhmsbeagle-jni.so
/home/monkeyflower/miniconda3/pkgs/beagle-lib-4.0.0-h4ac6f70_2/lib/libhmsbeagle.so
/home/monkeyflower/miniconda3/pkgs/beagle-lib-4.0.0-h4ac6f70_2/lib/libhmsbeagle-cpu-sse.so.40.0.0
/home/monkeyflower/miniconda3/pkgs/beagle-lib-4.0.0-h4ac6f70_2/lib/libhmsbeagle-cpu.so.40.0.0
/home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle-cpu-sse.so.40.0.0
/home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle-cpu.so.40.0.0
/home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle-jni.so
/home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle.so.40.0.0
/home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle.so

你这不有一个/home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle.so吗,好那你就是libhmsbeagle.so.1

mv /home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle.so /home/monkeyflower/miniconda3/envs/mrbayes/lib/libhmsbeagle.so.1

再次运行,完美解决。

4.2nex文件配置

在第一步中我们已经准备好了nex文件,在第二步中我们查到了最适模型。现在需要将这两部分组合起来。样本文件如下:

#NEXUS
begin data;
   dimensions ntax=4 nchar=100;
   format datatype=dna missing=? gap=-;
   matrix
      xxxxxx......
   ;
end;

begin mrbayes;
   set autoclose=yes nowarn=yes;
   lset nst=6 rates=gamma;
   prset statefreqpr=fixed(equal);
   mcmc ngen=1000000 samplefreq=1000;
end;

其实就是在nex文件后面加上

begin mrbayes;
   set autoclose=yes nowarn=yes;
   log start file=wukuitxt;
   Outgroup Centaurium_erythraea_subsp__majus;
   Outgroup Gentianopsis_grandis;
   lset nst=6 rates=gamma;
   prset statefreqpr=fixed(equal);
   mcmc ngen=100000 samplefreq=1000 printfreq = 100 diagnfreq = 1000;
end;

这里需要更改的参数为”lset nst=6“,即指定最适模型,6代表的最适模型是GTR模型,如果是其他模型则分别为

1:JC69模型(Jukes-Cantor 69模型)
2:K80模型(Kimura 80模型)
3:F81模型(Felsenstein 81模型)
4:HKY模型(Hasegawa-Kishino-Yano模型)
6:GTR模型(通用时间可逆模型)

4.3运行mrbayes

具体操作步骤为

conda activate mrbayes
mb
exe yourfile.nex

将这个写入一个脚本,后台挂起运行就不会出现代码霸占整个屏幕的情况。

上一篇 下一篇

猜你喜欢

热点阅读