分裂科学名称

时间:2015-01-21 16:25:47

标签: r parsing bioinformatics julia

科学名称通常由3条信息组成:属,种上皮和作者。一个简单的例子如下:

Acanthus ilicifolius L。

  • 属:Acanthus
  • 物种上皮:ilicifolious
  • 作者:L。

易。然而,当我们必须处理杂交种,亚种/品种/形态,几个作者和其他不一致时,问题变得更加复杂。在这些情况下,物种名称可能如下所示:

比照 Andrographis paniculata (Burm.f.)Wall。前尼斯

  • cf。:物种未确定100%确定
  • 属:Andrographis
  • 物种上皮:paniculata
  • 作者:( Burm.f.)Wall。前尼斯

或者这个:

Ipomoea pes-caprae(L.)DC。亚种。 brasiliensis(L.)Ooststr.f

  • 属:Ipomea
  • 物种上皮:pes-caprae
  • 物种作者:(L.)DC。
  • 亚种上皮:brasiliensis
  • 亚种作者:(L.)Ooststr.f

我试图找到解构这些名字的可靠方法。如果if / else语句我可以使用吨写一些hackish代码,但我正在寻找更优雅(和健壮)的东西。我想的是某种解析器的名称类似于解析数学表达式的计算器。不幸的是,我不是最复杂的程序员,我之前也没有写过真正的解析器,也不知道在这种情况下它是否有意义,因为科学名称有很多变化。你认为解决这个问题的最佳方法是什么?首选语言是R,如果它更适合任务,也许也是Julia。

1 个答案:

答案 0 :(得分:15)

你很幸运(有点)。 GBIF有name parsertaxize包与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.

有关详细信息,请参阅?gbif_parse。您还可以找到GBIF on github

taxize也可以利用EOL API - 请参阅?gni_parse