Introduction

This package is designed to simplify the workflow of combining amphibian data sets from sources that use different taxonomic nomenclature, by conforming to the most current system suggested by the Amphibian Species of the World: an Online Resource, Forst (2017). Comparative studies require the combination of data from a range of sources such as spatial or conservation data from the IUCN red list, information on evolutionary history from published a phylogeny such as Pyron 2014, Syst Biol or life history data from AnAge. These sources have either made the decision to follow a specific taxonomic system or, more often, are no longer up-to-date. It can therefore be complicated to establish a universal or current nomenclature to be able to efficiently combine data sets. As such, the main objective of this package is to harvest taxonomic classifications of all amphibian species listed on the ASW website, harvest all listed synonyms per species and then using this information, suggest ASW names for any given list of taxa.

This package could also be useful for easily updating museum catalogs etc., and includes functions for producing summary statistics on species numbers at various taxonomic levels, or to update species names in manuscripts etc. after a taxonomic group has received nomenclature revisions.

Below are some examples of how to use the package. (REMEMBER! Please cite not only AmphiNom but all data resources used, including the Amphibian Species of the World).

Loading the package

AmphiNom is a package written in the R programming language. The most recent version can be downloaded from ‘gitHub’, using the ‘devtools’ library. The first step is therefore to make sure that the ‘devtools’ package is installed and loaded. Successful installation of ‘AmphiNom’ might also require that the ‘XML’ package is installed prior.

library(devtools)
install_github("hcliedtke/AmphiNom", build_vignettes = TRUE)
library(AmphiNom)

Compile ASW taxonomy

The starting point of this package is to populate a list of all currently registered species on the ASW website. For ease-of-use, a version of this is stored in the ‘AmphiNom’ package internally, but this may of course be outdated and so to generate your own, up-to-date version run the getTaxonomy() function.The function takes no arguments and essentially iterates through the ASW website, building the URL for each species through a bottom-up approach (i.e. first looking for all orders, then superfamilies, then families, subfamilies, genera and finally species). The resulting table contains 7 columns: one for each taxonomic level (Order through to Species) and a final column with the URL for the ASW website for each species.

Run the getTaxonomy() function (this may take 10 to 15 minutes), or have a look at the internally stored ‘asw_taxonomy’ data file:

Build taxonomy

#asw_taxonomy<-getTaxonomy()
head(asw_taxonomy)
order superfamily family subfamily genus species url
Anura NA Allophrynidae NA Allophryne Allophryne relicta http://research.amnh.org/vz/herpetology/amphibia/Amphibia/Anura/Allophrynidae/Allophryne/Allophryne-relicta
Anura NA Allophrynidae NA Allophryne Allophryne resplendens http://research.amnh.org/vz/herpetology/amphibia/Amphibia/Anura/Allophrynidae/Allophryne/Allophryne-resplendens
Anura NA Allophrynidae NA Allophryne Allophryne ruthveni http://research.amnh.org/vz/herpetology/amphibia/Amphibia/Anura/Allophrynidae/Allophryne/Allophryne-ruthveni
Anura NA Alsodidae NA Alsodes Alsodes australis http://research.amnh.org/vz/herpetology/amphibia/Amphibia/Anura/Alsodidae/Alsodes/Alsodes-australis
Anura NA Alsodidae NA Alsodes Alsodes barrioi http://research.amnh.org/vz/herpetology/amphibia/Amphibia/Anura/Alsodidae/Alsodes/Alsodes-barrioi
Anura NA Alsodidae NA Alsodes Alsodes cantillanensis http://research.amnh.org/vz/herpetology/amphibia/Amphibia/Anura/Alsodidae/Alsodes/Alsodes-cantillanensis

Get some species stats

The first think one might be interested in is to get some basic numbers for listed taxonomic units nested within a particular level.

the basics:

aswStats(asw_taxonomy)
number_of_units
Oders 3
Families 75
Genera 549
Species 7776

Additional arguments can be specified in the aswStats() function to narrow down the search. For example to get information on only a specific Family:

information on a specific group of interest:

aswStats(asw_taxonomy, Family="Plethodontidae")
number_of_units
Oders 1
Families 1
Genera 29
Species 471

This can be applied to any taxonomic level and to make sure everything is working properly (or if the asw_taxonomy data-set is up-to-date), you could double check if this matches the information on the ASW website

taking a closer look:

We can also turn on ‘verbose’ to get a list of all nested units instead of just the summary a table. This is useful for getting a more detailed overview, but also for making graphical representations of this information:

aswStats(asw_taxonomy, Family = "Plethodontidae",verbose = T)
## $Orders
## 
## Caudata 
##     471 
## 
## $Super_families
## < table of extent 0 >
## 
## $Families
## 
## Plethodontidae 
##            471 
## 
## $Sub_families
## 
## Hemidactyliinae  Plethodontinae 
##             371             100 
## 
## $Genera
## 
##          Aneides    Aquiloeurycea     Batrachoseps     Bolitoglossa      Bradytriton 
##                8                6               21              132                1 
## Chiropterotriton     Cryptotriton     Dendrotriton     Desmognathus         Ensatina 
##               16                7                8               24                1 
##          Eurycea     Gyrinophilus    Hemidactylium      Hydromantes         Isthmura 
##               33                4                1                3                7 
##      Ixalotriton         Karsenia       Nototriton       Nyctanolis         Oedipina 
##                2                1               19                1               38 
##       Parvimolge     Phaeognathus        Plethodon    Pseudoeurycea     Pseudotriton 
##                1                1               54               40                3 
##     Speleomantes     Stereochilus          Thorius      Urspelerpes 
##                8                1               29                1 
## 
## $Species
##   [1] "Aquiloeurycea cafetalera"        "Aquiloeurycea cephalica"        
##   [3] "Aquiloeurycea galeanae"          "Aquiloeurycea praecellens"      
##   [5] "Aquiloeurycea quetzalanensis"    "Aquiloeurycea scandens"         
##   [7] "Batrachoseps altasierrae"        "Batrachoseps attenuatus"        
##   [9] "Batrachoseps bramei"             "Batrachoseps campi"             
##  [11] "Batrachoseps diabolicus"         "Batrachoseps gabrieli"          
##  [13] "Batrachoseps gavilanensis"       "Batrachoseps gregarius"         
##  [15] "Batrachoseps incognitus"         "Batrachoseps kawia"             
##  [17] "Batrachoseps luciae"             "Batrachoseps major"             
##  [19] "Batrachoseps minor"              "Batrachoseps nigriventris"      
##  [21] "Batrachoseps pacificus"          "Batrachoseps regius"            
##  [23] "Batrachoseps relictus"           "Batrachoseps robustus"          
##  [25] "Batrachoseps simatus"            "Batrachoseps stebbinsi"         
##  [27] "Batrachoseps wrighti"            "Bolitoglossa adspersa"          
##  [29] "Bolitoglossa alberchi"           "Bolitoglossa altamazonica"      
##  [31] "Bolitoglossa alvaradoi"          "Bolitoglossa anthracina"        
##  [33] "Bolitoglossa aurae"              "Bolitoglossa aureogularis"      
##  [35] "Bolitoglossa biseriata"          "Bolitoglossa borburata"         
##  [37] "Bolitoglossa bramei"             "Bolitoglossa caldwellae"        
##  [39] "Bolitoglossa capitana"           "Bolitoglossa carri"             
##  [41] "Bolitoglossa cataguana"          "Bolitoglossa celaque"           
##  [43] "Bolitoglossa centenorum"         "Bolitoglossa cerroensis"        
##  [45] "Bolitoglossa chica"              "Bolitoglossa chinanteca"        
##  [47] "Bolitoglossa chucantiensis"      "Bolitoglossa colonnea"          
##  [49] "Bolitoglossa compacta"           "Bolitoglossa conanti"           
##  [51] "Bolitoglossa copia"              "Bolitoglossa cuchumatana"       
##  [53] "Bolitoglossa cuna"               "Bolitoglossa daryorum"          
##  [55] "Bolitoglossa decora"             "Bolitoglossa diaphora"          
##  [57] "Bolitoglossa digitigrada"        "Bolitoglossa diminuta"          
##  [59] "Bolitoglossa dofleini"           "Bolitoglossa dunni"             
##  [61] "Bolitoglossa engelhardti"        "Bolitoglossa epimela"           
##  [63] "Bolitoglossa equatoriana"        "Bolitoglossa eremia"            
##  [65] "Bolitoglossa flavimembris"       "Bolitoglossa flaviventris"      
##  [67] "Bolitoglossa franklini"          "Bolitoglossa gomezi"            
##  [69] "Bolitoglossa gracilis"           "Bolitoglossa guaneae"           
##  [71] "Bolitoglossa guaramacalensis"    "Bolitoglossa hartwegi"          
##  [73] "Bolitoglossa heiroreias"         "Bolitoglossa helmrichi"         
##  [75] "Bolitoglossa hermosa"            "Bolitoglossa hiemalis"          
##  [77] "Bolitoglossa huehuetenanguensis" "Bolitoglossa hypacra"           
##  [79] "Bolitoglossa indio"              "Bolitoglossa insularis"         
##  [81] "Bolitoglossa jacksoni"           "Bolitoglossa jugivagans"        
##  [83] "Bolitoglossa kamuk"              "Bolitoglossa kaqchikelorum"     
##  [85] "Bolitoglossa la"                 "Bolitoglossa leandrae"          
##  [87] "Bolitoglossa lignicolor"         "Bolitoglossa lincolni"          
##  [89] "Bolitoglossa longissima"         "Bolitoglossa lozanoi"           
##  [91] "Bolitoglossa macrinii"           "Bolitoglossa madeira"           
##  [93] "Bolitoglossa magnifica"          "Bolitoglossa marmorea"          
##  [95] "Bolitoglossa medemi"             "Bolitoglossa meliana"           
##  [97] "Bolitoglossa mexicana"           "Bolitoglossa minutula"          
##  [99] "Bolitoglossa mombachoensis"      "Bolitoglossa morio"             
## [101] "Bolitoglossa mucuyensis"         "Bolitoglossa mulleri"           
## [103] "Bolitoglossa nicefori"           "Bolitoglossa nigrescens"        
## [105] "Bolitoglossa ninadormida"        "Bolitoglossa nussbaumi"         
## [107] "Bolitoglossa nympha"             "Bolitoglossa oaxacensis"        
## [109] "Bolitoglossa obscura"            "Bolitoglossa occidentalis"      
## [111] "Bolitoglossa odonnelli"          "Bolitoglossa omniumsanctorum"   
## [113] "Bolitoglossa oresbia"            "Bolitoglossa orestes"           
## [115] "Bolitoglossa pacaya"             "Bolitoglossa palmata"           
## [117] "Bolitoglossa pandi"              "Bolitoglossa paraensis"         
## [119] "Bolitoglossa peruviana"          "Bolitoglossa pesrubra"          
## [121] "Bolitoglossa phalarosoma"        "Bolitoglossa platydactyla"      
## [123] "Bolitoglossa porrasorum"         "Bolitoglossa psephena"          
## [125] "Bolitoglossa pygmaea"            "Bolitoglossa ramosi"            
## [127] "Bolitoglossa riletti"            "Bolitoglossa robinsoni"         
## [129] "Bolitoglossa robusta"            "Bolitoglossa rostrata"          
## [131] "Bolitoglossa rufescens"          "Bolitoglossa salvinii"          
## [133] "Bolitoglossa savagei"            "Bolitoglossa schizodactyla"     
## [135] "Bolitoglossa silverstonei"       "Bolitoglossa sima"              
## [137] "Bolitoglossa sombra"             "Bolitoglossa sooyorum"          
## [139] "Bolitoglossa splendida"          "Bolitoglossa striatula"         
## [141] "Bolitoglossa stuarti"            "Bolitoglossa subpalmata"        
## [143] "Bolitoglossa suchitanensis"      "Bolitoglossa synoria"           
## [145] "Bolitoglossa tamaense"           "Bolitoglossa tapajonica"        
## [147] "Bolitoglossa tatamae"            "Bolitoglossa taylori"           
## [149] "Bolitoglossa tenebrosa"          "Bolitoglossa tica"              
## [151] "Bolitoglossa tzultacaj"          "Bolitoglossa vallecula"         
## [153] "Bolitoglossa veracrucis"         "Bolitoglossa walkeri"           
## [155] "Bolitoglossa xibalba"            "Bolitoglossa yariguiensis"      
## [157] "Bolitoglossa yucatana"           "Bolitoglossa zacapensis"        
## [159] "Bolitoglossa zapoteca"           "Bradytriton silus"              
## [161] "Chiropterotriton arboreus"       "Chiropterotriton chico"         
## [163] "Chiropterotriton chiropterus"    "Chiropterotriton chondrostega"  
## [165] "Chiropterotriton cieloensis"     "Chiropterotriton cracens"       
## [167] "Chiropterotriton dimidiatus"     "Chiropterotriton infernalis"    
## [169] "Chiropterotriton lavae"          "Chiropterotriton magnipes"      
## [171] "Chiropterotriton miquihuanus"    "Chiropterotriton mosaueri"      
## [173] "Chiropterotriton multidentatus"  "Chiropterotriton orculus"       
## [175] "Chiropterotriton priscus"        "Chiropterotriton terrestris"    
## [177] "Cryptotriton alvarezdeltoroi"    "Cryptotriton monzoni"           
## [179] "Cryptotriton nasalis"            "Cryptotriton necopinus"         
## [181] "Cryptotriton sierraminensis"     "Cryptotriton veraepacis"        
## [183] "Cryptotriton xucaneborum"        "Dendrotriton bromeliacius"      
## [185] "Dendrotriton chujorum"           "Dendrotriton cuchumatanus"      
## [187] "Dendrotriton kekchiorum"         "Dendrotriton megarhinus"        
## [189] "Dendrotriton rabbi"              "Dendrotriton sanctibarbarus"    
## [191] "Dendrotriton xolocalcae"         "Eurycea aquatica"               
## [193] "Eurycea bislineata"              "Eurycea braggi"                 
## [195] "Eurycea chamberlaini"            "Eurycea chisholmensis"          
## [197] "Eurycea cirrigera"               "Eurycea guttolineata"           
## [199] "Eurycea hillisi"                 "Eurycea junaluska"              
## [201] "Eurycea latitans"                "Eurycea longicauda"             
## [203] "Eurycea lucifuga"                "Eurycea multiplicata"           
## [205] "Eurycea nana"                    "Eurycea naufragia"              
## [207] "Eurycea neotenes"                "Eurycea nerea"                  
## [209] "Eurycea paludicola"              "Eurycea pterophila"             
## [211] "Eurycea quadridigitata"          "Eurycea rathbuni"               
## [213] "Eurycea robusta"                 "Eurycea sosorum"                
## [215] "Eurycea spelaea"                 "Eurycea sphagnicola"            
## [217] "Eurycea subfluvicola"            "Eurycea tonkawae"               
## [219] "Eurycea tridentifera"            "Eurycea troglodytes"            
## [221] "Eurycea tynerensis"              "Eurycea wallacei"               
## [223] "Eurycea waterlooensis"           "Eurycea wilderae"               
## [225] "Gyrinophilus gulolineatus"       "Gyrinophilus palleucus"         
## [227] "Gyrinophilus porphyriticus"      "Gyrinophilus subterraneus"      
## [229] "Hemidactylium scutatum"          "Isthmura bellii"                
## [231] "Isthmura boneti"                 "Isthmura corrugata"             
## [233] "Isthmura gigantea"               "Isthmura maxima"                
## [235] "Isthmura naucampatepetl"         "Isthmura sierraoccidentalis"    
## [237] "Ixalotriton niger"               "Ixalotriton parvus"             
## [239] "Nototriton abscondens"           "Nototriton barbouri"            
## [241] "Nototriton brodiei"              "Nototriton gamezi"              
## [243] "Nototriton guanacaste"           "Nototriton lignicola"           
## [245] "Nototriton limnospectator"       "Nototriton major"               
## [247] "Nototriton matama"               "Nototriton mime"                
## [249] "Nototriton nelsoni"              "Nototriton oreadorum"           
## [251] "Nototriton picadoi"              "Nototriton picucha"             
## [253] "Nototriton richardi"             "Nototriton saslaya"             
## [255] "Nototriton stuarti"              "Nototriton tapanti"             
## [257] "Nototriton tomamorum"            "Nyctanolis pernix"              
## [259] "Oedipina alfaroi"                "Oedipina alleni"                
## [261] "Oedipina altura"                 "Oedipina berlini"               
## [263] "Oedipina capitalina"             "Oedipina carablanca"            
## [265] "Oedipina chortiorum"             "Oedipina collaris"              
## [267] "Oedipina complex"                "Oedipina cyclocauda"            
## [269] "Oedipina elongata"               "Oedipina fortunensis"           
## [271] "Oedipina gephyra"                "Oedipina gracilis"              
## [273] "Oedipina grandis"                "Oedipina ignea"                 
## [275] "Oedipina kasios"                 "Oedipina koehleri"              
## [277] "Oedipina leptopoda"              "Oedipina maritima"              
## [279] "Oedipina motaguae"               "Oedipina nica"                  
## [281] "Oedipina nimaso"                 "Oedipina pacificensis"          
## [283] "Oedipina parvipes"               "Oedipina paucidentata"          
## [285] "Oedipina petiola"                "Oedipina poelzi"                
## [287] "Oedipina pseudouniformis"        "Oedipina quadra"                
## [289] "Oedipina salvadorensis"          "Oedipina savagei"               
## [291] "Oedipina stenopodia"             "Oedipina stuarti"               
## [293] "Oedipina taylori"                "Oedipina tomasi"                
## [295] "Oedipina tzutujilorum"           "Oedipina uniformis"             
## [297] "Parvimolge townsendi"            "Pseudoeurycea ahuitzotl"        
## [299] "Pseudoeurycea altamontana"       "Pseudoeurycea amuzga"           
## [301] "Pseudoeurycea anitae"            "Pseudoeurycea aquatica"         
## [303] "Pseudoeurycea aurantia"          "Pseudoeurycea brunnata"         
## [305] "Pseudoeurycea cochranae"         "Pseudoeurycea conanti"          
## [307] "Pseudoeurycea exspectata"        "Pseudoeurycea firscheini"       
## [309] "Pseudoeurycea gadovii"           "Pseudoeurycea goebeli"          
## [311] "Pseudoeurycea juarezi"           "Pseudoeurycea kuautli"          
## [313] "Pseudoeurycea leprosa"           "Pseudoeurycea lineola"          
## [315] "Pseudoeurycea longicauda"        "Pseudoeurycea lynchi"           
## [317] "Pseudoeurycea melanomolga"       "Pseudoeurycea mixcoatl"         
## [319] "Pseudoeurycea mixteca"           "Pseudoeurycea mystax"           
## [321] "Pseudoeurycea nigromaculata"     "Pseudoeurycea obesa"            
## [323] "Pseudoeurycea orchileucos"       "Pseudoeurycea orchimelas"       
## [325] "Pseudoeurycea papenfussi"        "Pseudoeurycea rex"              
## [327] "Pseudoeurycea robertsi"          "Pseudoeurycea rubrimembris"     
## [329] "Pseudoeurycea ruficauda"         "Pseudoeurycea saltator"         
## [331] "Pseudoeurycea smithi"            "Pseudoeurycea tenchalli"        
## [333] "Pseudoeurycea teotepec"          "Pseudoeurycea tlahcuiloh"       
## [335] "Pseudoeurycea tlilicxitl"        "Pseudoeurycea unguidentis"      
## [337] "Pseudoeurycea werleri"           "Pseudotriton diastictus"        
## [339] "Pseudotriton montanus"           "Pseudotriton ruber"             
## [341] "Stereochilus marginatus"         "Thorius adelos"                 
## [343] "Thorius arboreus"                "Thorius aureus"                 
## [345] "Thorius boreas"                  "Thorius dubitus"                
## [347] "Thorius grandis"                 "Thorius hankeni"                
## [349] "Thorius infernalis"              "Thorius insperatus"             
## [351] "Thorius longicaudus"             "Thorius lunaris"                
## [353] "Thorius macdougalli"             "Thorius magnipes"               
## [355] "Thorius maxillabrochus"          "Thorius minutissimus"           
## [357] "Thorius minydemus"               "Thorius munificus"              
## [359] "Thorius narismagnus"             "Thorius narisovalis"            
## [361] "Thorius omiltemi"                "Thorius papaloae"               
## [363] "Thorius pennatulus"              "Thorius pinicola"               
## [365] "Thorius pulmonaris"              "Thorius schmidti"               
## [367] "Thorius smithi"                  "Thorius spilogaster"            
## [369] "Thorius tlaxiacus"               "Thorius troglodytes"            
## [371] "Urspelerpes brucei"              "Aneides aeneus"                 
## [373] "Aneides ferreus"                 "Aneides flavipunctatus"         
## [375] "Aneides hardii"                  "Aneides iecanus"                
## [377] "Aneides lugubris"                "Aneides niger"                  
## [379] "Aneides vagrans"                 "Desmognathus abditus"           
## [381] "Desmognathus aeneus"             "Desmognathus apalachicolae"     
## [383] "Desmognathus aureatus"           "Desmognathus auriculatus"       
## [385] "Desmognathus brimleyorum"        "Desmognathus carolinensis"      
## [387] "Desmognathus conanti"            "Desmognathus folkertsi"         
## [389] "Desmognathus fuscus"             "Desmognathus imitator"          
## [391] "Desmognathus marmoratus"         "Desmognathus melanius"          
## [393] "Desmognathus monticola"          "Desmognathus ochrophaeus"       
## [395] "Desmognathus ocoee"              "Desmognathus orestes"           
## [397] "Desmognathus organi"             "Desmognathus planiceps"         
## [399] "Desmognathus quadramaculatus"    "Desmognathus santeetlah"        
## [401] "Desmognathus valentinei"         "Desmognathus welteri"           
## [403] "Desmognathus wrighti"            "Ensatina eschscholtzii"         
## [405] "Hydromantes brunus"              "Hydromantes platycephalus"      
## [407] "Hydromantes shastae"             "Karsenia koreana"               
## [409] "Phaeognathus hubrichti"          "Plethodon albagula"             
## [411] "Plethodon amplus"                "Plethodon angusticlavius"       
## [413] "Plethodon asupak"                "Plethodon aureolus"             
## [415] "Plethodon caddoensis"            "Plethodon chattahoochee"        
## [417] "Plethodon cheoah"                "Plethodon chlorobryonis"        
## [419] "Plethodon cinereus"              "Plethodon cylindraceus"         
## [421] "Plethodon dorsalis"              "Plethodon dunni"                
## [423] "Plethodon electromorphus"        "Plethodon elongatus"            
## [425] "Plethodon fourchensis"           "Plethodon glutinosus"           
## [427] "Plethodon grobmani"              "Plethodon hoffmani"             
## [429] "Plethodon hubrichti"             "Plethodon idahoensis"           
## [431] "Plethodon jordani"               "Plethodon kentucki"             
## [433] "Plethodon kiamichi"              "Plethodon kisatchie"            
## [435] "Plethodon larselli"              "Plethodon meridianus"           
## [437] "Plethodon metcalfi"              "Plethodon mississippi"          
## [439] "Plethodon montanus"              "Plethodon neomexicanus"         
## [441] "Plethodon nettingi"              "Plethodon ocmulgee"             
## [443] "Plethodon ouachitae"             "Plethodon petraeus"             
## [445] "Plethodon punctatus"             "Plethodon richmondi"            
## [447] "Plethodon savannah"              "Plethodon sequoyah"             
## [449] "Plethodon serratus"              "Plethodon shenandoah"           
## [451] "Plethodon sherando"              "Plethodon shermani"             
## [453] "Plethodon stormi"                "Plethodon teyahalee"            
## [455] "Plethodon vandykei"              "Plethodon variolatus"           
## [457] "Plethodon vehiculum"             "Plethodon ventralis"            
## [459] "Plethodon virginia"              "Plethodon websteri"             
## [461] "Plethodon wehrlei"               "Plethodon welleri"              
## [463] "Plethodon yonahlossee"           "Speleomantes ambrosii"          
## [465] "Speleomantes flavus"             "Speleomantes genei"             
## [467] "Speleomantes imperialis"         "Speleomantes italicus"          
## [469] "Speleomantes sarrabusensis"      "Speleomantes strinatii"         
## [471] "Speleomantes supramontis"
display this information visualy:
plethodontid.stats<-aswStats(asw_taxonomy, Family = "Plethodontidae",verbose = T)
par(mar=c(1,1,1,1))
pie(plethodontid.stats$Genera[order(plethodontid.stats$Genera, decreasing = T)], cex=0.5, main = "No. of Species per Genus", col = rainbow(length(plethodontid.stats$Genera),s = 0.5), clockwise = T, border = NA)

Compile Synonym list

Hopefully the most useful data-set this package generates is an up-to-date list of all possible synonyms per species, to facilitate matching data sets that might be using different names for the same species. As with the taxonomic table, a version of the current synonym list is stored in the AmphiNom package internally. This may of course be outdated and so to generate your own, up-to-date version run the getSynonym() function! The function takes the getTaxonomy() output as a reference and then looks through every species webpage to tabulate all listed synonyms. It is therefore important that you specify a “asw_taxonomy” object that is more up-to-date than the one stored in the package (if none is specified, AmphiNom will use the internal version). Generating a full list for all amphibian species can take a long, long time (up to an hour). More realistically, you may only be interested in a specific taxonomic group and so you can narrow down your search as in this example here:

Harvest synonyms

agalychnis_synonyms<-getSynonyms(Genus="Agalychnis")
head(agalychnis_synonyms,n = 15)
species synonyms
Agalychnis annae Agalychnis annae
Agalychnis annae Phyllomedusa annae
Agalychnis buckleyi Agalychnis buckleyi
Agalychnis buckleyi Hyla (Hylella) porifera
Agalychnis buckleyi Hyla porifera
Agalychnis buckleyi Hylella porifera
Agalychnis buckleyi Hylomantis buckleyi
Agalychnis buckleyi Phyllomedusa (Phyllomedusa) loris
Agalychnis buckleyi Phyllomedusa buckleyi
Agalychnis buckleyi Phyllomedusa loris
Agalychnis callidryas Agalychnis callidryas
Agalychnis callidryas Agalychnis callidryas callidryas
Agalychnis callidryas Agalychnis callidryas taylori
Agalychnis callidryas Agalychnis helenae
Agalychnis callidryas Hyla callidryas

The output is a table with two columns listing species names and all available synonyms (here showing the first 15 entries). We could summarize this information like so:

how many synonyms per species are there?

summary(agalychnis_synonyms$species)
x
Agalychnis annae 2
Agalychnis buckleyi 8
Agalychnis callidryas 9
Agalychnis dacnicolor 6
Agalychnis danieli 3
Agalychnis hulli 3
Agalychnis lemur 4
Agalychnis medinae 4
Agalychnis moreletii 8
Agalychnis psilopygion 3
Agalychnis saltator 2
Agalychnis spurrelli 4
Agalychnis terranova 1

Syncing Datasets

Having now prepared the data-set of amphibian synonyms, the main objective of this package is to facilitate the unification of naming systems, i.e. matching a list of names to the synonym table and suggesting the currently advised nomenclature by ASW. As an example, lets look at how the names on Amphibia Web differ to those on ASW. Their most current taxonomy can be found here, and can be read into R directly like so:

amphweb_latest<-read.csv("https://amphibiaweb.org/amphib_names.txt", sep="\t")

For this tutorial however, we will use a version stored internally in AmphiNom as “amphweb” (again,might be out of date so be careful).

load the amphibia web taxonomy:

head(amphweb)
order family subfamily genus subgenus species common_name gaa_name synonymies itis_names iucn isocc intro_isocc aweb_uid uri.guid taxon_notes_public
Anura Allophrynidae Allophryne relicta BR 8097 http://amphibiaweb.org/species/8097
Anura Allophrynidae Allophryne resplendens PE 7786 http://amphibiaweb.org/species/7786
Anura Allophrynidae Allophryne ruthveni Tukeit-Hill Frog Allophryne ruthveni Sphaenorhynchus seabrai, Sphoenohyla seabrai Least Concern (LC) VE,SR,GY,GF,BR 2059 http://amphibiaweb.org/species/2059
Anura Alsodidae Alsodes australis Alsodes australis Data Deficient (DD) CL,AR 5715 http://amphibiaweb.org/species/5715
Anura Alsodidae Alsodes barrioi Alsodes barrioi Vulnerable (VU) CL 2552 http://amphibiaweb.org/species/2552
Anura Alsodidae Alsodes cantillanensis CL 8311 http://amphibiaweb.org/species/8311

Query a list of taxa against the synonym table

For this example, lets look only at the genus Hyla that due to a recent revision by Duellman et al. 2016, Zootaxa has experiences name changes that have been implemented in ASW, but not AW:

amphweb.hyla<-amphweb[amphweb$genus=="Hyla",]

and lets query that list, using the synonym list created with getSynonyms(), here, using the version stored internally:

hyla.names<-aswSync(query=paste(amphweb.hyla$genus, amphweb.hyla$species),asw = asw_synonyms)
head(hyla.names, n=15)
query stripped status warnings ASW_names
Hyla andersonii hyla_andersonii updated NA Dryophytes andersonii
Hyla annectans hyla_annectans up_to_date NA Hyla annectans
Hyla arborea hyla_arborea up_to_date NA Hyla arborea
Hyla arboricola hyla_arboricola updated NA Dryophytes arboricola
Hyla arenicolor hyla_arenicolor updated NA Dryophytes arenicolor
Hyla avivoca hyla_avivoca updated NA Dryophytes avivoca
Hyla bocourti hyla_bocourti updated NA Dryophytes bocourti
Hyla chinensis hyla_chinensis up_to_date NA Hyla chinensis
Hyla chrysoscelis hyla_chrysoscelis updated NA Dryophytes chrysoscelis
Hyla cinerea hyla_cinerea updated NA Dryophytes cinereus
Hyla euphorbiacea hyla_euphorbiacea updated NA Dryophytes euphorbiaceus
Hyla eximia hyla_eximia updated NA Dryophytes eximius
Hyla felixarabica hyla_felixarabica up_to_date NA Hyla felixarabica
Hyla femoralis hyla_femoralis updated NA Dryophytes femoralis
Hyla gratiosa hyla_gratiosa updated NA Dryophytes gratiosus

The output here is a table listing the user-specified query, a ‘stripped’ version of that input that tries to deal with any differences such as capitalization or underscores etc. that might cause issues, a status column listing whether any names match and if not, whether they could be updated to ASW names with no problem, or whether names were not found as listed synonyms or whether names are ambiguous and could refer to more than one species. A specific warning column is also included that, for now, only warns you if the resulting name changes result in duplicates. The final column lists the suggested ASW names.

Various additional arguments can be invoked, for example, whether ambiguities should be sorted out on the fly with the user deciding on which species is referred to on the go, or for example whether to pass forward the original query names if no match is found in the synonym list.

Are my names up-to-date?

instead of looking through the output table of aswSync(), we can also print out a report using the synonymReport() function.

the basics:

synonymReport(hyla.names)
number_of_units
queries 35
names_up_to_date 15
names_successfully_updated 20
names_not_found 0
ambiguities 0
duplicates_produced 4

this tells us that less than half of the names are up to date, and AmphiNom could update quite a few on its own without any complications. AmphiNom found all names on ASW and there were no issues with ambiguities (queries which mach synonyms belonging to more than one species), but the automatic updating has resulted in 4 cases where names are not unique anymore! These need to be checked carefully and most likely are units that used to be distinct and are now synonyms. We can get more of an idea of what has happened here by asking AmphiNom to spit out a bit more information:

the details:

synonymReport(hyla.names, verbose=T)
## $names_not_found
## character(0)
## 
## $query
##  [1] "Hyla andersonii"     "Hyla arboricola"     "Hyla arenicolor"     "Hyla avivoca"       
##  [5] "Hyla bocourti"       "Hyla chrysoscelis"   "Hyla cinerea"        "Hyla euphorbiacea"  
##  [9] "Hyla eximia"         "Hyla femoralis"      "Hyla gratiosa"       "Hyla heinzsteinitzi"
## [13] "Hyla immaculata"     "Hyla japonica"       "Hyla plicata"        "Hyla squirella"     
## [17] "Hyla suweonensis"    "Hyla versicolor"     "Hyla walkeri"        "Hyla wrightorum"    
## 
## $ASW_names
##  [1] "Dryophytes andersonii"    "Dryophytes arboricola"    "Dryophytes arenicolor"   
##  [4] "Dryophytes avivoca"       "Dryophytes bocourti"      "Dryophytes chrysoscelis" 
##  [7] "Dryophytes cinereus"      "Dryophytes euphorbiaceus" "Dryophytes eximius"      
## [10] "Dryophytes femoralis"     "Dryophytes gratiosus"     "Dryophytes japonicus"    
## [13] "Dryophytes immaculatus"   "Dryophytes japonicus"     "Dryophytes plicatus"     
## [16] "Dryophytes squirellus"    "Dryophytes immaculatus"   "Dryophytes versicolor"   
## [19] "Dryophytes walkeri"       "Dryophytes wrightorum"   
## 
## $ambiguities
## $ambiguities$query
## character(0)
## 
## $ambiguities$ASW_names
## character(0)
## 
## 
## $duplicated
## $duplicated$query
## [1] "Hyla heinzsteinitzi" "Hyla immaculata"     "Hyla japonica"       "Hyla suweonensis"   
## 
## $duplicated$ASW_names
## [1] "Dryophytes japonicus"   "Dryophytes immaculatus" "Dryophytes japonicus"  
## [4] "Dryophytes immaculatus"

At just a glance, we can already see that H. heinzsteinitzi has been sunk into D. japonicus and H. suweonensis into D. immaculatus and so, these two species are no longer valid according to ASW.

Of course all of this can also be done manually from the aswSync() output:

check which names are ambiguous (in this case 0):

hyla.names[hyla.names$status=="ambiguous",]

check which names are now duplicated:

hyla.names[hyla.names$warnings %in% "duplicated",]
query stripped status warnings ASW_names
17 Hyla heinzsteinitzi hyla_heinzsteinitzi updated duplicated Dryophytes japonicus
18 Hyla immaculata hyla_immaculata updated duplicated Dryophytes immaculatus
20 Hyla japonica hyla_japonica updated duplicated Dryophytes japonicus
30 Hyla suweonensis hyla_suweonensis updated duplicated Dryophytes immaculatus

The decision can now be made how to deal with these duplicates, or should there be any ambiguities, after which point, the ASW names can simply be adopted for use in the original data-set and voila!

amphweb.hyla$ASW_names<-hyla.names$ASW_names