taxastand
and dwctaxon
Joel Nitta, Wataru Iwasaki
The University of Tokyo
BioDigiCon 2022
Page (2013)
taxastand
Available at https://github.com/joelnitta/taxastand
In R:
Also, need to either install taxon-tools
or Docker
res <- ts_match_names(
query = "Crepidomanes minutum K. Iwats.",
reference = c(
"Crepidomanes minutum (Bl.) K. Iwats.",
"Hymenophyllum polyanthos (Sw.) Sw."),
simple = TRUE,
docker = TRUE
)
glimpse(res)
Rows: 1
Columns: 3
$ query <chr> "Crepidomanes minutum K. Iwats."
$ reference <chr> "Crepidomanes minutum (Bl.) K. Iwats."
$ match_type <chr> "auto_basio-"
data(filmy_taxonomy)
head(filmy_taxonomy[c("taxonID", "acceptedNameUsageID",
"taxonomicStatus", "scientificName")])
# A tibble: 6 × 4
taxonID acceptedNameUsageID taxonomicStatus scientificName
<dbl> <dbl> <chr> <chr>
1 54115096 NA accepted name Cephalomanes atrovirens Presl
2 54133783 54115097 synonym Trichomanes crassum Copel.
3 54115097 NA accepted name Cephalomanes crassum (Copel.) M.…
4 54133784 54115098 synonym Trichomanes densinervium Copel.
5 54115098 NA accepted name Cephalomanes densinervium (Copel…
6 54133785 54115099 synonym Trichomanes infundibulare Alderw.
res <- ts_resolve_names(
query = "Gonocormus minutum",
ref_taxonomy = filmy_taxonomy,
docker = TRUE)
glimpse(res)
Rows: 1
Columns: 6
$ query <chr> "Gonocormus minutum"
$ resolved_name <chr> "Crepidomanes minutum (Bl.) K. Iwats."
$ matched_name <chr> "Gonocormus minutus (Bl.) Bosch"
$ resolved_status <chr> "accepted name"
$ matched_status <chr> "synonym"
$ match_type <chr> "auto_fuzzy"
dwctaxon
Goal: enable simple, error-free editing of DWC taxon data
Available at https://github.com/joelnitta/dwctaxon
# A tibble: 4 × 4
taxonID acceptedNameUsageID taxonomicStatus scientificName
<chr> <chr> <chr> <chr>
1 54133783 54115097 synonym Trichomanes crassum Copel.
2 54115097 <NA> accepted name Cephalomanes crassum (Copel.) M.…
3 54133784 54115098 synonym Trichomanes densinervium Copel.
4 54115098 <NA> accepted name Cephalomanes densinervium (Copel…
Old version:
New version (C. crassum → synonym of C. densinervium):
Need to account for all synonyms
dct_change_status()
handles synonym mapping# A tibble: 4 × 4
taxonID acceptedNameUsageID taxonomicStatus scientificName
<chr> <chr> <chr> <chr>
1 54133783 54115098 synonym Trichomanes crassum Copel.
2 54115097 54115098 synonym Cephalomanes crassum (Copel.) M.…
3 54133784 54115098 synonym Trichomanes densinervium Copel.
4 54115098 <NA> accepted name Cephalomanes densinervium (Copel…
dct_validate()
checks taxonomic datadct_change_status(
tax_dat = filmies,
sci_name = "Trichomanes crassum Copel.",
new_status = "synonym",
usage_name = "Trichomanes densinervium Copel."
) |>
dct_validate()
Error: `check_mapping` failed.
`taxonID`(s) detected whose `acceptedNameUsageID` value does not map to
`taxonID` of an existing name.
Bad `taxonID`: 54133783
Bad `scientificName`: Trichomanes crassum Copel.
|>
)ferns_tax_raw |>
# Add entry for Dryopteris simasakii var. simasakii autonym
dct_add_row(
sci_name = "Dryopteris simasakii var. simasakii",
taxonomicStatus = "accepted",
taxonRank = "variety",
parentNameUsageID = "37XPH",
) |>
# Change status of Parahemionitis arifolia as indicated by plastome data
dct_change_status(
sci_name = "Parahemionitis arifolia (Burm. fil.) Panigrahi",
new_status = "accepted"
) |>
dct_change_status(
sci_name = "Hemionitis arifolia (Burm. fil.) T. Moore",
new_status = "synonym",
usage_name = "Parahemionitis arifolia (Burm. fil.) Panigrahi"
) |>
# ... (other changes)
dct_validate()
taxastand
+ dwctaxon
: flexible taxonomic standardizationtaxastand
: accurate, customizable taxonomic resolution
dwctaxon
: maintenance of DWC-compliant taxonomic database
Not all researchers need this (standard databases may be fine)
Japan Society for the Promotion of Science
Members of the Iwasaki lab, The University of Tokyo
C. Webb
M. Hassler