2017-07-06 175 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