Hav*_*v0k 6 parsing r bioinformatics julia
科学名称通常由3个信息组成:属,种上皮和作者.一个简单的例子如下:
Acanthus ilicifolius L.
简单.然而,当我们必须处理杂交种,亚种/品种/形态,几个作者和其他不一致时,问题变得更加复杂.在这些情况下,物种名称可能如下所示:
比照 穿心莲(Burm.f.)墙.前Nees
或这个:
Ipomoea pes-caprae(L.)DC.亚种.brasiliensis(L.)Ooststr.f
我正试图找到一种可靠的解构这些名字的方法.如果if/else语句我可以使用吨写一些hackish代码,但我正在寻找更优雅(和健壮)的东西.我想的是某种解析器的名称类似于解析数学表达式的计算器.不幸的是,我不是最复杂的程序员,我之前也没有写过真正的解析器,也不知道在这种情况下它是否有意义,因为科学名称有很多变化.你认为解决这个问题的最佳方法是什么?首选语言是R,如果它更适合任务,也许也是Julia.
jba*_*ums 15
你很幸运(有点).GBIF有一个名称解析器,并且该taxize包与该gbif_parse函数挂钩到其API .
library(taxize)
gbif_parse(c('Acanthus ilicifolius L.',
'cf. Andrographis paniculata (Burm.f.) Wall. ex Nees',
'Ipomoea pes-caprae (L.) DC. subsp. brasiliensis (L.) Ooststr.f'))
# scientificname type genusorabove specificepithet authorsparsed authorship canonicalname canonicalnamewithmarker canonicalnamecomplete bracketauthorship infraspecificepithet rankmarker
# 1 Acanthus ilicifolius L. WELLFORMED Acanthus ilicifolius TRUE L. Acanthus ilicifolius Acanthus ilicifolius Acanthus ilicifolius L. <NA> <NA> <NA>
# 2 cf. Andrographis paniculata (Burm.f.) Wall. ex Nees INFORMAL Andrographis paniculata TRUE Wall. ex Nees Andrographis paniculata Andrographis paniculata Andrographis paniculata (Burm. f.) Wall. ex Nees Burm. f. <NA> <NA>
# 3 Ipomoea pes-caprae (L.) DC. subsp. brasiliensis (L.) Ooststr.f SCINAME Ipomoea pes-caprae TRUE Ooststr.f Ipomoea pes-caprae brasiliensis Ipomoea pes-caprae subsp. brasiliensis Ipomoea pes-caprae subsp. brasiliensis (L.) Ooststr.f L. brasiliensis subsp.
Run Code Online (Sandbox Code Playgroud)
有关详情?gbif_parse,请参阅.您还可以在github上找到GBIF.
taxize也利用了EOL API - 请参阅?gni_parse.
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |