2017-07-06 104 views
0

這裏我有另一個「的圖形」的問題:如何生成從距離矩陣中的R的排序圖

我從MOTHUR獲得以下距離矩陣(從加權unifrac分析未來):

20 
F3D0  
F3D1  0.222664 
F3D141  0.157368 0.293308 
F3D142  0.180278 0.319198 0.0944511 
F3D143  0.157659 0.290975 0.0545202 0.0761392 
F3D144  0.199909 0.34045 0.104358 0.086418 0.089473 
F3D145  0.207946 0.348532 0.107841 0.076302 0.0940067 0.051632 
F3D146  0.117877 0.253996 0.0891617 0.130867 0.0882064 0.134407 0.138415 
F3D147  0.197256 0.336583 0.102114 0.0764106 0.0890669 0.0514887 0.0479297 0.135324 
F3D148  0.173824 0.311951 0.0606815 0.0648557 0.056463 0.074914 0.0811015 0.111996 0.0709027 
F3D149  0.145614 0.276632 0.0462779 0.105512 0.0628737 0.10902 0.114584 0.0739466 0.107123 0.0690412 
F3D150  0.129557 0.277624 0.0840909 0.128305 0.0863231 0.140256 0.145381 0.0744572 0.13672 0.113564 0.0659831 
F3D2  0.133531 0.216587 0.160832 0.186833 0.176061 0.214934 0.215261 0.152591 0.205629 0.188325 0.156313 0.153841 
F3D3  0.213102 0.305651 0.123818 0.113021 0.139376 0.148558 0.13853 0.174377 0.139851 0.126329 0.131294 0.166738 0.137784 
F3D5  0.128668 0.185235 0.167733 0.205183 0.176585 0.224806 0.230984 0.14497 0.223492 0.18933 0.153624 0.148617 0.127574 0.192433 
F3D6  0.139411 0.236633 0.135418 0.124848 0.134198 0.175098 0.166205 0.118905 0.166144 0.151842 0.120964 0.12724 0.0950943 0.119852 0.129523 
F3D7  0.198884 0.315888 0.130385 0.0989168 0.131945 0.14625 0.126203 0.173689 0.128993 0.121373 0.140199 0.152123 0.152893 0.0906675 0.186674 0.111134 
F3D8  0.178656 0.18783 0.205737 0.22104 0.219858 0.268701 0.2644 0.184943 0.268051 0.229503 0.1979 0.20035 0.164427 0.203089 0.119084 0.142398 0.185551 
F3D9  0.153265 0.186706 0.196143 0.21504 0.20728 0.262127 0.255558 0.174563 0.2607 0.221969 0.192437 0.185154 0.13976 0.195538 0.0973901 0.127619 0.177605 0.0558726 
Mock  0.653789 0.645344 0.633297 0.623553 0.633903 0.633135 0.63394 0.635815 0.645332 0.636453 0.629143 0.646918 0.663222 0.639517 0.649722 0.64073 0.654882 0.63988 0.646155 

由於這個距離矩陣來自後交通動脈,是我想要做的是繪製在排序圖這些距離與R.

如何這樣做的任何想法?

非常感謝

回答

0

您有veganmetaMDS函數使用這樣的距離矩陣作爲輸入每個樣品產生的座標。

我們叫M你的矩陣,你需要運行該代碼:

# Load the library 
     library(vegan) 
    # Use metaMDS function for 2D - plot 
     NMDS <- metaMDS(distance = M, k = 2) 
    # Plot your individuals 
     plot(NMDS$points[,1], NMDS$points[,2]) 

NMDS$points你對每個樣品的座標。我建議根據感興趣的因素着色個體,例如病例和對照,例如在生物醫學分析中。

+0

非常感謝。無論如何,我有一個疑問:'metaMDS'不會對我的數據執行額外的距離分析?由於這些數據來自另一個「距離分析」,我需要做的唯一事情就是獲取每個點的座標(以行名稱命名)並繪製它們。 – mafernandez

+0

它只是找到樣本的最佳座標,例如個體之間給定距離的等級儘可能保存。你可以定義距離,但是我已經有了距離矩陣,只需將其定義爲距離參數即可。 – R18

+0

再次嗨!非常感謝您對我的問題感興趣,@ R18。我試過了你的代碼,但是直接使用它,我收到一條消息,告訴我需要'comm'元素來運行metaMDS;正如我所見,'comm'元素是社區表數據。我也看到可以使用'dist'元素,所以我運行了如下代碼:「NMDS < - metaMDS(M,distance = M,k = 2)」並且它工作正常。然而,結果非常奇怪,除了一個點之外的所有點都處於幾乎相同的位置。這個試驗有什麼問題嗎? – mafernandez

0

感謝@ R18,最後我可以解決這個問題。

對於我上傳的距離表,我到達瞭解決方法是使用下面的代碼:

library(phyloseq) 
library(vegan) 
M <- import_mothur_dist("pcoa_UFdistance_matrix.dist") 
unifrac <- metaMDS(M, distance = M, k = 2, trymax=100) 
plot(unifrac$points[,1], unifrac$points[,2], main="Principal Coordinates Analysis", col.main="red", font.main=4, xlab="PCoA 1", ylab="PCoA 2") 
text(unifrac, pos=3) 

希望這將幫助別人!

+0

太棒了!希望你@mafernandez能夠在你的情節中找到有趣的結果。 – R18