生信學(xué)習(xí)筆記:使用SNP data做基因滲入分析 (4)

繼續(xù)上一周的內(nèi)容,上次講到了如何使用--tree Dsuite的功能。要使用--treeDsuite的功能,我們顯然需要一個(gè)樹文件。一般樹文件可以通過SNP數(shù)據(jù)畫取進(jìn)化樹來獲得,這里就不詳細(xì)講解這方面內(nèi)容,留著以后再回顧。

直接給出樹文件snapp.as_newick.tre現(xiàn)在應(yīng)該具有以下內(nèi)容,其中分支長(zhǎng)度由冒號(hào)后面的數(shù)字編碼:

 ((altfas:2.594278046475669,((((((neobri:0.4315861683285048,(neooli:0.3619356529967183,neopul:0.3619356529967182):0.06965051533178657):0.12487340944557368,(neogra:0.5002021127811682,neohel:0.5002021127811681):0.05625746499291029):0.046536377715870936,(neocra:0.3843764668581544,neomar:0.3843764668581544):0.21861948863179498):0.13696107245777023,neosav:0.7399570279477196):0.3048349276159825,telvit:1.044791955563702):0.06307730474269935,(neochi:0.1368491602607037,neowal:0.1368491602607037):0.9710201000456977):1.4864087861692676):3.570689300019641,astbur:6.16496734649531);

由于這里給出的樹不包括Neolamprologus cancellatus,我們需要手動(dòng)將此物種添加到樹中。要將Neolamprologus cancellatus(“neocan”)添加到樹中,我們需要決定放置它的位置。也許最好的方法是進(jìn)行單獨(dú)的系統(tǒng)發(fā)育分析,但正如我們后面將要看到的,無論如何,Neolamprologus cancellatus(“neocan”)在物種樹中沒有單一的真實(shí)位置。因此,現(xiàn)在使用來自文件的共享派生位點(diǎn)的計(jì)數(shù)samples__BBAA.txt作為最佳放置物種的指標(biāo)就足夠了。因此,我們需要找到neocan與任何其他物種共享的最大衍生位點(diǎn)的數(shù)量。為此,我們可以使用以下命令:

cat samples__combine.txt | grep neocan | sort -n -k 4 -r | head -n 1
  cat samples__combine.txt | grep neocan | sort -n -k 5 -r | head -n 1
  cat samples__combine.txt | grep neocan | sort -n -k 6 -r | head -n 1

這應(yīng)該產(chǎn)生以下幾行:

altfas  neocan  neooli  14834.4 1408.33 4274.5
  altfas    neobri  neocan  1378.2  13479.6 4066.95
  neocan    neochi  neowal  801.883 754.94  12863.7

所有這些行中最大的數(shù)字是14834.4。由于這個(gè)數(shù)字在第四列中找到,這代表著BBAA位點(diǎn)的數(shù)量(C-BBAA),因此指定了該行中前兩個(gè)物種共享的派生位點(diǎn)數(shù)量,“altfas”和“neocan”。這意味著“neocan”似乎與“altfas”的關(guān)系比與數(shù)據(jù)集中的其他物種關(guān)系更密切。

要將“neocan”插入樹文件作為“altfas”的姐妹物種,將“altfas”替換為“(altfas:1.0,neocan:1.0)”,包括括號(hào)。這可以使用文本編輯器完成,或者在命令行上使用以下命令完成,將修改后的樹字符串保存在名為的新文件中snapp.complete.tre:

cat snapp.as_newick.tre | sed "s/altfas/(altfas:1.0,neocan:1.0)/g" > snapp.complete.tre

現(xiàn)在樹文件應(yīng)該包含以下信息:

(((altfas:1.0,neocan:1.0):2.594278046475669,((((((neobri:0.4315861683285048,(neooli:0.3619356529967183,neopul:0.3619356529967182):0.06965051533178657):0.12487340944557368,(neogra:0.5002021127811682,neohel:0.5002021127811681):0.05625746499291029):0.046536377715870936,(neocra:0.3843764668581544,neomar:0.3843764668581544):0.21861948863179498):0.13696107245777023,neosav:0.7399570279477196):0.3048349276159825,telvit:1.044791955563702):0.06307730474269935,(neochi:0.1368491602607037,neowal:0.1368491602607037):0.9710201000456977):1.4864087861692676):3.570689300019641,astbur:6.16496734649531);

再次運(yùn)行Dsuite,這次添加-t(或--tree)選項(xiàng)以指定新準(zhǔn)備的樹文件snapp.complete.tre:

Dsuite Dtrios -t snapp.complete.tre NC_031969.f5.sub1.vcf.gz samples.txt

Dsuite應(yīng)該在幾分鐘內(nèi)再次完成分析。輸出應(yīng)該與先前寫入的輸出相同,除了多了一個(gè)名為samples__tree.txt的文件。

為了進(jìn)一步探索基于給定三個(gè)物種不同排列的規(guī)則的輸出文件之間的差異,找到每個(gè)文件中報(bào)告的最高D-統(tǒng)計(jì)數(shù)據(jù)samples__Dmin.txt),samples__BBAA.txt)和samples__tree.txt )。一種方法是執(zhí)行以下三個(gè)命令:

cat samples__Dmin.txt | tail -n +2 | sort -n -k 4 -r | cut -f 4 | head -n 1
  cat samples__BBAA.txt | tail -n +2 | sort -n -k 4 -r | cut -f 4 | head -n 1
  cat samples__tree.txt | tail -n +2 | sort -n -k 4 -r | cut -f 4 | head -n 1

文件中報(bào)告的最高D -statistic samples__Dmin.txt(0.504355)小于其他兩個(gè)文件中的D -statistic (在兩種情況下均為0.778765)。這并不奇怪,因?yàn)槿缟纤?,D min值是給定三個(gè)物種中漸滲的保守度量。

使用以下命令找到這些極端D-statistics 的所對(duì)應(yīng)給出的三個(gè)物種:

 cat samples__Dmin.txt | tail -n +2 | sort -n -k 4 -r | head -n 1
  cat samples__BBAA.txt | tail -n +2 | sort -n -k 4 -r | head -n 1
  cat samples__tree.txt | tail -n +2 | sort -n -k 4 -r | head -n 1

你會(huì)看到最高D -statistic為0.778765,其中對(duì)應(yīng)的P1 =“altfas”,P2 =“neocan”,P3 =“telvit”。

使用以下命令從文件中查找此給定三個(gè)物種的共享站點(diǎn)的計(jì)數(shù):

cat samples__combine.txt | grep altfas | grep neocan | grep telvit

你應(yīng)該看到C-BBAA = 12909.6(在第四列中),C-BABA = 893.302(在第五列中),并且C-ABBA = 7182.28(在第六列中)。因此,“altfas”和“neocan”共享12909.6派生位點(diǎn),“neocan”和“telvit”共享7182.28派生位點(diǎn),但“altfas”和“telvit”僅分享893.302派生位點(diǎn)。

因此,D -statistic =(7182.28 - 893.302)/(7182.28 + 893.302)= 0.778765 ,和上面計(jì)算的一樣。

為了更好地概述D -statistics 支持的漸滲模式,我們將以熱圖的形式繪制這些模型,其中位置P2和P3中的物種在水平軸和垂直軸上排序,以及相應(yīng)熱圖的顏色細(xì)胞表示在這兩個(gè)物種中發(fā)現(xiàn)的最顯著的D-統(tǒng)計(jì)學(xué),在P1中的所有可能的物種中。然而,為了準(zhǔn)備這個(gè)圖,我們首先需要準(zhǔn)備一個(gè)文件,列出沿?zé)釄D軸列出P2和P3物種的順序。根據(jù)我們使用的樹文件(snapp.complete.tre),對(duì)物種進(jìn)行排序是有意義的。因此,將以下列表寫入名為的新文件species_order.txt:

  altfas
  neocan
  neochi
  neowal
  telvit
  neosav
  neocra
  neomar
  neogra
  neohel
  neobri
  neooli
  neopul

請(qǐng)注意,即使outgroup“astbur”包含在樹文件中,我們也會(huì)將其排除在外,因?yàn)樗贒suite分析中從未放置在P2或P3的位置。

要繪制熱圖,請(qǐng)使用Ruby腳本plot_d.rb,指定Dsuite的輸出文件之一,文件species_order.txt,繪制的最大D值以及輸出文件的名稱作為命令行選項(xiàng)。以samples__Dmin.txt文件作為輸入啟動(dòng)腳本,最大D為0.7,并將輸出命名為samples__Dmin.svg:

ruby plot_d.rb samples__Dmin.txt species_order.txt 0.7 samples__Dmin.svg

文件中的熱圖繪制samples__Dmin.svg是可縮放矢量圖形(SVG)格式。使用能夠以SVG格式讀取文件的程序打開此文件,例如使用Firefox或Adobe Illustrator等瀏覽器。熱圖圖如下圖所示:

正如你可以從右下角的顏色圖例中看到的那樣,這個(gè)熱圖的顏色同時(shí)顯示了兩個(gè)東西,D -statistic以及它的p值。因此,紅色表示較高的D統(tǒng)計(jì),通常更飽和的顏色表示更重要。因此,用于漸滲的最強(qiáng)信號(hào)用飽和紅色顯示,如顏色圖例的右下角。雖然該圖中沒有一個(gè)細(xì)胞實(shí)際上具有該顏色,但“neocan”的行或列中的幾乎所有細(xì)胞都具有紅色 - 紫色,對(duì)應(yīng)于0.3左右的高度顯著的D-統(tǒng)計(jì)。

在進(jìn)一步解釋熱圖中顯示的漸滲模式之前,我們還將為其他兩個(gè)Dsuite的輸出文件生成熱圖,samples__BBAA.txt并且samples__tree.txt:

ruby plot_d.rb samples__BBAA.txt species_order.txt 0.7 samples__BBAA.svg
  ruby plot_d.rb samples__tree.txt species_order.txt 0.7 samples__tree.svg

兩個(gè)熱圖應(yīng)如下所示(samples__BBAA.svg頂部,samples__tree.svg下方):

正如您所看到的,上述兩個(gè)熱圖總體上比基于D min的第一個(gè)熱圖更飽和,與D min作為漸滲的保守估計(jì)的解釋一致。然而,最顯著的差異在于Telmatochromis vittatus(“telvit”)所示的模式。后兩個(gè)圖中最飽和的紅色是連接“neocan”和“telvit”的細(xì)胞的顏色,相比之下,基于D min的第一個(gè)圖中只有淺藍(lán)色。因此,這些圖支持了Neolamprologus cancellatus(“neocan”)和Telmatochromis vittatus之間發(fā)生漸滲的假設(shè)。( “telvit”)。然而,“neocan”和“telvit”的行和列中的其他紅紫色單元可能只是這種漸滲的副作用。samples__tree.svg例如,在文件的最后一個(gè)熱圖中,紅紫色細(xì)胞可能是由Neolamprologus cancellatus(“neocan”)與其他物種共享的位點(diǎn)引起的,因?yàn)檫@些其他物種與Telmatochromis vittatus(“telvit”)密切相關(guān),是推斷的基因滲入捐贈(zèng)物種。

到目前為止,我們只計(jì)算d -statistics整個(gè)5號(hào)染色體(包括在VCF唯一的染色體),但我們還沒有測(cè)試過是否d t-統(tǒng)計(jì)是均勻或可變的整個(gè)染色體。這些信息對(duì)于確定最近的漸滲是如何發(fā)生有價(jià)值的,因?yàn)轭A(yù)期年齡漸滲事件會(huì)產(chǎn)生比舊的漸滲事件更大規(guī)模的D-統(tǒng)計(jì)變異。該信息還可以幫助識(shí)別個(gè)體獨(dú)特的滲入的基因座。

為了量化基因組中滑動(dòng)窗口的D-統(tǒng)計(jì)量,可以使用Dsuite的Dinvestigate命令,我們將它應(yīng)用于具有最強(qiáng)信號(hào)漸滲信號(hào)的三個(gè)組合,由三種物種Altolamprologus fasciatus(“altfas”),Neolamprologus cancellatus組成。(“neocan”)和Telmatochromis vittatus(“telvit”)。只需輸入以下內(nèi)容,即可查看此命令的可用選項(xiàng):

 Dsuite Dinvestigate

需要的輸入文件有除了VCF輸入文件NC_031969.f5.sub1.vcf.gz和樣本表之外samples.txt,還需要兩條信息。一個(gè)是僅包含來自一個(gè)或多個(gè)三元組的物種名稱的文件,另一個(gè)是應(yīng)該用于滑動(dòng)窗口分析的窗口大?。由洗翱谶f增的步長(zhǎng))。

準(zhǔn)備一個(gè)指定三物種“altfas”,“neocan”和“telvit”的文件,并命名該文件test_trios.txt。這可以使用以下命令在命令行上完成:

 echo -e "altfas\tneocan\ttelvit" > test_trios.txt

我們將使用2,500個(gè)SNP的窗口大小,每次迭代增加500個(gè)SNP。要使用這些設(shè)置啟動(dòng)滑動(dòng)窗口分析,請(qǐng)執(zhí)行以下命令:

Dsuite Dinvestigate -w 2500,500 NC_031969.f5.sub1.vcf.gz samples.txt test_trios.txt 

這分析應(yīng)該只需要幾分鐘。然后Dsuite應(yīng)該輸出一個(gè)名為的文件altfas_neocan_telvit_localFstats__2500_500.txt。

看看該文件:

  less altfas_neocan_telvit_localFstats__2500_500.txt

該文件中的行對(duì)應(yīng)于各個(gè)染色體窗口,文件中包含的六列包含有關(guān)染色體ID以及每個(gè)窗口的起始和結(jié)束位置的信息。接下來是每行上的三個(gè)數(shù)字,它們代表第四列中窗口的D-統(tǒng)計(jì)量,以及另外兩個(gè)統(tǒng)計(jì)數(shù)據(jù)(Fd,F(xiàn)dm),旨在量化受漸滲影響的窗口比例。

使用以下命令查找染色體5被劃分的窗口數(shù):

cat altfas_neocan_telvit_localFstats__2500_500.txt | tail -n +2 | wc -l

這應(yīng)該表明在Dsuite的Dinvestigate分析中使用了509個(gè)窗口,另外該窗口的數(shù)量可以通過指定更大或更小的窗口大小來調(diào)整信息密度-w

為了可視化5號(hào)染色體上D和f d統(tǒng)計(jì)數(shù)據(jù)的變化,使用R作圖:

  table <- read.table("altfas_neocan_telvit_localFstats__2500_500.txt", header=T)
  windowCenter=(table$windowStart+table$windowEnd)/2
  pdf("altfas_neocan_telvit_localFstats__2500_500.pdf", height=7, width=7)
  plot(windowCenter, table$D, type="l", xlab="Position", ylab="D (gray) / fD (black)", ylim=c(0,1), main="Chromosome 5 (altfas, neocan, telvit)", col="gray")
  lines(windowCenter, table$f_d)
  dev.off()

作圖會(huì)生成名為altfas_neocan_telvit_localFstats__2500_500.pdf的文件。

D -statistic(灰色)幾乎在所有窗口中顯著高于f d -statistic(黑色),并且f d -statistic,其估計(jì)混合比例大多接近0.5:并在大約%Mbp的地方有下降的信號(hào),這是否是由參考基因組中缺失的數(shù)據(jù)或錯(cuò)誤組裝導(dǎo)致的假陽性結(jié)果,或者它是否顯示出減少漸滲的生物信號(hào),如果沒有進(jìn)一步的分析,很難說清楚。

重復(fù)這個(gè)分析,但是現(xiàn)在使用不同的三個(gè)物種的組合,“neooli”),N. pulcher(“neopul),和N. brichardi(” neobri“):

 echo -e "neooli\tneopul\tneobri" > test_trios.txt
  Dsuite Dinvestigate -w 2500,500 NC_031969.f5.sub1.vcf.gz samples.txt test_trios.txt

再次進(jìn)行畫圖:

  table <- read.table("neooli_neopul_neobri_localFstats__2500_500.txt", header=T)
  windowCenter=(table$windowStart+table$windowEnd)/2
  pdf("neooli_neopul_neobri_localFstats__2500_500.pdf", height=7, width=7)
  plot(windowCenter, table$D, type="l", xlab="Position", ylab="D (gray) / fD (black)", ylim=c(0,1), main="Chromosome 5 (neooli, neopul, neobri)", col="gray")
  lines(windowCenter, table$f_d)
  dev.off()

產(chǎn)生該圖:


正如你所看到的,D -statistic(黑色)現(xiàn)在顯示更多的變化,甚至在幾個(gè)窗口中變?yōu)樨?fù)數(shù),表明在這些窗口中,neooli與neobri的相似性高于neopul??傮w而言,兩項(xiàng)統(tǒng)計(jì)數(shù)據(jù)都低于第一個(gè)三個(gè)物種的組合。值得注意的是,這里在5Mbp的地方,再次可以看到明顯的下降,由于同一地區(qū)不太可能在兩個(gè)物種不同三組合中具有更多的漸滲,這可能表明這實(shí)際上是由技術(shù)的缺陷導(dǎo)致的而非生物過程引起的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容