欢迎光临散文网 会员登陆 & 注册

Phyloregion mannual(6):PD、PD_ses、phylobeta_core、phylobeta_ses、

2022-07-01 20:55 作者:猫腻需要更多的学习  | 我要投稿

(续):phylobuilder、phyloregion、phylo_endemism

这一篇主要是系统发育多样性及相关的一些计算函数,phylobuilder生成phylo数据反应样本中所有物种的系统发生关系比较重要,endemism相关的理论知识还需要补充

#方便自己回来复习的个人学习记录,仅供参考,如有错误,请多指正 

PD  计算系统发育多样性

是个重头呢,直接看示例:

library(ape)

library(Matrix)

Matrix创建Matrix类型数据

tree <- read.tree(text ="((t1:1,t2:1)N2:1,(t3:1,t4:1)N3:1)N1;")

建了棵树

plot(tree)


com <- sparseMatrix(c(1,3,4,1,4,5,1,2,3,4,5,6,3,4,6),

                                  c(1,1,1,2,2,2,3,3,3,3,3,3,4,4,4),x=1,

                                  dimnames = list(paste0("g", 1:6), tree$tip.label))

创建了一个稀疏矩阵,可以用之前讲解的转换格式转化成稠密矩阵看一下

PD(com, tree)

PD_ses 通过校正物种丰富度的变化来计算PD的标准效应量

用法

PD_ses(x, phy, model = c("tipshuffle", "rowwise", "colwise"), reps = 1000, ...)

x为一个稀疏矩阵,phy对应phylo类数据即系统发育树,model选择抽样模式,reps重复次数。

示例:

tree <- read.tree(text ="((t1:1,t2:1)N2:1,(t3:1,t4:1)N3:1)N1;")

跟上面一样的树

com <- sparseMatrix(c(1,3,4,1,4,5,1,2,3,4,5,6,3,4,6),

                                    c(1,1,1,2,2,2,3,3,3,3,3,3,4,4,4),x=1,

                                    dimnames = list(paste0("g", 1:6), tree$tip.label))

同上

PD_ses(com, tree, model="rowwise")

由于是随机抽样计算,所以每次计算都会有细微差别

phylobeta_core  系统发育β多样性

似乎跟前面的beta_core类似,是个中间步

示例:


tree <- read.tree(text = "((t1:1,t2:1)N2:1,(t3:1,t4:1)N3:1)N1;")

com <- sparseMatrix(c(1,3,4,1,4,5,1,2,3,4,5,6,3,4,6),

        c(1,1,1,2,2,2,3,3,3,3,3,3,4,4,4),x=1,

   dimnames = list(paste0("g", 1:6), tree$tip.label))

com

跟前面一样的树和稀疏矩阵,重点看下面两行

pbc <- phylobeta_core(com, tree)

返回了一个"phylo.betapart"类数据,可被调用,这一点与beta_core对应

pb <- phylobeta(com, tree)

同样是返回了三个列表,与beta_diss 相对应。之后在phylo.beta.pair中应当会有相应的解说。

phylobeta_ses   通过物种β多样性修正系统发育β多样性

用法跟PD_ses类似

示例:

缺乏理论知识,感觉这个结果有点看不太明白,总之是返回了各栅格之间多样性的一个矩阵数据。

phylobuilder  创建物种树信息

根据物种名录建立研究区域内物种的关系树,在物种名录大树中没有确定系统发生关系的物种会尽可能依据科或属放置在大致位置。放在所在属或科的根节点处吧,大概

示例(好长):

从前往后挑着讲解

gsub替换前后

替换前
替换将“\n”替换为空,相当于删除

画一下cats_and_dogs这棵大树

plot(cats_and_dogs, node.depth=2, direction="downwards")
 plot(cats_and_dogs,  direction="downwards")节点深度没设置,看着稍微没上面那个美观

nodelabels加个标签


nodelabels(cats_and_dogs$node.label, frame="none", adj = c(0.5, 0))

drop.tip删除了两个物种

("Panthera_uncia", "Lycaon_pictus")这两冇了

 t1 <- phylobuilder(dogs, tree)提取上面这棵树中dog里所包含的物种,dog有树里没有的不管

可以看到

("Panthera_uncia", "Lycaon_pictus")这两冇了

t1 <- phylobuilder(dogs, tree)将tree中dogs里物种的系统发育信息提取出来,但dogs里有但树里没有的物种没有处理用attr(t1, "species_list")看也可以发现这个物种信息缺失了。


t2 <- phylobuilder(sp, tree, extract=FALSE),extract默认为TRUE,结果就像上面一样,会只添加tree中有的信息,当为FALSE时,功能变为将列表中的物种根据描述信息添加到tree上。


物种根据科属信息加在了类群的根部,也就是最近共同祖先处。

经过上面的先截取列表物种关系,再添加缺失的物种上去,就可以得到研究区域内所有物种的系统发生树,也就是phylo数据。

phyloregion 计算系统发育区域(phyloregion,突然意识到自己对这个词的理解可能有出入,就先这么直译吧的进化独特性

示例:

phylobeta_core部分讲了phylobeta计算系统发育β多样性步骤生成了三个矩阵

pbc[[1]]等价于pbc$phylo.beta.sim,k为期望的系统区域,通常由optimal_phyloregion算得

phylobeta_core算得的三个矩阵都能用于phyloregion的计算,但是ED的数值不同,不过大小相对来说是不变的,有点像不同算法得到的数值。

phylo_endemism 计算系统发生独特性

理论参考Faith et al. (2004)、Rosauer et al. (2009) ,看完了回来补充

示例:

pe <- phylo_endemism(africa$comm, africa$phylo)

phylo_endemism(x, phy, weighted = TRUE),x为样本(栅格样地)对应物种的dataframe或矩阵,这里对应了africa$comm;phy是phylo这样带枝长信息的系统发生树;weighted = TRUE默认加权独特性。得到各个栅格的数值表。

plot(density(pe))

画密度图

联系前面学到的画一下choropleth映射图

merge在coldspots & hotspots部分有介绍






Phyloregion mannual(6):PD、PD_ses、phylobeta_core、phylobeta_ses、的评论 (共 条)

分享到微博请遵守国家法律