首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Vegan绘制R中的稀疏曲线?

如何用Vegan绘制R中的稀疏曲线?
EN

Stack Overflow用户
提问于 2021-06-06 20:00:16
回答 1查看 849关注 0票数 0

我有一个包含不同参考基因组中的基因的数据集。因此,参考基因组在行中,基因在表的列中。该表编码为二进制,其中0表示该基因缺失,而1表示该基因存在。我做了基因积累曲线,这表明每个基因组的基因数接近一个平台。现在,我试图用R包vegan绘制稀薄曲线.我使用了以下密码:

代码语言:javascript
复制
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)

数据集如下所示:

代码语言:javascript
复制
          gene1 gene2 gene3
#genome1    0     1     0
#genome2    1     0     1
#genome3    1     0     1

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

有人能建议我如何纠正输出吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-07 14:05:56

rarefy函数细化数据的各个行:它接受每个行中出现的事件(“个人”)的子样本。如果所有抽样个体的值都是1,那么你就会得到一个子样本,而这些样本的总和就是样本的大小:这就是你得到的。没有任何有意义的方法来重新填充一个向量:您需要计数数据的一些计数> 1。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67863207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档