Phylophlan(三)將新物種插入進化樹

導讀

Prodigal是原核生物基因預測軟件侄旬,常被用于原核生物de novo組裝分析中鸽捻。Prodigal能預測由de novo組裝得到的新物種的基因組草圖(bin)或contigs或scaffold中有哪些基因序列糊余,并同時將這些序列翻譯成蛋白。Phylophlan能通過將由基因組草圖預測和翻譯得到的基因蛋白序列數(shù)據(jù)與Phylophlan自帶的3000+種微生物的蛋白數(shù)據(jù)做比對分析新物種與3000+微生物的進化關系。利用ggtree可視化結果可觀察新物種在已知物種在進化樹中的位置豫缨。我這里采用的輸入數(shù)據(jù)是宏基因組分箱得到的基因組草圖,獲取方法請在:宏基因組分箱(二)Metabat2分箱實戰(zhàn)端朵。接下來是將新物種插入進化樹的具體方法:(1)Prodigal蛋白預測好芭;(2)Phyloplan進化分析;(3)ggtree可視化1冲呢、2舍败、3、4敬拓。

1. Prodigal蛋白預測

for I in bin/all/*; do
    BASE=${I##*/}
    SAMPLE=${BASE%.*}
    prodigal -a bin_function/all/$SAMPLE.faa -d bin_function/all/$SAMPLE.fna -f gff -g 11 -o bin_function/all/$SAMPLE.out -p single -s bin_function/all/$SAMPLE.pot -i $I &
done
# 將bin/all文件夾里的完成度大于90%的bin(基因組草圖)進行基因預測邻薯,獲得蛋白序列信息。
# 其實我這里只有兩個bin:all.1.fasta和all.5.fasta

    # prodigal部分參數(shù):
    -a: 輸出的蛋白序列文件名
    -d: 輸出的核酸序列文件名
    -f: 輸出文件格式(gbk, gff, or sco)乘凸,默認gbk
    -g: 指定密碼子厕诡,原核為第11套,默認是11
    -o: 輸出文件营勤,默認為屏幕輸出灵嫌,標準輸出
    -p: 選擇方式信柿,是單菌還是meta樣品
    -s: 將所有帶有得分的潛在基因?qū)懭氲街付ㄎ募?    -i: 指定FASTA/Genbank輸入文件(默認標準輸入)

二、phylophlan進化分析

將包含基因預測得到的faa(FASTA Amino Acid file)文件的整個“all”文件夾拷貝到phylophlan軟件的input文件夾中醒第,然后進行系統(tǒng)發(fā)生分析渔嚷。這一步會將3000+種已知微生物與我的兩個基因組草圖放在一起進行進化分析,因此速度非常慢稠曼。

ll input/all/
# 查看輸入文件形病,如下:

      總用量 1608
      drwxrwxr-x 2 cheng WST   4096 9月  30 18:01 ./
      drwxrwxr-x 8 cheng WST   4096 10月 24 14:26 ../
      -rw-rw-r-- 1 cheng WST 885979 9月  30 18:01 all.1.faa
      -rw-rw-r-- 1 cheng WST 748679 9月  30 18:01 all.5.faa

phylophlan.py -i -t all --nproc 16
# 進化分析

ll output/all/
# 查看結果文件,如下:

    總用量 7552
    drwxrwxr-x 2 cheng WST    4096 10月 17 10:14 ./
    drwxrwxr-x 9 cheng WST    4096 10月 24 14:28 ../
    -rw-rw-r-- 1 cheng WST  107348 10月  8 11:26 all.tree.int.nwk
    -rw-rw-r-- 1 cheng WST     219 10月  8 11:30 imputed_conf_high-conf.txt

三霞幅、配色和標簽

利用nsegata-phylophlan/data/ppafull.tax.txt制作個性化畫圖所需的配色和標簽文件漠吻。ppafull.tax.txt內(nèi)含Phylophlan自帶的3000+物種的分類注釋信息。該文件內(nèi)容如下:

less -S ppafull.tax.txt
# 查看文件:

    t643692001      d__Bacteria.p__Acidobacteria.c__Acidobacteria.o__Acidobacteriales.f__Acidobacteriaceae.g__Acidobacterium.s__capsulatum.t__ATCC
    t648276601      d__Bacteria.p__Acidobacteria.c__Acidobacteria.o__Acidobacteriales.f__Acidobacteriaceae.g__Granulicella.s__sp_.t__MP5ACTX8
    t649633002      d__Bacteria.p__Acidobacteria.c__Acidobacteria.o__Acidobacteriales.f__Acidobacteriaceae.g__Granulicella.s__sp_.t__MP5ACTX9
    t649633100      d__Bacteria.p__Acidobacteria.c__Acidobacteria.o__Acidobacteriales.f__Acidobacteriaceae.g__Terriglobus.s__saanensis.t__SP1PR4
    t637000001      d__Bacteria.p__Acidobacteria.c__Acidobacteria.o__Acidobacteriales.f__Korebacteraceae.g__Korebacter.s__versatilis.t__Ellin345
    t639633060      d__Bacteria.p__Acidobacteria.c__Solibacteres.o__Solibacterales.f__Solibacteraceae.g__Solibacter.s__usitatus.t__Ellin6076
    ...

提取ppafull.tax.txt的第一列全部內(nèi)容和第二列的門注釋信息司恳,接著添加Bin信息途乃,可得如下文件:

id      Phylum
all.1   Bin
all.5   Bin
t643692001      Acidobacteria
t648276601      Acidobacteria
t649633002      Acidobacteria
t649633100      Acidobacteria
t637000001      Acidobacteria
t639633060      Acidobacteria
t644736322      Actinobacteria
t639633001      Actinobacteria
t643886017      Actinobacteria
...

四、ggtree畫樹狀圖:長方型扔傅、加對齊線

關鍵參數(shù):
%<+% map # 引入注釋文件
layout="rectangular" # 長方型樹狀圖
align=TRUE # 添加對齊虛線
col=Phylum # 以Phylum給虛線著色
legend.position="bottom" # legend至于底部
legend.box="horizontal" # legend水平放置

library(ggplot2)
library(ggtree)
tree=read.tree("all.tree.int.nwk")
data=fortify(tree)
map=read.table("mapping.txt", header=T, sep="\t")

# 長方形(線型)
gra=ggtree(tree, layout="rectangular", size=0.1) %<+% map +
# 樹型耍共、線粗細、末端顏色 + 注釋信息
geom_tiplab(aes(label=NA, col=Phylum), hjust=-0.5, align=TRUE, linesize=0.1)+
# 注釋猎塞、顏色试读、高度、對其荠耽、虛點大小
theme(legend.title=element_text(face="bold"), legend.position="bottom", legend.box="horizontal", legend.text=element_text(size=rel(0.5)))+
# 圖例位置钩骇、文字大小
xlim(NA, max(data$x)*1.3)

pdf("tree_rectangular_line.pdf")
gra
dev.off()

打開繪圖結果tree_rectangular_line.pdf,如下:

圖片.png

五铝量、ggtree畫樹狀圖:長方型倘屹、末端著色

關鍵參數(shù):
ggtree(aes(col=Phylum)) # 末端“枝”顏色
geom_tippoint(aes(color=Phylum)) # 末端“點”顏色

gra=ggtree(tree, aes(col=Phylum), layout="rectangular", size=0.1) %<+% map +
# 樹型、線粗細慢叨、末端顏色 + 注釋信息
geom_tippoint(aes(color=Phylum), size=0.1)+
# 端點顏色纽匙、大小
geom_tiplab(aes(label=NA), size=0.8)+
# 注釋
theme(legend.title=element_text(face="bold"), legend.position="bottom", legend.box="horizontal", legend.text=element_text(size=rel(0.5)))+
# 圖例位置、文字大小
xlim(NA, max(data$x)*1.3)

pdf("tree_rectangular_point.pdf")
gra
dev.off()


打開繪圖結果tree_rectangular_point.pdf插爹,如下:

圖片.png

六哄辣、ggtree畫樹狀圖:圓型、加對齊線

關鍵參數(shù):
layout="circular" # 畫圓型樹狀圖

# 圓形(線型)
gra=ggtree(tree, layout="circular", size=0.1) %<+% map +
# 樹型赠尾、線粗細力穗、末端顏色 + 注釋信息
geom_tiplab(aes(label=NA, col=Phylum), hjust=2, align=TRUE, linesize=0.1)+
# 注釋、顏色气嫁、高度当窗、對其、虛點大小
theme(legend.title=element_text(face="bold"), legend.position="bottom", legend.box="horizontal", legend.text=element_text(size=rel(0.5)))+
# 圖例位置寸宵、文字大小
xlim(NA, max(data$x)*1.3)

pdf("tree_circular_line.pdf")
gra
dev.off()

打開繪圖結果tree_circular_line.pdf崖面,如下:

圖片.png

七元咙、ggtree畫樹狀圖:圓型、末端著色

關鍵參數(shù);
ggtree(aes(col=Phylum)) # 末端“枝”顏色
geom_tippoint(aes(color=Phylum)) # 末端“點”顏色

gra=ggtree(tree, aes(col=Phylum), layout="circular", size=0.1) %<+% map +
# 樹型巫员、線粗細庶香、末端顏色 + 注釋信息
geom_tippoint(aes(color=Phylum), size=0.1)+
# 端點顏色、大小
geom_tiplab(aes(label=NA, col=NA), size=0.8)+
# 注釋简识、注釋的顏色
theme(legend.title=element_text(face="bold"), legend.position="bottom", legend.box="horizontal", legend.text=element_text(size=rel(0.5)))+
# 圖例位置赶掖、文字大小
xlim(NA, max(data$x)*1.3)

pdf("tree_circular_point.pdf")
gra
dev.off()

打開繪圖結果tree_circular_point.pdf,如下:

圖片.png

八七扰、ggtree畫樹狀圖:長方型奢赂、加對齊線、加注釋

1 準備注釋文件

# 制作注釋文件
cd /home/cheng/huty/softwares/phylophlan/data
cat ppafull.tax.txt | sed 's/.p__/\t/g' | sed 's/.c__/\t/g' | sed 's/.g__/\t/g' | awk 'BEGIN{OFS="\t"}{print $1, $3, $5}' > tax.txt

# 繪圖準備
touch tax_bin.txt
echo -e 'id\tPhylum\tSpecies' > tax_bin.txt

cat bin_taxonomy.txt | sed '1d' | sed 's/.p__/\t/' | sed 's/.c__/\t/' | awk '{printf("%s\t%s\tBin\n", $1, $3)}' >> tax_bin.txt
cat /home/cheng/huty/softwares/phylophlan/data/tax.txt >> tax_bin.txt 

2 繪圖

# 繪制insert tree
library(ggplot2)
library(ggtree)
tree=read.tree("wm.insert.tree.int.nwk")
data=fortify(tree)
map=read.table("tax_bin.txt", header=T, sep="\t")

gra=ggtree(tree, layout="rectangular", size=0.1) %<+% map +
# 樹型颈走、線粗細膳灶、末端顏色 + 注釋信息
geom_tiplab(aes(label=Species, col=Phylum), align=TRUE, size=0.18, linesize=0.05)+
# 注釋、顏色立由、高度轧钓、對其、虛點大小
theme(legend.title=element_text(face="bold"), legend.position="bottom", legend.box="horizontal", legend.text=element_text(size=rel(0.5))) +
# 圖例位置拆吆、文字大小
xlim(NA, max(data$x)*1.3)

ggsave(gra, filename="tree_rectangular.pdf", height=48, width=10)

九聋迎、ggtree + gheatmap組合圖

library(ggplot2) # 加載ggplot2
library(ggtree) # 加載ggtree

tree=read.tree(list.files()[grepl("denovo.tree.nwk", list.files())]) # 讀取nwk文件
map=read.table("map.txt", header=T, sep="\t", comment.char="")
data=fortify(tree)

abun = read.table("/home/cheng/client2/wangmeng/X101SC19061144-Z01-J041/Bin_all/Bin_quant/bin_abundance_table.txt", header=T, sep="\t", row.names=1)
abun = abun[, order(colnames(abun), decreasing=F)]

p = ggtree(tree, layout="rectangular", ladderize=FALSE, branch.length="none", size=0.8, aes(color = Phylum)) %<+% map +
# 樹型脂矫、線粗細枣耀、末端顏色 + 注釋信息
geom_tiplab(aes(col=Phylum), align=TRUE, size=2.5) +
# 注釋、顏色庭再、高度捞奕、對其、虛點大小
theme(legend.position = 'none')
ggsave(p, file="bin_pheatmap.pdf", width=8, height=8)
p2 = gheatmap(p, abun, offset = 0.6, width = 0.5, 
             font.size=3, low = "green", high = "red", color = "white", 
             colnames_level = colnames(abun), 
             colnames_angle=90, hjust=.90)

ggsave(p2, file="bin_pheatmap2.pdf", width=14)

參考:
使用Y叔神包ggtree進行基因家族基因進化樹構建
用ggtree來繪制進化樹
在R中繪制進化樹:ggtree學習筆記

\color{green}{????原創(chuàng)文章拄轻,碼字不易颅围,轉載請注明出處????}

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市恨搓,隨后出現(xiàn)的幾起案子院促,更是在濱河造成了極大的恐慌,老刑警劉巖斧抱,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件常拓,死亡現(xiàn)場離奇詭異,居然都是意外死亡辉浦,警方通過查閱死者的電腦和手機弄抬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宪郊,“玉大人掂恕,你說我怎么就攤上這事拖陆。” “怎么了懊亡?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵依啰,是天一觀的道長。 經(jīng)常有香客問我店枣,道長孔飒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任艰争,我火速辦了婚禮坏瞄,結果婚禮上,老公的妹妹穿的比我還像新娘甩卓。我一直安慰自己鸠匀,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布逾柿。 她就那樣靜靜地躺著缀棍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪机错。 梳的紋絲不亂的頭發(fā)上爬范,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音弱匪,去河邊找鬼青瀑。 笑死,一個胖子當著我的面吹牛萧诫,可吹牛的內(nèi)容都是我干的斥难。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼帘饶,長吁一口氣:“原來是場噩夢啊……” “哼哑诊!你這毒婦竟也來了?” 一聲冷哼從身側響起及刻,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤镀裤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缴饭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暑劝,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年茴扁,在試婚紗的時候發(fā)現(xiàn)自己被綠了铃岔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖毁习,靈堂內(nèi)的尸體忽然破棺而出智嚷,到底是詐尸還是另有隱情,我是刑警寧澤纺且,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布盏道,位于F島的核電站,受9級特大地震影響载碌,放射性物質(zhì)發(fā)生泄漏猜嘱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一嫁艇、第九天 我趴在偏房一處隱蔽的房頂上張望朗伶。 院中可真熱鬧,春花似錦步咪、人聲如沸论皆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽点晴。三九已至,卻和暖如春悯周,著一層夾襖步出監(jiān)牢的瞬間粒督,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工禽翼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屠橄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓捐康,卻偏偏與公主長得像仇矾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子解总,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容