【问题标题】:How to generate an ordination plot from a distance matrix in R如何从R中的距离矩阵生成排序图
【发布时间】:2017-12-10 07:16:26
【问题描述】:

这里我还有另一个“图形”问题:

我从 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

由于这个距离矩阵来自 PCoA,我想要做的是用 R 在排序图中绘制这些距离。

你知道怎么做吗?

非常感谢

【问题讨论】:

    标签: r matrix distance mothur


    【解决方案1】:

    感谢@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)
    

    希望对某人有所帮助!

    【讨论】:

    • 太棒了!希望你@mafernandez 在你的情节中找到有趣的结果。
    【解决方案2】:

    您拥有带有metaMDS 函数的vegan 库,该函数使用这样的距离矩阵作为输入为每个样本生成坐标。

    让我们调用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 中,您拥有每个样本的坐标。我建议根据感兴趣的因素(例如在生物医学分析中的病例和对照)对个体进行着色。

    【讨论】:

    • 非常感谢。无论如何,我有一个疑问:“metaMDS”不会对我的数据进行额外的距离分析?由于这些数据来自另一个“距离分析”,我唯一需要做的就是获取每个点的坐标(以行名命名)并绘制它们。
    • 它只是为样本找到最佳坐标,例如尽可能保留个体之间给定距离的等级。您可以定义距离,但我已经有了距离矩阵,只需将其定义为distance 参数即可。
    • 您好!非常感谢您对我的问题感兴趣,@R18。我已经尝试过你的代码,但是我直接收到一条消息,告诉我我需要一个“comm”元素来运行 metaMDS;正如我所见,“comm”元素是社区表数据。我还看到可以使用“dist”元素,所以我运行了如下代码:“NMDS
    • comm 应该是您的原始数据;但是正如您在距离矩阵之前计算的那样,这就是第二个选项(我建议的那个)有效的原因。你有一个样本远离其他样本。让我猜猜它的名字。 . . Mock?只看距离矩阵,你就可以看出它与其他距离值较高的个体相距甚远。
    • 非常感谢。正如您所意识到的,“模拟”社区确实与其他社区不同。我试图在没有“模拟”行的文件上运行命令,并且情节非常丰富。我现在将使用我最终用来执行此操作的代码发布答案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2014-04-15
    • 2020-02-17
    相关资源
    最近更新 更多