物种进化树构建

使用单拷贝基因画物种进化树

所需软件:

# OrthoFinder寻找同源基因
conda install  orthofinder

#EasySpeciesTree
git clone https://github.com/Davey1220/EasySpeciesTree.git

该脚本依赖Mafft, TrimAI, RAxML和ASTRAL四个软件,需要自己提前安装好
修改脚本中相应依赖程序的绝对路径:vi EasySpeciesTree.py
conda 可以直接安装mafft、 trimal、raxmlHPC
astral.5.6.3.jar:github下载:https://github.com/smirarab/ASTRAL
############### MODIFY THE FOLLWINGS PATHS FOR ALL DEPENDENT PROGRAMS ###############
MAFFT = '/xxx/anaconda2/bin/mafft'
RAxML = '/xxx/anaconda2/bin/raxmlHPC'
ASTRAL = '/xxx/software/ASTRAL-master/astral.5.6.3.jar'
TRIMAL = '/xxx/anaconda2/bin/trimal'
#####################################################################################

步骤:

  1. python 脚本更改物种蛋白序列的ID
#!/usr/bin/evn python3
# -*- coding: utf-8 -*-
__author__='LJS'

import sys, os

def renameID(infile, outfile):
        ini = open(infile, 'r')
        out = open(outfile, 'w')
        j = 0
        for i in ini:
                i = i.strip()
                if i.startswith('>'):
#                       print('>seq'+str(j).rjust(5, '0'), file=out)  #for python3
                        print >>out, '>Amborella'+str(j).rjust(5, '0')  #for python2
                        j += 1
                else:
#                       print(i, file=out)              #for python3
                        print >>out, i                  #for python2    

if __name__ == '__main__':
        infile =sys.argv[1]
        outfile = sys.argv[2]
        renameID(infile, outfile)

2)更改各个物种蛋白库文件的名字,与序列ID的名字前半部分一致;
例如Amborella.fa 其序列ID的名字为

Amborella00000
......
Amborella26845

3)运行orthofinder

orthofinder -f orthsp1 -M msa -S diamond -t 16 -a 16


-f 指定蛋白序列所在的文件夹(orthosp1)此命令仅需指定输入文件夹,其余为默认参数。
-t 序列搜索使用的线程数 (默认值为16)
-a 序列分析使用的线程数 (默认值为1)
-M 基因树推断方法(默认为dendroblast)可选:dendroblast ,msa
-S 序列比对使用的程序 (默认为Blast)可选:blast, mmseqs, blast_gz, diamond(推荐使用diamond,比对速度快)
-A 多序列联配方式,该选项仅当 -M msa 选项时才有效(默认为mafft)可选:muscle, mafft
-T 建树方式,该选项仅当 -M msa 选项时才有效 (默认为fasttree)可选:iqtree, raxml-ng, fasttree, raxml
-s 输入特定的根物种树
-I 设定MCL的膨胀系数(默认为1.5)


#如果要修改建树过程中的bootstrap,就要修改程序的config.json文件。该文件在conda环境里面的bin文件里
#如要在iqtree建树过程中增加bootstrap, 则在iqtree的"cmd_line":中添加 -bb 1000 (iqtree的超快bootstrap)或 -b 1000(传统bootstrap)

"iqtree":{
    "program_type": "tree",
    "cmd_line": "iqtree -s INPUT -pre PATH/IDENTIFIER -bb 1000 > /dev/null",
    "ouput_filename": "PATH/IDENTIFIER.treefile"
    },

4)orthofinder结果
所在文件夹:xxx/orthsp1/OrthoFinder/Results_Sep25/Orthogroups


image.png

orthsp1/OrthoFinder/Results_Sep25/Species_Tree


image.png

5)运行EasySpeciesTree 构建物种进化树

python ~/software/EasySpeciesTree/EasySpeciesTree.py -in1 species_id.txt -in2 SingleCopyOrthogroups.txt -in3 Orthogroups.csv -in4 all-pep.fas -nb 100 -t 16

  -h, --help            show this help message and exit
  -in1 INPUT1, --input1 INPUT1
                        offer the prefix of all abbreviated species id
  -in2 INPUT2, --input2 INPUT2
                        offer the Single-copy Orthogroups file, SingleCopyOrthogroups.txt
  -in3 INPUT3, --input3 INPUT3
                        offer the all Orthogroups file, Orthogroups.csv
  -in4 INPUT4, --input4 INPUT4
                        offer all species protein sequences
  -t THREAD, --thread THREAD
                        set the number of thread, default=10
  -nb BOOTSTRAP, --bootstrap BOOTSTRAP
                        set the number of bootstrap, default=100
  -m MODEL, --model MODEL
                        set the model of amino acid substitution, default=PROTGAMMAJTT

输入文件-in2 和 -in3 来自xxx/orthsp1/OrthoFinder/Results_Sep25/Orthogroups


image.png

输入文件-in1来自
xxx/analysis/specieTres/orthsp2/OrthoFinder/Results_Sep25/WorkingDirectory/SpeciesIDs.txt的第二列
awk '{print $2}' SpeciesIDs.txt |sed -i 's/.fa//g' > species_id.txt

输入文件-in4: cat *.fa >>all.pep.fas

6)EasySpeciesTree运行结果,会生成4个文件夹


image.png

将串联法和并联法生成的结果文件RAxML_bipartitions.concatenation_out.nwk,Astral.coalescence_tree.nwk导入FigTree、MEGA或者iTOL进行可视化

串联法(Concatenation)(先将不同物种之间的每个单拷贝基因单独进行多序列比对,然后将这些比对后的单拷贝基因进行首尾 相连串接成一个supergene矩阵,最后将这个supergene用于构建系统发育树)

并联法(Coalescence)(先将不同物种之间的每个单拷贝基因单独进行多序列比对,并构建每一个单拷贝基因对应的基因树,然后将所有单拷贝基因对应的基因树进行合并重构出相应的物种树)进行ML系统发育树的构建。

参考:

https://www.jianshu.com/p/bfa568c8f4c4
https://www.jianshu.com/p/9ef6d7f273b3
https://www.jianshu.com/p/90301eeb063a

高级用法
(1)添加新物种到之前的分析(previous_orthofinder_directory指的是包含“SpeciesIDs.txt”的目录)

$orthofinder -b previous_orthofinder_directory -f new_fasta_directory

(2)从之前的分析中移除物种
从输出目录下找到工作目录“WorkingDirectory”中的“SpeciesIDs.txt”文件,在要移除的物种那一行最前面加上一个“#”并保存,然后运行(previous_orthofinder_directory指的是包含“SpeciesIDs.txt”的目录):

$orthofinder -b previous_orthofinder_directory

(3)同时添加和删除物种
编辑好“SpeciesIDs.txt”后,运行:

$orthofinder -b previous_orthofinder_directory -f new_fasta_directory

(4)更多高级功能请阅读官方文档,主要包括“Inferring MSA Gene Trees”、并行计算、单独运行BLAST、使用预先计算的BLAST结果以及回归检测。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339