2

我是系统发育分析的新手,我正在使用该ape库分析来自 28 个不同物种的 34 种灵长类动物的神经解剖学特征。我使用 10ktrees 来获得共识系统发育树(有 28 个提示)。但是,我不能将表型和树结合起来,因为观察的数量与提示的数量不匹配。我应该使用多分法将提示分成多个主题吗?

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

tree <- read.nexus("10ktree.nex")
pheno <- read.csv("pheno.csv")
BrainVolume <- pheno$BrainVolume
names(BrainVolume) <- pheno$GenBank.Name
pic.BrainVolume <- pic(BrainVolume, tree)

我收到以下错误:

Error in pic(BrainVolume, tree) : 
  length of phenotypic and of phylogenetic data do not match

谢谢您的帮助!

4

1 回答 1

0

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

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

grouped<-split(pheno,pheno$GenBank.Name)

接下来,lapply列出BrainVolume表型:

BrainVolume<-lapply(grouped,"[[","BrainVolume")

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

pic.SA<-pic.ortho(SA,tree,intra=TRUE)

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

参考

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

于 2018-05-12T12:18:36.260 回答