R语言实践——U.Taxonstand标准化动植物科学名

简介

U.Taxonstand是近期在Plant Diversity期刊上发表的一个R语言包。用于标准化实际上更应该是通过与国际大型数据库中的接受名进行比较)动植物科学名。本文将根据该库在github上的示例文档来实践操作一下U.Taxonstand。之后会对原始文献里的示例进行重复。

准备工作

支持包的安装:openxlsx、plyr、magrittr

install.packages("openxlsx")
install.packages("plyr")
install.packages("magrittr")

openxlsx用于读取xlsx文件。该文献中检索的数据库皆为xlsx文件。

plyr和magrittr是该文献发表的U.Taxonstand的支持包。

U.Taxonstand安装

博主使用install.packages(“U.Taxonstand”)并未安装成功。

方法1:GitHub

文中提及:U.Taxonstand可在GitHub上开放获取,链接如下:https://github.com/ecoinfor/U.Taxonstand
在网站上下载了zip文件后,直接安装

install.packages("D:/ALL_Softwares/R-4.2.0/U.Taxonstand-main.zip")

博主这里仍是安装失败。因为不擅长使用R,所以使用了第2种方法

方法2:devtools

另外,也可通过devtools包的install_github函数安装,操作如下:

> library("usethis")
> library("devtools")
> install_github("ecoinfor/U.Taxonstand")

在这里插入图片描述
随即会让选择安装选项,博主选择1,也就All

等待安装完成后,进行测试。

测试

原始文献的示例有文档,暂不考虑,github上文档示例较为简单,优先实践

参照github文档测试

1. 加载U.Taxonstand

library(U.Taxonstand)

2. 加载示例数据库

data(databaseExample)

从目录中可以看到,加载是U.Taxonstand自带的示例数据库。 也可以根据自己需要创建特定生物类群的数据库。
在这里插入图片描述
在这里插入图片描述
可以看到示例数据库中有超10万条数据。

3. 待查科学名以向量字符输入(character vector)

sps <- c("Syntoma comosum (L.) Dalla Torre & Sarnth.", "Turczaninowia fastigiata (Fisch.) DC.",
"Zizyphora abd-el-asisii Hand.-Mazz.")

GitHub的示例科学名很少,仅有3个。在原始文献示例中则通过读取xlsx文件的方式输入大量待查询学名。
在这里插入图片描述

4. nameMatch函数使用

nameMatch(spList=sps, spSource=databaseExample, author = TRUE, max.distance= 1)

运行结果如下:
在这里插入图片描述

5. 结果解读

上图中,nameMatch函数输出了一个包含22个条目的结果。根据原始文献,这些条目依次的含义为:

column含义
Sorter序列号,如果用户没有为待查科学名数据指定此列,在导入R后会自动生成
Submitted_Name待查科学名数据的物种科学名
Submitted_Author待查科学名数据的物种命名人
Submitted_Genus待查科学名数据的物种属名
Submitted_Rank待查科学名数据的分类等级
Name_in_database数据库中对应的物种科学名
Author_in_database数据库中对应的物种命名人
Genus_in_database数据库中对应的物种属名
Rank_in_database数据库中对应的物种分类等级
ID_in_database数据库中对应的物种ID
Name_set如果用户查找的物种仅在数据库中找到了1个匹配,该值为1;如果有多个匹配,该值为1,2,3…顺序排列的匹配值。如果没有匹配,该值为1。该值序号为1的匹配项即为该物种名本身。
Fuzzy'True’表示部分或整体使用了模糊匹配。'False’表示未用模糊匹配。
Score匹配评分。当提交的科学名带命名人时,该值从1到0;当提交的科学名缺少命名人时,该值从0.8至0。该值越大说明匹配越好。
name.dist提交的科学名与数据库中匹配科学名的距离(distance)
author.dist提交的科学名命名人与数据库中匹配科学名命名人的距离(distance)
New_name如果本列为空且Score列值大于0,说明提交的科学名在数据库中为接受名。如果提交的科学名在数据库中检测为异名,则本列会显示数据库中该异名的接受名。如果提交的科学名未解决或作为异名未能在数据库中匹配到接受名,该列会显示[Accepted name needs to be determined]
New_author根据New_name列显示命名人
New_ID根据New_name列显示ID
Family数据库中的科名
Name_spLev如果提交的科学名不能在所属分类等级中查到匹配,就会在此处显示种级匹配结果。例如无法在亚种中匹配Agropyron caesium subsp. caesium var. caesium,便会在此处显示Agropyron caesium,同时Name_in_database列为空。
Accepted_SPNAME只要提交的科学名可以在数据库中找到匹配值,不管匹配到了接受名或异名,此处会显示接受名。
NOTE此处展示一些备注信息。比如没有匹配值或匹配值多个,亦或是只匹配到种级科学名。

nameMatch函数详解

1 介绍

原文直译:用已接受的名称替换异名,并消除原始名称中的拼写错误。
理解:正如本文开头所讲,U.Taxonstand包实现的途径是比较,所以该函数返回的结果不会替换查询名,只会像《5.结果解读》中那样将比较的结果显示出来。

2 用法

nameMatch(
  spList = NULL,
  spSource = NULL,
  author = TRUE,
  max.distance = 1,
  genusPairs = NULL,
  Append = FALSE
)

3 参数解读

  • spList:包含查询类群的数据集或字符向量。*在示例数据“spExample”中可以找到一个数据集例子。*通过字符向量指定查询类群,其中每个元素属名和种加词,可能还包括作者和种下缩写。
    spExample包含了289个查询类群,每个类群有名称、作者和分类等级(查询等级)在这里插入图片描述

  • spSource:包含标准化类群名称(接受名)数据库的数据集。*可以在“databaseExample”中找到一个示例数据集。*许多可以被U.Taxonstand直接使用的动植物数据库可以在线获取:https://github.com/nameMatch/Database也可以在我上传的资源中下载。 它们包括苔藓植物、维管植物、两栖动物、鸟类、鱼类、哺乳动物和爬行动物的全球分类数据库。其他生物分类群的全球数据库将来可能会被放在这个网站上。

    示例数据库包含10万多条数据,每条数据含有8个值:ID、名称、作者、属、分类等级、接受名ID、科、简约名。
    在这里插入图片描述

  • author:逻辑变量。如果为TRUE(默认值),该函数会尝试匹配查询类群的作者名,并计算作者名的匹配距离。

  • max.distance:数值。当需要修正科学名中的拼写作物时,该值规定了agrep(模糊匹配法)匹配时的最大距离。

  • genusPairs:许多属有一个或多个拼写变体(比如Euodia 与 Evodia, Eccremis 与 Excremis, Ziziphus 与 Zizyphus)。当你提供了一个包含这样的属的列表时,U.Taxonstand会将列表里的数据作为补充,用于用户查询类群和数据库间的匹配。数据文件是包含两列的数据集(Genus01 和 Genus02)。

    示例数据集中包含了355对拼写变体。
    在这里插入图片描述

  • Append:逻辑变量。 如果为TRUE,函数将在最终结果里添加数据库的其他列值(比如:地理分布,不同语言的俗名)

4 返回值

与《5. 结果解读》相同。

原始文献示例测试

首先,原始文献的链接,在里面下载附件。另外还需要准备数据库数据,既可以从github下载,也可以从我的资源里下载,数据量比较大,压缩包约300M。

在附件中就包含了示例脚本“R_ script_U.Taxonstand_Test.r”。只需要将其中的文件路径更改为自己对应的地方即可。不做赘述。

首次运行时,当用到模糊匹配时,R将自动安装pbapply,如果没有的话。待安装完成后,会接着完成模糊匹配。整个过程耗时大概5分钟左右,完成了289个查询项,生成了314个匹配项。感兴趣的你可以亲自尝试一番。

只能对种名进行匹配吗?目前来看确实如此

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ALittleHigh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值