介绍
植物学家
是一个R包,用于计算特有性和进化性度量多样性使用存在-缺失光栅作为输入,允许加入物种分布模型(SDM)得出的结果系统发育信息。许多软件包,例如门区域
(Daru等人,2020年),皮坎特
(Kembel等人,2010)和佩兹
(Pearse等人,2015)可以用于计算特有性和进化多样性的模式。然而,这些包中的大多数都使用可以计算的矩阵如果用户使用高分辨率。植物学家
为这些带来了另一种选择通过提供计算多样性和特有性的函数来打包每个光栅单元的度量,减少了所需的RAM数量数据处理。这些功能侧重于以下步骤宏观生态学和系统发育数据。
预处理步骤提供了准备数据的基本功能在运行分析之前。处理步骤将计算Faith系统发育多样性、系统发育的函数特有性、加权特有性和进化显著性。此步骤还提供了计算每个标准效果大小的功能通过不同的空间和系统发育方法进行度量随机化,旨在控制丰富度效应。用户可以应用这些随机化方法测试关于丰富度模式与特有性相关时的群落结构和进化模式(Kembel等人,2010年)。后处理阶段包括用于计算不同的时间(例如现在和未来)。我们已经证明了包的计算时间比同类包稍长,但占用的RAM内存要小得多,这将允许用户使用从本地到全局的高分辨率数据集规模。这通过使用户能够增强包的应用程序在可用RAM较少的计算机上处理大型数据集。在这个小插曲,我们演示了植物学家
详细包装。
数据处理
在预处理步骤中,我们为操纵矩阵、形状文件、光栅和系统发育树。在处理过程中步骤,我们提供了计算Faith系统发育多样性的函数(Faith,1992),系统发育特有现象(Rosauer等人,2009),进化独特性(Isaac et al.,2007)和加权特有性(Williams等人,1994年)。
该包包含一个数据集,该数据集允许可视化矩阵、光栅、形状文件和系统发育的预期结构树,可以使用函数访问load.data.rosauer()
。此数据集包含数据帧
有33棵澳大利亚树的存在记录蛙类,每个位置的坐标(Rosauer 2017)和系统发育这些物种的树木(Rosauer 2017)。可以访问此原始数据集在这里.该函数还提供了一个存在-缺失的二进制光栅和一个根据国际自然保护联盟(IUCN)的空间数据,包含27种物种的形状文件。
数据<- 加载.data.rosauer()
头(数据$前实验室)
#>经纬度Litoria_relata Litoria_rothii Litoria_longirostris
#> 1 144.0657 -14.894 0 1 0
#> 2 144.0657 -15.194 0 1 0
#> 3 144.0657 -16.694 0 1 0
#> 4 144.0657 -15.494 0 1 0
#> 5 144.0657 -16.294 0 1 0
#> 6 144.0657 -16.594 0 1 0
#>Litoria_dorsalis Litoria_rubella Litoria_尼米斯Litoria_pallida
#> 1 0 1 1 1
#> 2 0 1 1 1
#> 3 0 1 1 1
#> 4 0 1 1 1
#> 5 0 1 1 1
#> 6 0 1 1 1
#>Litoria_latopalmata Litoria_tornieri Litoria_nasuta Litoria _迁徙
#> 1 0 0 1 0
#> 2 0 0 1 0
#> 3 0 0 1 0
#> 4 0 0 1 0
#> 5 0 0 1 0
#> 6 0 0 1 0
#>Litoria_bicolor-Litoria_fallax Litoria_丽托丽金斑鱼_wilcoxii
#> 1 1 0 0 0
#> 2 0 0 0 0
#> 3 0 0 0 0
#> 4 0 0 0 0
#> 5 0 0 0 0
#> 6 0 0 0 0
#>Litoria_jungguy Litoria_andiirrmalin Litoria_caerulea Litoria氯
#> 1 0 0 1 0
#> 2 0 0 1 0
#> 3 0 0 1 0
#> 4 0 0 1 0
#> 5 0 0 1 0
#> 6 0 0 1 0
#>Litoria_xanthemera Litoria_纤细水蚤_brevipes
#> 1 0 0 1
#> 2 0 0 1
#> 3 0 0 1
#> 4 0 1 1
#> 5 0 0 1
#> 6 0 0 1
#>独眼龙_novaehollandiae独眼龙_cultripes独眼龙_manya
#> 1 1 0 1
#> 2 1 0 0
#> 3 1 0 1
#> 4 1 0 1
#> 5 1 0 1
#> 6 1 0 1
#>Litoria_albogutata Cyclorana_longipes Nyctimystes_dayi Litoria_nannotis
#> 1 1 0 0 0
#> 2 1 0 0 0
#> 3 1 0 0 0
#> 4 1 0 0 0
#> 5 1 0 0 0
#> 6 1 0 0 0
#>Litoria_logica Litoria_河豚Litoria _nyakalensis Litoria _infrafrenata
#> 1 0 0 0 0
#> 2 0 0 0 0
#> 3 0 0 0 0
#> 4 0 0 0 0
#> 5 0 0 0 0
#> 6 0 0 0 0
数据$树
#>
#>系统发育树,有33个顶端和26个内部节点。
#>
#>提示标签:
#>Litoria _revelata、Litoria _ rothii、Litoria_ longirostris、Litorian_dorsalis、Litorial_rubella、Litoria_nigrrenata、。。。
#>
#>生根;包括分支长度。
功能df2rast公司
改变传统社区矩阵(即列中的物种和行中的地点,坐标为将前两列)转换为二进制分布光栅(存在和缺席)。
数据<- 加载.data.rosauer()
第页<- df2rast公司(x个=数据$前实验室,
CRS公司= “+proj=longlat+datum=WGS84+ellps=WGS84+拖曳84=0,0,0”)
班(r)
#>[1]“SpatRaster”
#>attr(,“包”)
#>[1]“terra”
这个shp2rast公司
函数将形状文件转换为光栅使用相同范围进行堆栈。此功能允许工作,例如,物种分布形状由国际自然保护联盟空间数据库。我们提供27种澳大利亚树蛙的一组形状锉。你可以通过以下代码可视化此数据:
shp公司<-特拉::可变气门正时系统(system.file(系统文件)(“外部数据”,“shps_iucn_spps_rosauer.shp”,
包装= “phyloraster”))
颜色<- 彩虹(长度(独特的(shp$二进制),
阿尔法= 0.5)
位置<- 比赛(嘘$二进制,
独特的(shp$二进制))
颜色<-颜色[位置]
情节(小股,科尔=颜色,lty公司= 0,
主要= “空间多边形”)
图书馆(地图)
地图::地图(添加= 真的)
第2页<- shp2rast公司(小股,sps.col公司= “二进制”,伊马斯克= 错误的,背景= 0,
分辨率= 0.5)
第2页
#>类:SpatRaster
#>尺寸:77、126、9(nrow、ncol、nlyr)
#>分辨率:0.5,0.5(x,y)
#>范围:114.099、177.099、-39.17965、-0.6796477(xmin、xmax、ymin、ymax)
#>协调。参考号:lon/lat WGS 84(CRS84)(OGC:CRS84
#>源:内存
#>名称:Litor~ensis、Litor~ttata、Litor~ ensis、Litor~malin、Litor~giana、Litor~kiana、。。。
#>最小值:0,0,0。。。
#>最大值:1,1,1,1,1。。。
情节(r2[[9]])
您也可以使用另一个形状文件来遮罩形状文件,如跟随:
图书馆(地)
shp公司<-特拉::可变气门正时系统(system.file(系统文件)(“外部数据”,“shps_iucn_spps_rosauer.shp”,
包装=“phyloraster”))
#创建多边形以用作带范围的遮罩
e(电子)<-特拉::提取(113,123,-43.64,-33.90)
第页<-特拉::as多边形(e),阴极射线管="")
#由多边形的总延伸切割
coun.crop公司<-特拉::作物(第页,
特拉::提取(shp))
coun.rast公司<-特拉::光栅化(乡村作物,
特拉::粗暴(地::提取(shp),分辨率= 0.5))
#用多边形遮罩光栅化
上海。t吨<- shp2rast公司(小股,年=coun.rast公司,sps.col公司= “二进制”,伊马斯克= 真的)
情节(小吨[[1]],科尔= c(c)(“灰色”,“绿色”))
为了计算进化测量值,非常重要的是具有物种分布的栅格和树具有物种名称的顺序相同。我们可以使用一个简单的这样的逻辑测试。
数据<- 加载.data.rosauer()
姓名(数据$光栅)==数据$树$提示标签
#>[1]真真真真假假假假真
#>[13]真真假假假真假假真真真假
#>[25]假真真真真真真真真
功能phylo.pres类
重新排序光栅堆栈根据系统发育树的顺序,提取只包含光栅堆栈中存在的物种,并获取每个物种的分支长度物种。
ras(拉斯维加斯)<-特拉::粗暴(system.file(系统文件)(“外部数据”,“rast.presab.tif”,
包装= “phyloraster”))
树<-猿::read.tree(读取树)(system.file(系统文件)(“外部数据”,“tree.nex”,
包装= “phyloraster”))
数据准备<- phylo.pres类(x个=ras、,树=树)
现在,光栅堆栈和树的提示标签位于同一位置命令!
姓名(数据准备$x)==树$提示标签
#>[1]真真真真真正真真真真实真真正真真正真真实真真真真真真真
#>[16]真-真-真
#>[31]真真真真
用户还可以选择计算分支长度和子代使用完整提供的树或由物种细分的树进行编号显示在光栅中。注意使用full或子集树。例如,考虑一个场景,其中一个分支包括四个物种(A、B、C和D-图1a)研究区域涉及其中两个物种(A和B,蓝色-图1). 此外,假设物种A和B共享一个分支,表示为D(红色-图1)。使用完整的系统发育树将估计这两个物种分支的全长,包括它们之间共享的分支(D),将它们与祖先连接起来与该特定区域中缺失的物种共享(图1b)。打开另一方面,当使用子集树(图1c)时,分支D将则只使用终端分支进行计算分支长度,使物种A的计算分支长度B将更短(图1c)。
图1。树蛙的系统发生树表示在phylo.pres函数中使用完整树或子编译树。图a) 展示了一些树蛙物种的完整系统发育树。在图b)中,考虑到物种A和b,我们有完整的树存在于该地区(蓝色),以及两种(红色)。在图c)中,我们只有区域。
分析
伟大的!!现在,我们已经能够计算物种的度量丰富性、特有性和进化多样性。
我们的软件包允许您使用光栅sr
功能。
ras(拉斯维加斯)<-特拉::粗暴(system.file(系统文件)(“外部数据”,“rast.presab.tif”,
包装= “phyloraster”))
锶<- 光栅sr(x个=ras)
锶
#>类:SpatRaster
#>尺寸:90、68、1(nrow、ncol、nlyr)
#>分辨率:0.1,0.1(x,y)
#>范围:144.0157、150.8157、-23.044、-14.044(xmin、xmax、ymin、ymax)
#>协调。参考号:lon/lat WGS 84(EPSG:4326)
#>源:内存
#>姓名:SR
#>最小值:2
#>最大值:29
这个植物学家
包实现的功能基于加权特有度的特有度空间格局计算方法(WE;Williams等人,1994年,Crisp等人,2001年)功能光栅.we
。该函数返回带有每个像素的加权特有值。特有值范围为0至1。
ras(拉斯维加斯)<-特拉::粗暴(system.file(系统文件)(“外部数据”,“rast.presab.tif”,
包装= “phyloraster”))
wer(沃尔)<- 拉斯特.we(x个=ras)
wer(沃尔)
#>类:SpatRaster
#>尺寸:90、68、1(nrow、ncol、nlyr)
#>分辨率:0.1,0.1(x,y)
#>范围:144.0157、150.8157、-23.044、-14.044(xmin、xmax、ymin、ymax)
#>协调。参考号:lon/lat WGS 84(EPSG:4326)
#>源:内存
#>名称:WE
#>最小值:0.0007231441
#>最大值:0.2989257007
通过使用R图函数特拉
打包它是可以直观地看到物种活动范围有限的区域是分布式的。
wer(沃尔)$我们
#>类:空间光栅
#>尺寸:90、68、1(nrow、ncol、nlyr)
#>分辨率:0.1,0.1(x,y)
#>范围:144.0157、150.8157、-23.044、-14.044(xmin、xmax、ymin、ymax)
#>协调。参考号:lon/lat WGS 84(EPSG:4326)
#>源:内存
#>名称:WE
#>最小值:0.0007231441
#>最大值:0.2989257007
情节(功率$我们,主要=“威化的地方主义”)
第一个进化测量是Faith的系统发育多样性(PD,Faith 1994),计算为所有分支长度的总和特定区域内出现的物种(Faith 1994)。
ras(拉斯维加斯)<-特拉::光栅(system.file(系统文件)(“外部数据”,“rast.presab.tif”,
包装= “phyloraster”))
树<-猿::read.tree(读取树)(system.file(系统文件)(“外部数据”,“tree.nex”,
包装= “phyloraster”))
数据准备<- phylo.pres类(x个=ras、,树=树,修剪= “树”)
脉冲多普勒雷达<- 拉斯特帕德(x个=数据准备$x、,边缘路径=数据准备$边缘路径,
分支长度=数据准备$分支长度)
情节(pdr$PD、,主要= “系统发育多样性”)
第二个衡量标准是系统发育特有性(PE,Rosauer etal.2009),计算PD限制在特定区域(Rosauer等人,2009年)。功能rast.pe公司
返回包含PE(感兴趣区域)的光栅图层。
ras(拉斯维加斯)<-特拉::粗暴(系统文件(“外部数据”,“rast.presab.tif”,
包装= “phyloraster”))
树<-猿::read.tree(读取树)(system.file(系统文件)(“外部数据”,“tree.nex”,
包装= “phyloraster”))
每<- rast.pe公司(x个=数据准备$x、 树)
每
#>类:SpatRaster
#>尺寸:90、68、1(nrow、ncol、nlyr)
#>分辨率:0.1,0.1(x,y)
#>范围:144.0157、150.8157、-23.044、-14.044(xmin、xmax、ymin、ymax)
#>协调。参考号:lon/lat WGS 84(EPSG:4326)
#>源:内存
#>名称:PE
#>最小值:0.0002224064
#>最大值:0.1756404428
结果可以使用R可视化情节
功能来自特拉
包裹。
第三个衡量标准是进化的独特性(ED;Isaac et2007年)或“公平比例”(Redding等人,2014年),即计算一个分支的总系统发育多样性其成员(Isaac等人,2007年)。我们的包裹返回一张带有平均值的地图每个单元格的ED值,该值是根据以下单元格的ED计算得出的物种出现在每个栅格单元中。功能拉丝的
计算此度量并返回包含ED的光栅层关注区域。
x个<-特拉::粗暴(system.file(系统文件)(“外部数据”,“rast.presab.tif”,包装=“过敏原”))
#系统发育树
树<-猿::read.tree(读取树)(system.file(系统文件)(“外部数据”,“tree.nex”,包装=“phyloraster”))
数据<- 门前(x,树)
预计起飞时间<- 拉丝的(数据$x、 树)
预计起飞时间
#>类:SpatRaster
#>尺寸:90、68、1(nrow、ncol、nlyr)
#>分辨率:0.1,0.1(x,y)
#>范围:144.0157、150.8157、-23.044、-14.044(xmin、xmax、ymin、ymax)
#>协调。参考号:lon/lat WGS 84(EPSG:4326)
#>源:内存
#>名称:ED
#>最小值:0.2469036
#>最大值:0.4712075
结果可以使用R可视化情节
功能来自特拉
包裹。
我们还添加了一个新函数来计算进化每个物种的独特性。该函数将划分一个分支成员之间的总系统发育多样性(Isaac et等人,2007年)。
树<-猿::read.tree(读取树)(系统文件(“外部数据”,“tree.nex”,包装=“phyloraster”))
预计起飞时间<-植物学家::物种.ed(树)
头(d)
#>教育部
#>Litoria_revelata 0.6440047
#>利托里亚_罗西0.6440037
#>Litoria_langirostris岩0.5470682
#>Litoria_dorsalis 0.5470682米
#>Litoria_鲁贝拉0.6440037
#>Litoria_nigrrenata 0.5563398
空模型
零模型是一种广泛使用的控制丰富度效应的方法在多样性衡量方面(Gotelli和Ulrich,2012)。标准化效应大小(SES)测量,也称为z分数或z值,用于从随机测试中计算空模型(Gotelli和McCabe2002).植物学家
实现三种计算方法使用空间和系统发育随机化的SES:rast.pe.SES,rast.pd.ses和rast.we.ses。
完成了SES计算的随机化程序在函数内部rast.we.ses()
,rast.pd.ses()
,粗略编辑ses()
,rast.pe.ses()
、和地理.phylo.ses()
通过包裹SE主站
(Heming等人,2023年)。SE主站
目前实现了六种随机算法具有多个约束级别的二元物种分布:SIM1,SIM2、SIM3、SIM5、SIM6和SIM9(Sense Gotelli,2000)。方法在中实现SE主站
是基于物种处理(最初为行)和站点(最初为列)(即固定、等概率或比例总和)(Gotelli,2000年)。这个随机化算法目前可用于SE主站
为:SIM1(物种发生等概率和站点丰富度等概率),SIM2(物种发生固定和场地丰富度等概率),SIM3(物种发生等概率和站点丰富度固定),SIM5(物种发生比例和站点丰富度固定),SIM6(物种发生比例和站点丰富度固定)和SIM9(物种出现固定,场地丰富度固定,与Laffan&Crisp的保存模型,2003年)。此外,SE主站
(因此植物学家
)支架用于SES计算的用户自定义随机化算法,只要该函数返回SpatRaster类的对象。这允许完成灵活使用尚未由包裹。
默认情况下植物学家
使用函数bootspat_str()
来自SE主站
打包到进行随机分组,但用户可以自由选择上面通过中的spatalg参数提到的其他方法*.ses()
的功能植物学家
包裹。功能bootspat_str()
相当于SIM5Gotelli(2000)的(比例固定)方法,部分放松物种分布的空间结构观察到的细胞丰富度模式的结构。
既然我们已经介绍了随机化方法,我们可以开始构建空模型。
图书馆(SES管理员)
ras(拉斯维加斯)<-特拉::粗暴(system.file(系统文件)(“外部数据”,“rast.presab.tif”,
包装= “phyloraster”))
树<-猿::read.tree(读取树)(系统文件(“外部数据”,“tree.nex”,
包装= “phyloraster”))
数据<- phylo.pres类(ras、树、,修剪= “树”)
t吨<- rast.pd.ses公司(数据$x、,边缘路径=数据$边缘路径,
分支长度=数据$分支长度,阿莱亚特= 10,
随机的,随机的= “吐”)
绘制结果
后期处理
该软件包还具有以下功能三角形网格
那个允许您计算光栅化分集之间的差异两个不同时间之间的度量。此功能允许评估不同时期的物种丰富度如何变化在气候变化场景中很有用。例如,假设我们目前有33种树蛙亚科发生在澳大利亚。在下面的地图中,我们可以看到物种丰富度模式。
#加载数据
x个<-特拉::粗暴(system.file(系统文件)(“外部数据”,“rast.presab.tif”,
包装=“phyloraster”))
#丰富性
里克普勒<- 光栅sr(x)
情节(右侧压力)
现在想象一下,随着气候变化的发展脆弱物种受到严重影响,并在当地灭绝。
#加载数据
x个<-特拉::粗暴(system.file(系统文件)(“外部数据”,“rast.presab.tif”,
包装=“phyloraster”))
#富裕的未来
里克福<- 光栅.sr(x)[[c(c)(1:15)]])#想象一下我们在未来会失去一些物种
特拉::情节(里克福)
这个三角形网格
函数允许您可视化这些丰富度模式在空间上的变化。参见示例如下所示。
分布式电源<- 三角形网格(riq.pres,riq.fut)
情节(差分)
在地图上我们可以看到,最大的损失发生在东部地图上的区域,损失了多达16种物种。这个三角形网格
函数可以用于中可用的任何其他度量这个植物学家
包裹。