首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我的系统发育树的每一端都有多个个体的数据时,如何分析一个性状?

在我的系统发育树的每一端都有多个个体的数据时,如何分析一个性状?
EN

Stack Overflow用户
提问于 2018-05-12 18:03:23
回答 1查看 59关注 0票数 2

我刚接触系统发育分析,我正在使用ape库分析来自28个不同物种的34个灵长类动物的神经解剖学特征。我使用10ktree获得了一个一致的系统发生树(有28个提示)。然而,我不能将表型和树结合起来,因为观察的数量与提示的数量不匹配。我是否应该使用多段切割法将一个尖端分割成多个主题?

这是我到目前为止的代码:

代码语言:javascript
运行
复制
tree <- read.nexus("10ktree.nex")
pheno <- read.csv("pheno.csv")
BrainVolume <- pheno$BrainVolume
names(BrainVolume) <- pheno$GenBank.Name
pic.BrainVolume <- pic(BrainVolume, tree)

我得到了以下错误:

代码语言:javascript
运行
复制
Error in pic(BrainVolume, tree) : 
  length of phenotypic and of phylogenetic data do not match

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2018-05-12 20:18:36

正如我在评论中所说的,Emmanuel Paradis的书“与R的系统发生和进化分析”第二版(2012)中的第6.1.10章“种内变异”就是关于这个问题的信息。本章讨论了几种方法。这是一个,基于Felsenstein (2008),它将每个物种的单个个体系统发育对比方法扩展到多个个体。

每个物种对pic的单个调用是pic.BrainVolume <- pic(BrainVolume, tree),其中BrainVolume是一个载体。对于多个体方法,BrainVolume必须是一个列表,其中一些条目可以具有表示同一物种的多个个体的值的向量。我使用以下命令创建了原始pheno文件的“分组”版本

代码语言:javascript
运行
复制
grouped<-split(pheno,pheno$GenBank.Name)

接下来,使用lapply列出BrainVolume表型:

代码语言:javascript
运行
复制
BrainVolume<-lapply(grouped,"[[","BrainVolume")

最后,使用实现Felsenstein方法的pic.ortho函数:

代码语言:javascript
运行
复制
pic.SA<-pic.ortho(SA,tree,intra=TRUE)

生成的对比度可以与原始的pic命令一样使用。

参考

Felsenstein J (2008)“具有抽样误差和种内变异的比较方法:重新审视和修订的对比”,美国博物学家171: 713-725

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

https://stackoverflow.com/questions/50305026

复制
相关文章

相似问题

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