2017-08-02 27 views
0

我的問題的簡化版本:如何通過採樣點來繪製稀疏地塊?

我有一個OTU表,其中60個採樣點(每個都有豐富的各種OTU)跨越三個站點:A,B和C.每個站點有20個採樣。

我想繪製每個站點的稀疏曲線:A,B和C.我想看看站點平臺的曲線是否檢查每個站點是否有足夠的序列。

目前,我這樣做:

raremax <- min(rowSums(otu.table)) 
rarecurve(otu.table, sample = raremax) 

目前每一個採樣點被繪製成單個curves-這不是我want-我想繪製每個採樣點的整體曲線。

+0

你的意思是個體採樣單位稀疏度的平均值,還是採樣單位的稀釋度?這些不同。 (此評論包含提示如何實現這些結果。) –

+0

說實話,我不確定 - 但我會冒險猜測這是第二種選擇;我需要估計每個地點的測序樣本量是否足以覆蓋所有的OTU,從而準確估計物種豐富度。謝謝! –

回答

0

對於第二個選項,您必須按網站對物種數進行求和。這將忽略各地點之間採樣單位之間的所有差異(有些人稱之爲貝塔多樣性),並將採樣單位視爲簡單重複。如果你想發佈你的結果,你可能需要證明你對審稿人的方法合理。

隨着標準R你可以使用aggregate得到的總和。下面的示例使用素食主義者數據集mitemite.env

rarecurve(aggregate(mite, list(mite.env$Shrub), sum)[,-1]) 

aggregate將增加一列,你必須刪除,你不會有曲線的標籤。多一點點纏繞方式給你也是名:

rarecurve(sapply(mite, function(x) sapply(split(x, mite.env$Shrub), sum))) 
rarecurve(t(sapply(split(mite, mite.env$Shrub), colSums))) # alternatively 

對於這個數據必須是data.frame ---矩陣將失敗。