我使用Vegan软件包中的simper分析来确定哪个氨基酸是造成不同样品之间蛋白质组成变化的原因。据我所知,discussion,simper()函数使用Bray-Curtis。我需要使用另一个相异性指数,通常是欧几里得。我该如何修改它的功能?谢谢。R素食主义者simper分析:修改距离矩阵
0
A
回答
1
只更改不相似性是微不足道的,但您使用的不相似应该是这样的,以便您按物种添加和分析术语。 平方欧几里德距离是这样的。然而,simper()
带来了各种各样奇怪的技巧,我不能肯定这些技巧对平方欧几里德距离是有效的(我甚至不确定它们对我们使用的布雷 - 柯蒂斯是否有效,但至少它们是一致的与发布的方法)。 NB,我们做了警告反对使用simper
。这是来自帮助页面的摘录 - 我希望你已经读过这个:
'simper'的结果可能很难解释。 方法非常严重地混淆了组间差异和组内变异之间的平均值,并且似乎单独列出了变量物种 而不是独特的物种(Warton et al。2012)。即使你制作的是相互拷贝的组,这个方法也将单独挑出 以外的物种,但这些不是 对不存在的组间差异的贡献,而是 物种丰度内的组内差异。
这就是说,这里是你应该改变从布雷 - 柯蒂斯到平方欧几里得的路线。不过,我建议你不要使用这个功能:
diff --git a/R/simper.R b/R/simper.R
index 35fa189..f60c57f 100644
--- a/R/simper.R
+++ b/R/simper.R
@@ -13,9 +13,8 @@
n.b <- nrow(gb)
for(j in seq_len(n.b)) {
for(k in seq_len(n.a)) {
- mdp <- abs(ga[k, , drop = FALSE] - gb[j, , drop = FALSE])
- mep <- ga[k, , drop = FALSE] + gb[j, , drop = FALSE]
- contrp[(j-1)*n.a+k, ] <- mdp/sum(mep)
+ mdp <- (ga[k,, drop=FALSE] - gb[j,, drop = FALSE])^2
+ contrp[(j-1)*n.a+k, ] <- mdp
}
}
colMeans(contrp)
@@ -53,9 +52,8 @@
contr <- matrix(ncol = P, nrow = n.a * n.b)
for (j in seq_len(n.b)) {
for (k in seq_len(n.a)) {
- md <- abs(group.a[k, , drop = FALSE] - group.b[j, , drop = FALSE])
- me <- group.a[k, , drop = FALSE] + group.b[j, , drop = FALSE]
- contr[(j-1)*n.a+k, ] <- md/sum(me)
+ md <- (group.a[k,,drop=FALSE] - group.b[j,,drop=FALSE])^2
+ contr[(j-1)*n.a+k, ] <- md
}
}
average <- colMeans(contr)
相关问题
- 1. R在素食主义者的大距离矩阵
- 2. 如何可视化素食主义者制作的距离矩阵?
- 3. metaMDS {素食}距离而不是社区矩阵
- 4. 距离矩阵
- 5. google api距离矩阵转换为R
- 6. R中的有符号距离矩阵
- 7. 矩阵,距离,javascript
- 8. 加速R算法来计算Hellinger距离的距离矩阵
- 9. Dist元素的距离矩阵
- 10. python hcluster,距离矩阵和浓缩距离矩阵
- 11. 分层聚类给定距离矩阵
- 12. R素食主义者CCA,确定哪些限制是别名?
- 13. 素食主义者包装点颜色
- 14. 分析从Google距离矩阵API发送的Json响应
- 15. 创建距离矩阵?
- 16. Google距离矩阵问题
- 17. 可视化距离矩阵
- 18. 谷歌距离矩阵API
- 19. 手动从数据帧中构建SIMPER对比度矩阵R
- 20. 原地修改R中的矩阵
- 21. 求解矩阵,其距离其他矩阵的距离是已知的
- 22. 在Matlab中修改矩阵元素
- 23. R:基于元素的矩阵分区
- 24. 计算稀疏成对距离矩阵R
- 25. R - 来自两个独立数据帧的距离矩阵
- 26. 如何绘制R中的两个下三角距离矩阵?
- 27. 如何在R中导入聚类的距离矩阵
- 28. 使用R从距离矩阵中提取对角线
- 29. 如何用R来计算Tanimoto/Jacquard Score作为距离矩阵
- 30. R:超出Google距离矩阵API请求速率限制
谢谢@Jari。事实上,我读到了有关使用SIMPER分析的限制。在我的情况下,我使用simper()作为adonis permanova的事后检验来估计每种氨基酸对样品间蛋白质组成变化的贡献。到目前为止,除了对每种氨基酸进行简单的ANOVA之外,我没有找到一种比较好的替代方法。但是这并不能回答同样的问题。你可能有其他建议吗? – Pierrick