2023-05-21運用多種軟件使用單拷貝同源基因構建進化樹

參考:
利用orthofinder尋找單拷貝基因構建系統發育樹 - 簡書 (jianshu.com)

創建conda環境,我個人命名為orthofinder,在該環境下用conda就可安裝orthofinder,muscle,mafft,seqkit,phyml軟件。
其他軟件prottest,RAxML可以官網下載,安裝就看README或者INSTALL。比如prottest,最后還要把phyml軟鏈到bin下,比如RAxML,make命令選一個跟自己系統匹配的運行一個就夠了,不用運行全部四個。

1 Othofinder運行

首先激活環境,然后可以后臺運行以下命令

orthofinder -f your/pep/fa/file/

我沒加線程參數,所以十個物種的大概運行2-4個小時。生成文件中會有 Single_Copy_Orthologue_Sequences文件夾。


orthofinder生成文件夾

2.對生成的單拷貝同源序列進行批量處理,比對。

在Single_Copy_Orthologue_Sequences文件夾下運行

$ vi 01.muscle.sh
#!bin/bash
for i in *.fa
do muscle -in $i -out $i.1 #新版本的muscle命令變了。
#或者do muscle -align $i -output $i.1
done

運行后多出一些后綴為.1的文件。*.1文件是比對好的序列文件。

3.提取保守序列

$ vi 02.gblock.sh
conda activate orthofinder
cd PATH/TO/Single_Copy_Orthologue_Sequences
for i in *.1
    do Gblocks $i -b4=5 -b5=h -t=p -e=.2
done

會生成一堆后綴是*.1.2的文件。

4.把序列排序,合并

$ vi 03.seqkit.sh
conda activate orthofinder
cd OrthoFinder/Results_May20/Single_Copy_Orthologue_Sequences
for i in *.2
do seqkit sort $i >$i.3
seqkit seq $i.3 -w 0 > $i.3.4
done

這里參考教程新建了文件夾new 把.4后綴的文件移到文件夾里然后

$ mkdir new
$ mv *.4 new/
$ cd new
$ paste -d " " *.4 > all.fa
$ sed -i "s\ \\g" all.fa

得到all.fa文件。

5.處理數據,將fa文件轉為phy格式

vi 04.fa2phy.py
#!usr/bin/python
import re
with open('all.fa', 'r') as fin:
    sequences = [(m.group(1), ''.join(m.group(2).split()))
    for m in re.finditer(r'(?m)^>([^ \n]+)[^\n]*([^>]*)', fin.read())]
with open('all.phy', 'w') as fout:
    fout.write('%d %d\n' % (len(sequences), len(sequences[0][1])))
    for item in sequences:
        fout.write('%-20s %s\n' % item)
$ java -jar /your/software/to/prottest3-master/dist/prottest-3.4.2.jar -i all.phy -all-distributions -F -AIC -BIC -tc 0.5 -threads 24 -o prottest.out

得到蛋白模型。

6.RAxML構樹

$ vi RAxML.sh
/your/path/to/01.Software/standard-RAxML-master/raxmlHPC-PTHREADS-SSE3 -T 16 -f a -x 123 -p 123 -N 1000 -m PROTGAMMAIJTTF -k -O -o Ensete_ventricosum,Musa_a,Musa_b \
       -n all.rename.tre -s all_rename.fa

qsub提交任務就可。十個物種大概運行1小時。
這里-o選項是定根,我的外群是芭蕉。如果不定外群,結果會很奇怪。
還有就是。-s參數后接的fa文件,其實是把每個物種的單拷貝同源序列合并成超長一條。最好把ID改成相應的物種。不然ID太長也會報錯。
然后我用的besttree復制到figtree軟件或者iTOL,就可以出圖了。

注:我只選了同一“目”下的一些物種,我要研究的五種物種的基因組,加上近緣物種選了五種,一共是十種。因為很近,所以gblocks可以運行。因為我想在更多的物種比如單子葉和雙子葉選了13種的時候gblocks好像選不出來保守基因,可能是單拷貝同源基因太少了。(個人推測)

個人覺得這種單純的樹沒啥用,后續還要加分化時間(r8s等)還有CAFE分析。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容