||
处理生物学名时经常需要将学名按照意义分成几个部分, 如
1 GENUS 属名
2 SPECIES 种加词
3 AUTHOR_OF_SPECIES 作者
4 INFRASPECIFIC_RANK 种下等级
5 INFRASPECIFIC_EPITHET 种下等级加词
6 AUTHOR_OF_INFRASPECIFIC_RANK 种下等级作者
例如, 太白深灰槭的学名是:
Acer caesium Wall. ex Brandis subsp. giraldii (Pax) E. Murr.
按照各部分的含义分开,应该是:
属名 GENUS: "Acer"
种加词 SPECIES: "caesium"
种作者 AUTHOR_OF_SPECIES: "Wall. ex Brandis"
属下等级 INFRASPECIFIC_RANK: "subsp."
属下等级加词 INFRASPECIFIC_EPITHET: "giraldii"
属下等级作者 AUTHOR_OF_INFRASPECIFIC_RANK: "(Pax) E. Murr."
物种的学名的拼写有以下几种情况
1 只给出属名
2 只给出属名和sp.
3 给出属名和种名, 但是未提供作者
4 给出属名, 种加词和作者
5 给出属名, 种加词, 作者, 种下等级(var.或subsp.,或f.), 种下等级加词, 种下等级作者
6 给出属名, 种加词, 种下等级(var.或subsp.,或f.), 种下等级加词, 种下等级作者
7 给出属名, 种加词, 种下等级(var.或subsp.,或f.), 种下等级加词
相应的程序必须考虑到以上各种情况, 并将其正确分开。
herblabel (https://github.com/helixcn/herblabel ) R 程序包提供了一个简单的生物学名处理的函数
parse_taxa()
, 经过测试,在以上提到的各种情况, 均工作正常。 由于 种下等级 f. 也常用于人名, 故本程序未加入处理f.的部分。
library(herblabel)
### Species
parse_taxa("Acer")
parse_taxa("Acer caudatifoliumHayata")
parse_taxa("Acer caudatifolium")
parse_taxa("Acer sp.")
### variaty
parse_taxa("Acer caudatum Wall. var.multiserratum (Maxim.) Rehd.")
parse_taxa("Acer caudatum var.multiserratum (Maxim.) Rehd.")
parse_taxa("Acer caudatum Wall. var.multiserratum")
parse_taxa("Acer caudatum var. multiserratum")
### subspecies
parse_taxa("Acer caesium Wall. exBrandis subsp. giraldii (Pax) E. Murr.")
parse_taxa("Acer caesium subsp.giraldii (Pax) E. Murr.")
parse_taxa("Acer caesium Wall. exBrandis subsp. giraldii")
parse_taxa("Acer caesium subsp.giraldii")
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-19 22:33
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社