seo网站推广方法,wordpress 培训主题,网站内页没有排名,有引导页的网站ropensci 系列之 taxize #xff08;中译手册#xff09; taxize 包1. taxize支持的网络数据源简介目前支持的API#xff1a;针对Catalogue of Life#xff08;COL#xff09; 2. 浅尝 taxize 的一些使用例子2.1. **从NCBI上获取唯一的分类标识符**2.2. **获取分类信息**2… ropensci 系列之 taxize 中译手册 taxize 包1. taxize支持的网络数据源简介目前支持的API针对Catalogue of LifeCOL 2. 浅尝 taxize 的一些使用例子2.1. **从NCBI上获取唯一的分类标识符**2.2. **获取分类信息**2.3. 获得类群的直系子类群2.4. 向下检索子类群直至某个阶元2.5. 向上检索类群直至某个阶元2.6. 检索同物异名2.7. 从多个数据源获得分类标识符2.8. 根据科学名检索俗名2.9. 根据俗名检索科学名2.10. 检索多个类群的最近共有父类群2.11. 强制转换 3. taxize 文档中译3.1. apg检索APG系统中的名称3.2. apg_familiesMOBOT的科名现成的数据3.3. apg_ordersMOBOT的目名3.4. apg_lookup在APGⅢ的类群名称查找并替换名称3.5. bold_downstream在BOLD的阶元结构中向下检索所有类群名称3.6. bold_search根据分类标识符查找生命条形码3.7. children根据给定的类群名称或ID检索直接子类群3.8. class2tree将分类信息列表转换为树状 taxize 包
标题来自网络的分类信息说明与一系列网络 APIs进行交互完成例如获取数据库特定的分类标识符验证物种名称获取分类层次结构获取下游和上游分类名称获取分类同义词将科学名称转换为常用名称反之亦然等等。
1. taxize支持的网络数据源
来自网络的分类信息。
简介 允许用户在许多网站上搜索物种名称科学的和常见的下载上下游的分类等级信息以及许多其他东西。 包中特定API的函数有一个由下划线分隔的前缀和后缀。它们遵循service_whatitdoes的格式。例如gnr_resolve使用Global Names Resolver的API来解析物种名称。 包中不涉及特定API的通用函数没有下划线分隔的两个单词例如classification。 某些数据源需要API密钥。有关更多信息请参阅taxize -authentication。目前支持的API
中译名API前缀SOAP?网络生命大百科Encyclopedia of LifeEOLeolFALSE综合分类信息服务Integrated Taxonomic Information ServiceITISitisFALSE全球名称解析器Global Names Resolverfrom EOL/GBIFgnrFALSE全球名称名录Global Names Indexfrom EOL/GBIFgniFALSE国际自然保护联盟濒危物种红色名录IUCN Red ListiucnFLASETropicos数据库Tropicosfrom Missouri Botanical GardentpFALSE植物名录Theplantlist.orgtplFLASE国家生物技术信息中心National Center for Biotechnology InformationncbiFALSE加拿大维管植物数据库CANADENSYS Vascan name search APIvascanFALSE国际植物名称名录International Plant Names IndexIFNIipniFALSE世界海洋物种名录World Register of Marine SpeciesWoRMSwormsTRUE生命条形码数据库Barcode of Life Data SystemsBOLDboldFALSE泛欧物种名录基础Pan-European Species directories InfrastructurePESIpesiTRUE真菌数据库MycobankmycoTRUE生物多样性网络National Biodiversity NetworkUKnbnFALSE全球真菌名录Index FungorumfgFALSE欧洲多样性观察网EU BONeubonFALSE世界名称名录Index of NamesIONionFALSE生命之树Open Tree of LifeTOLtolFALSE北美自然保护区NatureServenatservFALSE
如果上面的源在SOAP?列中显示TRUE 则该资源在此包中不可用。它们可以从另一个名为 taxizesoap 的软件包中获得。请参阅GitHub repo了解如何安装https://github.com/ropensci/taxizesoap
针对Catalogue of LifeCOL
COL最近在2019年引入了速率限制-这使得API基本上无法使用——COL 即将推出当它稳定时我们将在这里合并它。参见https://github.com/ropensci/colpluz获取CoL的R实现。
2. 浅尝 taxize 的一些使用例子
目前尚未找到完备的关于taxize的用户手册暂且以https://www.rdocumentation.org/packages/taxize/versions/0.9.4中的内容为引先体验一下taxize。
大部分“taxize”都围绕分类标识符展开。众所周知分类名称是很混乱的比如拼写错误同物异名等等。先获取能让数据源识别的标识符ID然后才能继续获取其他分类信息。
网页给出了下面的例子
2.1. 从NCBI上获取唯一的分类标识符
uids - get_uid(c(Chironomus riparius, Chaetopteryx))以及运行后在控制台的输出可以看到输出结果还是非常详细的包括请求数量、请求内容、请求结果以及汇总报告。
No ENTREZ API key providedGet one via taxize::use_entrez()
See https://ncbiinsights.ncbi.nlm.nih.gov/2017/11/02/new-api-keys-for-the-e-utilities/
══ 2 queries ═══════════════Retrieving data for taxon Chironomus riparius✔ Found: ChironomusripariusRetrieving data for taxon Chaetopteryx✔ Found: Chaetopteryx
══ Results ═════════════════• Total: 2
• Found: 2
• Not Found: 0而且返回的结果也不单单是标识符。尝试输出uids后可以看到该变量里保存的信息非常有用且简洁。
以下是输入
uids以下是输出
[1] 315576 492549
attr(,class)
[1] uid
attr(,match)
[1] found found
attr(,multiple_matches)
[1] FALSE FALSE
attr(,pattern_match)
[1] FALSE FALSE
attr(,uri)
[1] https://www.ncbi.nlm.nih.gov/taxonomy/315576
[2] https://www.ncbi.nlm.nih.gov/taxonomy/492549通过查看get_uid()的帮助页面可以了解到其他属性的含义。match表示查找结果如何mutiple_matches表示是否查找到多项匹配结果pattern_match表示当存在多项匹配时是否生成了最佳匹配结果uri表示在此链接有关于当前类群更多的信息。
2.2. 获取分类信息
什么是分类信息比如说现在有一个物种然后分类信息就是从种级向上的所有分类等级包括属、科、目、纲、界。
通过第一步获得的标识符查看它们的分类信息
out - classification(uids)结果是数据框列表 细心一点可以发现这两个类群的分类阶元至少有27层这是因为除了界门纲目科属种外许多中间阶元例如亚属、亚科、超科、超目等都会包含在分类信息中。
在分别查看这两个数据框时注意标识符要用字符。分类阶元从上到下逐级减小直至我们输入的标识符对应的类群。
2.3. 获得类群的直系子类群
这个方法并不需要提前获取类群的标识符也不需要声明类群的分类阶元。
让我们先尝试一下获取属级类群的直系子类群也就是属下的所有物种以Salmo为例。
ic - children(salmo, db ncbi)注意直系子类群有很强的限制性一般来说标准的分类阶元是界门纲目科属种但是正如前文获取分类信息时一样实际上还会包含超目、亚科等阶元。所以在使用时要返回的结果可能与期望大相径庭如果要查看某个科中的属级类群有哪些
ber - children(berberidaceae, dbncbi)实际上返回的都是亚科类群。
2.4. 向下检索子类群直至某个阶元
从字面上看此方法可以实现多层阶元检索子类群。我们先过一下给出的例子获得Apis的所有物种。
api - downstream(as.tsn(154395), db itis, downto species, verbose FALSE)再多尝试一次依旧以berberidaceae为例查找该科下的所有属。
ber - downstream(berberidaceae, dbitis, downtogenus, verboseFALSE)══ 1 queries ═══════════════Retrieving data for taxon berberidaceae✔ Found: berberidaceae
══ Results ═════════════════• Total: 1
• Found: 1
• Not Found: 0返回的结果中包含了所有berberidaceae的属只不过没有中间阶元比如亚科。
2.5. 向上检索类群直至某个阶元
从物种Pinus contorta向上检索至属级阶元具体效果如何见下
pi - upstream(Pinus contorta, db itis, upto Genus, verboseFALSE)实际上可以这样理解该方法从目标物种向上级检索到直接父类群再找到此父类群的所有姊妹类群同阶元类群。
2.6. 检索同物异名
这个就很好理解了直接看看例子
ace - synonyms(Acer drummondii, dbitis)*在
══ 1 queries ═══════════════Retrieving data for taxon Acer drummondii✔ Found: Acer drummondii
══ Results ═════════════════• Total: 1
• Found: 1
• Not Found: 0
Accepted name(s) is/are Acer rubrum var. drummondii
Using tsn(s) 5268532.7. 从多个数据源获得分类标识符
本例子非常清晰明了当然我们在这里不会详细介绍使用的方法的参数。
sal - get_ids(sci_com Salvelinus fontinalis, db c(itis, ncbi), verboseFALSE)══ db: itis ═════════════════
══ 1 queries ═══════════════Retrieving data for taxon Salvelinus fontinalis✔ Found: Salvelinus fontinalis
══ Results ═════════════════• Total: 1
• Found: 1
• Not Found: 0
══ db: ncbi ═════════════════
No ENTREZ API key providedGet one via taxize::use_entrez()
See https://ncbiinsights.ncbi.nlm.nih.gov/2017/11/02/new-api-keys-for-the-e-utilities/
══ 1 queries ═══════════════Retrieving data for taxon Salvelinus fontinalis✔ Found: Salvelinusfontinalis
══ Results ═════════════════• Total: 1
• Found: 1
• Not Found: 02.8. 根据科学名检索俗名
ha - sci2comm(Helianthus annuus, db itis)[1] common sunflower sunflower wild sunflower annual sunflower2.9. 根据俗名检索科学名
bb - comm2sci(black bear, db itis)[1] Ursus americanus luteolus Ursus americanus Ursus americanus
[4] Ursus americanus americanus Chiropotes satanas Ursus thibetanus
[7] Ursus thibetanus 2.10. 检索多个类群的最近共有父类群
lc - lowest_common(c(Sus scrofa, Homo sapiens, Nycticebus coucang), db ncbi)也许你注意到了行号是21这可能意味着lowest_common方法是先找到所有类群的所有分类信息即classification然后交叉比较后抽取了某行分类信息。
2.11. 强制转换
从数值型至uid类型as.uid(315567)从列表型至uid类型as.uid(list(“315567”“3339”))从uid类型至数据框类型data.frame(as.uid(c(315567, 3339)))
3. taxize 文档中译
资源https://cran.r-project.org/web/packages/taxize/taxize.pdf
介绍函数方法时并不严格遵循文档的顺序。
3.1. apg检索APG系统中的名称
描述被子植物分类系统又称APGⅢ中的类群名称和替代名。 用法apgOrders(…)apgFamilies(…) 参数…传递给crul::verb-GET) 参考http://www.mobot.org/MOBOT/research/APweb/ 示例结果参考 3.2. apg_families 和 3.3. apg_orders。
3.2. apg_familiesMOBOT的科名现成的数据
描述APGⅢ中的科名和替代名。 格式该数据框有1705行6列。 family科名。 synonym如果accepted列为FALSE此项就是接受名如果accepted列为TRUE此项为NA。 order目名。 accepted逻辑值取决于family列的名称是否被接受。 originalAPG网站的原始数据。当此项存在时family列的名称将会映射到此项。 accepted_name接受名。整合family和synonym列后的结果。
说明本数据集是在2020-06-03借助 apgFamilies() 生成的。
3.3. apg_ordersMOBOT的目名
描述APGⅢ中的科名和替代名。 格式该数据框有576行5列。 order目名。 synonym如果accepted列为FALSE此项就是接受名如果accepted列为TRUE此项为NA那 么order列为接受名。 accepted逻辑值取决于order列是否为接受名。 originalAPG网站的原始数据。当此项存在时order列的名称将会映射到此项。 accepted_name接受名。整合order和synonym列后的结果。
说明本数据集是在2020-06-03借助 apgOrders() 生成的。
3.4. apg_lookup在APGⅢ的类群名称查找并替换名称
描述在APGⅢ的类群名称查找并替换名称。 用法apg_lookup(taxa, rank“family”)。 参数
taxa字符型在APGⅢ中查找该分类名称的替换名。rank字符型分类阶元接受值为family或order。
说明本方法在内部调用的是 apg_families 和 apg_orders 这两个数据集。 返回值APGⅢ中的科名或目名如果参数taxa的名称与APG中的相同返回原始名称否则返回NA。
示例 发现新名称 apg_lookup(taxa Hyacinthaceae, rank family)new name...
[1] Asparagaceae相同名称 apg_lookup(taxa Poaceae, rank family)name is the same...
[1] Poaceae检索失败 apg_lookup(taxa Foobar, rank family)no match found...
[1] NA3.5. bold_downstream在BOLD的阶元结构中向下检索所有类群名称
用法bold_downstream(id, downto, intermediate FALSE, …) 参数
id整数值单个或多个BOLD的分类标识符。downto字符值期望向下到达的分类阶元。分类阶元区分大小写详见data(rank_ref。intermediate逻辑值TRUE时返回包含期望阶元的类群名称和一个包含中间阶元类群数据框的列表的列表。默认为FALSE。…传递给crul::verb-GET。
说明此方法需要爬取BOLD网站故而不太稳定。 返回值当intermediate为FALSE时返回的是储存期望阶元的分类信息的数据框而当intermediate为TRUE时则返回一个列表列表长度为2包括期望阶元的类群名称和中间阶元的名称。
示例 intermediate FALSE即默认 bold_downstream(id 3451, downto species)name id rank
1 Gadus chalcogrammus 360473 species
2 Gadus macrocephalus 19837 species
3 Gadus morhua 26136 species
4 Gadus ogac 747382 species
5 Gadus sp. 674263 species
6 Gadus sp. OPC-2017 794750 speciesintermediate TRUE i - bold_downstream(id 443, downto genus, intermediate TRUE)3.6. bold_search根据分类标识符查找生命条形码
用法bold_search(sci NULL, id NULL, fuzzy FALSE, dataTypes “basic”, includeTree FALSE, response FALSE, name NULL, …) 参数
sci字符型单个或多个科学名。id整数型单个或多个BOLD分类标识符。fuzzy逻辑值决定是否采用模糊检索默认FALSE。只有使用了sci参数时才有用。dataTypes字符型决定返回的数据类型详见说明。当使用了sci参数时会忽略此参数当使用id参数时才有用。includeTree逻辑值默认FALSE如果为TRUE返回一个包含父类群和期望类群的信息的列表只有使用了id参数才有用。response逻辑值此参数是返回的curl响应对于调试很有用也能获得API响应的详细信息。name已弃用请使用sci。…传递给crul::verb-GET。
说明必须向此方法传递sci或id参数之一其余参数都是可选的。dataTypes参数的接受值
接受值返回说明all所有数据basic基本的类群信息images标本图片。包含版权信息图片链接图片元数据stats标本和测序统计。包括公开物种数公开BIN数公开标记物数公开记录数标本数测序物种数条形码标本数物种数条形码物种数geo采集点信息。包括国家和采集点地图sequencinglabs测序实验室。包括实验室名称和记录数depository标本仓库。包括仓库名和记录数thirdparty第三方信息。包括维基百科总结维基百科链接和GBIF地图
返回值一个由数据框组成的列表。 参考http://www.boldsystems.org/index.php/resources/api 示例 简单的例子 bold_search(sciApis)input taxid taxon tax_rank tax_division parentid parentname taxonrep specimenrecords representitive_image.image representitive_image.apectratio
1 Apis 1937 Apis genus Animalia 878935 Apini Apis 5222 BOFTH/B3260-B091247093258.jpg 1.362模糊查找 a - bold_search(sciachl, fuzzy TRUE)当使用id同时可以使用dataTypes和includeTree bold_search(id88899, dataTypes basic, includeTree TRUE)input taxid taxon tax_rank tax_division parentid parentname taxonrep
1 88899 18 Chordata phylum Animalia 1 NA Chordata
2 88899 51 Aves class Animalia 18 Chordata Aves
3 88899 339 Coraciiformes order Animalia 51 Aves NA
4 88899 88898 Momotidae family Animalia 339 Coraciiformes NA
5 88899 88899 Momotus genus Animalia 88898 Momotidae NA3.7. children根据给定的类群名称或ID检索直接子类群
描述本方法区别于 downstream() 的点在于children()只搜集直接子类群而downstream()是搜集期望子阶元的分类名称。
用法
## Default S3 method:
children(...)## S3 method for class tsn:
children(sci_id, dbNULL, rowsNA, xNULL, ...)## S3 method for class wormsid:
children(sci_id, dbNULL, ...)## S3 method for class ids:
children(sci_id, dbNULL, ...)## S3 method for class uid:
children(sci_id, dbNULL, ...)## S3 method for class boldid:
children(sci_id, dbNULL, ...)参数
…其他额外传递给ritis::hierarchy_down()ncbi_children()worrms::wm_children()bold_children()的参数。sci_id类群名称字符型或ID字符型或数值型向量。db字符型用于检索的数据源。接受值是itisncbiworms或bold之一。每个数据源都有自己特有的一套标识符不属于指定数据源的标识符也有可能返回检索结果只不过是错误的。rows数值型从1至无穷大的整数值。当为NA默认所有行都有效。注意如果传入任何可接受类的分类id: tsn则忽略此参数。NCBI有这个函数的方法但是rows参数不起作用。x已弃用见 sci_id。
返回值一个带命名的数据框储存每个输入类群的所有子类群名称。如果在数据源中没有匹配项则返回NA。
ncbi当数据源是 ncbi 时默认ambigous TRUE表示像“unclassified”、“unknown”、“uncultured”和“sp.”的子类群都不会舍弃。
bold数据源bold存在连接不稳定的情况。
示例 输入ID children(161994, db itis)输入名称 children(Salmo, db itis)使用两个数据源 t - children(get_ids(Apis, db c(ncbi,itis)))3.8. class2tree将分类信息列表转换为树状
描述将多个独立物种的阶元层级列表以分类阶元矩阵的形式塞入一个物种内然后仅根据分类计算距离矩阵随后输出phylo或dist对象。
用法
class2tree(input, varstepTRUE, checkTRUE, ...)## S3 method for class classtree
plot(x, ...)## S3 method for class classtree
print(x, ...)参数
inputclassification()返回的数据框列表。varstep根据不同类别数量的比例损失改变连续阶元之间的步长。check为TRUE时删除所有行不同或行不变的冗余阶元并将每行视为不同的基础分类类群物种。如果为FALSE所有阶元都被保留并且基础分类类群物种也必须编码为变量列。…传递给hclust的参数。xclass2tree()返回的结果用于输出或绘图。
说明详见vegan::taxa2dist()。生成分类树不仅依赖分类阶元的聚类还会使用实际的类群枝。本方法的流程如下首先从输入中搜集每个类群的可用分类阶元和对应的ID然后整合所有类群的阶元向量生成一个矩阵矩阵的列是所有类群的有序分类阶元行是这些类群的阶元向量随后这个阶元矩阵转换为分类ID矩阵缺失的阶元会由原阶元名称生成的伪ID代替最后ID矩阵用于将具有相似分类阶元层级的类群聚类。
返回值一个带槽位的classtree对象。当直接输出返回值时只会显示phylo部分其余三部分可以通过output$classification查看。
phylo结果。classification分类信息数据框类群为行分类信息阶元为列。distmat距离矩阵。names系统发育端点的名称。
示例
spnames - c(Quercus robur, Iris oratoria, Arachis paraguariensis,
Helianthus annuus,Madia elegans,Lupinus albicaulis,
Pinus lambertiana)out - classification(spnames, dbitis)tr - class2tree(out)