前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >群落构建几个问题

群落构建几个问题

作者头像
Listenlii-生物信息知识分享
发布2023-12-26 11:20:31
2670
发布2023-12-26 11:20:31
举报

yu今日冬至,别忘了吃饺子~

最近被问了几个群落构建相关的问题,记录一下。

1. 树太大导致计算系统发育距离错误

现如今分析扩增子,数据量普遍是越来越大了,相应的系统发育树也在茁壮成长。 用ape包计算cophenetic距离时会报错树太大:

代码语言:javascript
复制
Tree too big

ape计算的时候所需要的空间至少为8*(n+m)^2 bytes,其中n和m分别是tip和node数。当你有一颗包含了几万个OTU的树,所需要的内存相当大,个人电脑、甚至一些小型的服务器都无法满足计算要求。 这时候如果还要计算cophenetic距离,要么换更高性能的服务器,要么可两两节点之间计算,参考:https://github.com/emmanuelparadis/ape/issues/64 这种方法计算个别OTU之间的距离是可行的,但是如果计算所有OTU两两的距离,其实也没啥用。代码繁琐,需要的时间也等不起。

2. 分组导致了群落构建结果与不分组不同

接上条,如果你的树太大而无法计算,通常的做法是按照实验的分组把OTU和树也拆成几组,分别去算群落构建。这样是可以算出来的,但是,OTU分组计算得到的群落构建结果和总的OTU会不同!!! 原因是分组之后,很多OTU在小表中全部为0,我们后续分析之前一般会把全是0的OTU删掉。这样再算MPD和NRI;以及MNTD和NTI的时候,不管是样本间的平均系统发育距离或者最小系统发育距离都有可能会变化。导致最终结果不同。

3. 数值太大导致群落构建报错

本来是一个普普通通的NST计算群落构建,结果却出现了报错:

代码语言:javascript
复制
> tnst <- tNST(comm = comm, group = group,
+              rand = 100, nworker = 1) 
All match very well.
Now randomizing i=1. Fri Dec 22 14:56:02 2023
Error in sample.int(length(x), size, replace, prob) : 
  invalid 'size' argument
In addition: Warning message:
In sample.int(length(x), size, replace, prob) :
  NAs introduced by coercion to integer range

OTU和分组文件本身都没有问题,OTU表的数值也都是整数。正在百思不得其解为什么会是代码内置的sample函数出错的时候,突然意识到报错的最后一句话大有深意:在转化成整数的范围时产生了NA,于是又看了一下数据:OTU表除了0就是9-11位的大数...

怪不得会报错,超出最大数值上限了,被转化为了NA。 咱也不知道为啥会用这么大的数去跑NST,不过今后跑之前记得检查数值范围。

点分享

点点赞

点在看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Listenlii 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 树太大导致计算系统发育距离错误
  • 2. 分组导致了群落构建结果与不分组不同
  • 3. 数值太大导致群落构建报错
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档