使用BAMM估算分化速率

BAMM(Bayesian Analysis of Macroevolutionary Mixtures)是一種根據(jù)系統(tǒng)發(fā)生樹對物種形成宫莱、滅絕和性狀進化的復雜動力學建模的程序丈攒。

官網(wǎng):http://bamm-project.org/
BAMM下載頁面:http://bamm-project.org/download.html
說明書鏈接:http://bamm-project.org/quickstart.html#incomplete-taxon-sampling

win版本下載后只包含了.exe和.dll,需要放置在同一目錄下使用授霸。為了學習需要示例數(shù)據(jù)巡验,下載源文件或僅下載文件列表里的example。https://github.com/macroevolution/bamm
首先將以下文件放在同一目錄下:
1.分子鐘估算后帶時間標記的系統(tǒng)發(fā)生樹
2.control文件(參數(shù)設(shè)置)
3.BAMM程序
在使用前用R的ape包檢查樹是否符合分析條件

library(ape)
v <- read.tree("myPhylogeny.tre")
is.ultrametric(v)
is.binary.tree(v)
# Now to check min branch length:
min(v$edge.length) 

樹的枝長以百萬年為單位

然后是control文件碘耳,類似于一個腳本显设,里面是對參數(shù)的設(shè)置,在example文件夾里有diversification和 trait辛辨,在diversification里找divcontrol.txt文件捕捂,打開可以看到里面的參數(shù)設(shè)定,每行都有注釋解說斗搞。默認的設(shè)定對大多是百萬年級別的樹有用绞蹦,根據(jù)情況需要調(diào)整來獲取理想結(jié)果。先復制一份到BAMM所在目錄下榜旦,這里也放出來看看幽七,主要需要修改的是前面幾個。

# BAMM configuration file for speciation/extinction analysis
# ==========================================================
#
# Format
# ------
#
#     - Each option is specified as: option_name = option_value
#     - Comments start with # and go to the end of the line
#     - True is specified with "1" and False with "0"


################################################################################
# GENERAL SETUP AND DATA INPUT
################################################################################

#設(shè)置模式
modeltype = speciationextinction
# Specify "speciationextinction" or "trait" analysis

#系統(tǒng)發(fā)生樹文件名稱(樹文件要跟BAMM運行程序放在一個文件路徑里)
treefile = whaletree.tre
# File name of the phylogenetic tree to be analyzed

#輸出文件的名稱
runInfoFilename = run_info.txt
# File name to output general information about this run

sampleFromPriorOnly = 0
# Whether to perform analysis sampling from prior only (no likelihoods computed)

#后略 

其中溅呢,先驗概率模塊可以用R的BAMMtools包自動生成

library(BAMMtools)
tr <- read.tree("treePathway")
setBAMMpriors(tr) 

運行后會生成一個叫做 myPriors.txt 的文本問件在工作目錄下澡屡,內(nèi)容如下圖【輸入getwd()查詢R目前的工作路徑】

1689839234(1).png

將這些數(shù)據(jù)替換掉控制文件中相對應(yīng)的數(shù)據(jù)

需要注意的是猿挚,這個生成的數(shù)據(jù)是一套對多個數(shù)據(jù)有效的設(shè)定根據(jù)樹的時間枝長尺度進行縮放的結(jié)果,并不一定適用于所有數(shù)據(jù)驶鹉。作者對于先驗概率對數(shù)據(jù)的影響有較大篇幅的解說绩蜻,看了一遍啥都沒看懂,數(shù)學能力強的可以進一步了解室埋。

將myPriors.txt 里的內(nèi)容復制办绝,替換control文件里的 # PRIORS 部分,檢查一下后最好重命名一下control文件姚淆,如命名為 ‘ testcontrol ’孕蝉。

這里用BioGeobears包里的Psychotria_5.2.newick樹文件從頭試一遍。

樹文件放在BAMM所在目錄下腌逢,將工作目錄轉(zhuǎn)過來比較方便降淮。

打開Rstudio,輸入

library(BAMMtools)
wd <- "C:\\BAMM所在路徑\\BAMM"
setwd(wd)
tr <- read.tree("Psychotria_5.2.newick")
setBAMMpriors(tr) 

得到myPriors.txt 內(nèi)容如下搏讶,復制替換control文件佳鳖,開頭的樹文件名稱更改,保存關(guān)閉后重命名為 testcontrol.txt

(2023.3.3補:我看到有的文章先驗設(shè)置了多個媒惕,1系吩、2、3妒蔚、4淑玫、5、10面睛,都跑了一遍絮蒿,結(jié)果一致。在不太好解釋的情況下這樣設(shè)置可能是比較好的選擇叁鉴,就怕不同的先驗算出不同后驗結(jié)果)

###############################################

# Prior block chosen by BAMMtools::setBAMMpriors

expectedNumberOfShifts = 1.0

lambdaInitPrior = 0.461956997597441

lambdaShiftPrior = 0.221402412787889

muInitPrior = 0.461956997597441

#### End Prior block
###################### 

打開win系統(tǒng)的命令提示符(不是那個bamm.exe, 是從電腦開始菜單里找的CMD)


圖片.png

從cmd去調(diào)用bamm.exe土涝,不是直接點開用的,直接點只會閃一下指令框

cd "C:\\BAMM所在路徑\\BAMM"
bamm -c testcontrol.txt 

再回到Rstudio里實行可視化

evdata <- getEventData(tr, eventdata = "event_data.txt",burnin = 0.1)
plot(eventdata,method='polar',lwd=3,pal='RdYlGn') 

incompsampling模式

如果是采樣不充分的系統(tǒng)樹幌墓,可以使用incompsampling模式但壮,說明書鏈接為:http://bamm-project.org/advanced.html#incompsampling

對于較少不完整的系統(tǒng)發(fā)育:不完整的分類單元抽樣可能會對系統(tǒng)發(fā)育樹的物種形成和滅絕分析產(chǎn)生偏差。如果您有一個不完全采樣的樹(例如常侣,您的目標分類群的總現(xiàn)存物種豐富度的某些分數(shù) < 1)蜡饵,您可以輕松指定此采樣分數(shù)以在物種缺失的假設(shè)下生成對物種形成和滅絕的無偏估計隨機從樹上。在您的控制文件中胳施,您可以通過設(shè)置參數(shù)來指定已采樣物種的百分比globalSamplingFraction溯祸。具體來說,您應(yīng)該在控制文件中進行以下設(shè)置:

useGlobalSamplingProbability =  1
globalSamplingFraction = XYZ

其中 XYZ 是進化枝中包含在系統(tǒng)發(fā)育中的總分類群的百分比(例如,如果你的進化枝有 100 個物種而你的樹有 73 個焦辅,你應(yīng)該設(shè)置)博杖。XYZ = 0.73

但是如果你的物種不是隨機抽樣的呢?BAMM 允許您將多個級別的此類非隨機性合并到您的分析中筷登√旮考慮以下示例。假設(shè)您希望對由兩個屬組成的進化枝執(zhí)行多樣化分析:fu和bar前方。在 fu分支中狈醉,您對某些物種 A 和 B 進行了采樣,但另外 8 個物種仍未采樣惠险。在第二個屬欄中苗傅,您對物種 C、D莺匠、E 和 F 進行了采樣金吗,并且僅缺少一個物種十兢。您可以得出結(jié)論趣竣,您在fu中有 0.2 (2 / 10) 個物種,在bar中有 0.8 個物種(4 / 5)旱物。此外遥缕,由于這些是您的焦點樹中僅有的兩個屬,您知道系統(tǒng)發(fā)育的骨干具有 1.0 的采樣概率(因為進化枝中沒有包含 fu 和 bar 的其他屬)宵呛。我們可以如下在這棵樹上“繪制”相關(guān)的采樣分數(shù)单匣,分別使用紅色、藍色和黑色作為 fu 宝穗、 bar和backbone 采樣分數(shù)户秤。


圖片.png

我們可以直接解釋 BAMM 中這種類型的不完整抽樣。我們需要做兩件事逮矛。首先鸡号,我們告訴 BAMM 我們不會使用單一的全局抽樣概率,而是指定進化枝或物種特定的抽樣概率须鼎。在控制文件中鲸伴,您設(shè)置. 然后,您必須指定一個文件名晋控,該文件名使用參數(shù)給出相關(guān)的采樣分數(shù)汞窗。這個文件的格式有點奇特。在文件的第一行赡译,您給出主干采樣概率(此處示例中為 1.0)仲吏。useGlobalSamplingProbability = 0sampleProbsFilename

現(xiàn)在,您為系統(tǒng)發(fā)育中的每個樣本物種添加一條單獨的線(本例中為 A、B蜘矢、C狂男、D、E品腹、F)岖食。每行包含以下內(nèi)容,中間用tab符合隔開(不能用空格):

speciesName     cladeName       samplingFraction

對于物種 A舞吭,相關(guān)行將如下所示:

A       fu      0.2

所有物種的完整文件如下所示:

1.0
A       fu      0.2
B       fu      0.2
C       bar     0.8
D       bar     0.8
E       bar     0.8
F       bar     0.8

對于許多數(shù)據(jù)集泡垃,這是使用不完整采樣信息的一種簡單方法。假設(shè)您正在為所有雀形目鳥類的多樣化動態(tài)建模羡鸥。如果您擁有鳥類的所有科蔑穴,但這些科中的抽樣不完整,則可以直接合并此抽樣惧浴,前提是您可以合理地假設(shè)單系科存和。

如果主干抽樣分數(shù)不太可能等于 1.0,則指定主干抽樣分數(shù)可能會帶來一些挑戰(zhàn)衷旅。這是一個不等于 1 的示例捐腿。繼續(xù)上面的例子,假設(shè)在我們的焦點進化枝中還有其他幾個總計 7 個物種沒有被采樣柿顶。前提是我們(合理地)確信該屬不屬于我們的屬fu和bar茄袖,這意味著這些譜系必須從系統(tǒng)發(fā)育的骨干(黑色)部分分支出來。一種可能的修正是假設(shè) 2 個采樣的骨干譜系是總共 9 個中的 2 個(包括來自其他屬的 7 個未采樣的分類群)嘁锯,或 0.22宪祥。另一種可能性是將主干分數(shù)設(shè)置為等于整個進化枝的總采樣分數(shù)。本例中家乘,我們從fu和bar中一共采樣了 6 個物種, 共計 15 種蝗羊。另有7種未從其他屬中取樣。您可以將骨干分數(shù)設(shè)置為 6 / (15 + 7) = 0.27仁锯。這些都不是完美的解決方案耀找,但我們認為 - 一般來說 - 如果采樣分類單元的百分比在您的樹中變化很大孝冒,則最好使用進化枝特定的采樣分數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忍坷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子面徽,更是在濱河造成了極大的恐慌腻要,老刑警劉巖复罐,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異雄家,居然都是意外死亡效诅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乱投,“玉大人咽笼,你說我怎么就攤上這事∑蒽牛” “怎么了剑刑?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長双肤。 經(jīng)常有香客問我施掏,道長,這世上最難降的妖魔是什么茅糜? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任七芭,我火速辦了婚禮,結(jié)果婚禮上蔑赘,老公的妹妹穿的比我還像新娘狸驳。我一直安慰自己,他們只是感情好缩赛,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布耙箍。 她就那樣靜靜地躺著,像睡著了一般峦筒。 火紅的嫁衣襯著肌膚如雪究西。 梳的紋絲不亂的頭發(fā)上窗慎,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天物喷,我揣著相機與錄音,去河邊找鬼遮斥。 笑死峦失,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的术吗。 我是一名探鬼主播尉辑,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼较屿!你這毒婦竟也來了隧魄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤隘蝎,失蹤者是張志新(化名)和其女友劉穎购啄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘱么,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡狮含,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片几迄。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔚龙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出映胁,到底是詐尸還是另有隱情木羹,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布解孙,位于F島的核電站汇跨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妆距。R本人自食惡果不足惜穷遂,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娱据。 院中可真熱鬧蚪黑,春花似錦、人聲如沸中剩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽结啼。三九已至掠剑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郊愧,已是汗流浹背朴译。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留属铁,地道東北人眠寿。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像焦蘑,于是被迫代替她去往敵國和親盯拱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

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