【问题标题】:How to plot rarefaction curves in R using Vegan?如何使用 Vegan 在 R 中绘制稀疏曲线?
【发布时间】:2021-06-06 20:00:16
【问题描述】:

我有一个数据集,其中包含在不同参考基因组中识别的基因。因此,参考基因组在行中,基因在表的列中。该表被编码为二进制,其中0 表示基因不存在,1 表示基因存在。我做了基因积累曲线,这表明每个基因组的基因数量正在接近一个平台期。现在,我正在尝试使用 R-package vegan 绘制稀疏曲线。我使用了以下代码:

b<-read.csv("data.csv", header = T, check.names = F)
S <- specnumber(b) # observed number of species
(raremax <- min(rowSums(b)))
Srare <- rarefy(b, raremax)
plot(Srare, xlab = "Observed No. of genes", ylab = "Rarefied No. of genes")
abline(0, 1)
rarecurve(b, step = 15, sample = raremax, col = "blue", cex = 0.6)

数据集如下:

          gene1 gene2 gene3
#genome1    0     1     0
#genome2    1     0     1
#genome3    1     0     1

但是,使用此代码我没有得到任何令人满意的输出。我只得到一条通过对角线的直线。我附上了下面的输出。

有人可以建议我如何更正输出吗?

谢谢。

【问题讨论】:

  • 能否在您的帖子中添加您的数据集示例,如果我们不知道您的数据,无法为您提供帮助,因此我们无法重现您的问题。太大请加dput(b)dput(head(b))

标签: r curve vegan


【解决方案1】:

rarefy 函数对数据的各个行进行稀薄:它对每行中出现的事件(“个人”)进行子样本。如果所有这些抽样个体的值都是 1,那么您将有一个子样本,而一个子样本的总和就是样本量:这就是您得到的。稀疏向量没有有意义的方法:您需要一些计数 > 1 的计数数据。

在对矩阵的进行二次抽样时,您可能正在寻找整个数据集中的基因积累。这是在vegan函数specaccum(参数method = "exact")中完成的,它有自己的plot等方法。

【讨论】:

  • 好的。谢谢你的回答。现在,它消除了混乱。将来会有所帮助。我刚刚和我的老板聊天,我想我不需要稀疏曲线。
猜你喜欢
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 2021-07-05
相关资源
最近更新 更多