| Title: | An Interface to the Reptile Database |
|---|---|
| Description: | Provides tools to retrieve and summarize taxonomic information and synonymy data for reptile species using data scraped from The Reptile Database website (<https://reptile-database.reptarium.cz/>). Outputs include clean and structured data frames useful for ecological, evolutionary, and conservation research. |
| Authors: | João Paulo dos Santos Vieira-Alencar [aut, cre] (ORCID: <https://orcid.org/0000-0001-6894-6773>), Christoph Liedtke [aut] (ORCID: <https://orcid.org/0000-0002-6221-8043>) |
| Maintainer: | João Paulo dos Santos Vieira-Alencar <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 1.1.1 |
| Built: | 2026-05-26 06:26:49 UTC |
| Source: | https://github.com/joao-svalencar/letsrept |
This dataset contains the valid names and url addresses for all reptile species cataloged in The Reptile Database.
allReptilesallReptiles
A dataframe (download: March 27th, 2025) with 12568 rows and 8 variables:
A species current order
A species current suborder
A species current family
A species current genus
A character vector with known current valid name for all reptile species cataloged in The Reptile Database website
A species description year
The authors that described the species under the current valid name
A character column with the respective url to access all reptile species cataloged in The Reptile Database website information
The data was sampled from The Reptile Database website https://reptile-database.reptarium.cz using function letsRept::reptSpecies() with the url obtained from an 'Advanced search' set to exclude all reptile species described to the fictional planet Arrakis (-Arrakis).
This dataset contains the valid names and respective listed synonyms for all reptile species cataloged in The Reptile Database.
allSynonymsallSynonyms
A dataframe with 55,130 rows and 2 variables:
A character vector with known current valid name for all reptile species cataloged in The Reptile Database website (download: March 27th, 2026)
A character column with the respective synonyms for all reptile species cataloged in The Reptile Database website information (download: March 27th, 2026)
The data was sampled from The Reptile Database website https://reptile-database.reptarium.cz using function letsRept::reptSynonyms(letsRept::allReptiles)
This dataset contains the valid names and respective listed synonyms for all reptile species cataloged in The Reptile Database.
allSynonymsRefallSynonymsRef
A dataframe with 112,626 rows and 3 variables:
A character vector with known current valid name for all reptile species cataloged in The Reptile Database website (download: March 27th, 2026)
A character column with the respective synonyms for all reptile species cataloged in The Reptile Database website information (download: March 27th, 2026)
A charater column with the synonyms and respective references that used it
The data was sampled from The Reptile Database website https://reptile-database.reptarium.cz using function letsRept::reptSynonyms(letsRept::allReptiles)
This dataset contains Table S3, the georeferenced type localities, from the supplementary material provided by Nogueira et al., (2019)
br_snakes_atlasbr_snakes_atlas
A dataframe with 411 rows and 3 colums:
A character vector with known current valid name for all reptile species cataloged in The Reptile Database website
Latitude coordinates in decimal degrees
Longitude coordinates in decimal degrees
Nogueira et al. (2019) supplementary material, Table S3
Nogueira, C. C., Argôlo, A. J. S., Arzamendia, V., Azevedo, J. A. R., Barbo, F. E., Bérnils, R. S., … & Martins, M. (2019). Atlas of Brazilian Snakes: Verified Point-Locality Maps to Mitigate the Wallacean Shortfall in a Megadiverse Snake Fauna. South American Journal of Herpetology, 14(sp1), 1–274. http://dx.doi.org/10.2994/sajh-d-19-00120.1
This dataset is a version of ReptTraits (Oskyrko et al. 2024) with two additional columns.
letsRept_ReptTraitsletsRept_ReptTraits
A dataframe with 12,060 rows and 50 variables. The first three columns are:
Species name as in the original ReptTraits database
Current valid name according to the May 2025 version of the Reptile Database
Status from reptSync and reptSplitCheck. Additional status are: "extinct" and "manual_fix"
The original data source is from Oskyrko et al. (2024); The new nomenclature in the RDB column was collected from the Reptile Database website https://reptile-database.reptarium.cz using functions reptSync and reptSplitCheck
This dataset is a version of SquamBase (Meiri, 2024) with two additional columns.
letsRept_SquamBaseletsRept_SquamBase
A dataframe with 11,744 rows and 86 variables. The first three columns are:
Species name as in the original SquamBase database
Current valid name according to the May 2025 version of the Reptile Database
Status from reptSync and reptSplitCheck. Additional status are: "extinct" and "manual_fix"
The original data source is from Meiri (2024); The new nomenclature in the RDB column was collected from the Reptile Database website https://reptile-database.reptarium.cz using functions reptSync and reptSplitCheck
Creates a search URL for retrieving species lists from RDB based on multiple filters.
This URL is primarily used by reptSpecies, but can also be used manually for advanced queries.
If a synonym is provided and can be unambiguously matched to a valid species, the function also prints detailed information for that species.
reptAdvancedSearch( higher = NULL, genus = NULL, year = NULL, common_name = NULL, synonym = NULL, location = NULL, verbose = TRUE, exact = FALSE )reptAdvancedSearch( higher = NULL, genus = NULL, year = NULL, common_name = NULL, synonym = NULL, location = NULL, verbose = TRUE, exact = FALSE )
higher |
Character string. A higher-level reptile taxon above genus (e.g., |
genus |
Character string. The current valid name of a reptile genus (e.g., |
year |
Character string. Filters the search by year of species description (e.g., |
common_name |
Character string. A common name potentially linked to a species or genus (e.g., |
synonym |
Character string. A name potentially regarded as a synonym of a valid taxon (e.g., |
location |
Character string. A country or region name used to list species expected to occur there. |
verbose |
Logical. To be passed to |
exact |
Logical. To return outputs that matches exactly the searched term (e.g., avoid returning genus "Boaedon" when searching for "Boa"). Default is |
A character string containing the URL to be used in reptSpecies.
If a provided synonym corresponds unambiguously to a valid species, the function also prints species information retrieved from RDB to the console.
The argument exact does not work properly for searches using logical arguments (e.g. AND/OR).
If you want to force an exact match (e.g., "Boa" as a phrase) with multiple terms (e.g., "Boa OR Apostolepis"),
you must manually include quotes in the input string, e.g., "\"Boa\" OR Apostolepis".
Logical operators (e.g., OR, AND) are supported and will be properly formatted in the search.
To exclude terms, use a leading minus sign (e.g., higher = "-snakes") following RDB's query syntax, instead of using NOT.
When a synonym is matched to a single valid species, the function will also display the species' full information as a side effect.
reptAdvancedSearch(higher = "snakes", year = "2010", location = "Brazil") reptAdvancedSearch(year = "2010 OR 2011 OR 2012") reptAdvancedSearch(genus = "Apostolepis OR \"Boa\" OR Atractus") #quotes "Boa"reptAdvancedSearch(higher = "snakes", year = "2010", location = "Brazil") reptAdvancedSearch(year = "2010 OR 2011 OR 2012") reptAdvancedSearch(genus = "Apostolepis OR \"Boa\" OR Atractus") #quotes "Boa"
This function compares a list of species (x) with another list (y), typically from the Reptile Database (RDB).
If y is not provided, it defaults to using the internal object allReptiles, extracted from RDB (version: May, 2025).
The function returns species from xthat are either unmatched ("review") or matched with y or with allReptiles, if y is NULL.
If y is provided and any species from x is a valid name according to RDB but is absent from y, it receives the status absent
reptCompare(x = NULL, y = NULL, filter = NULL, compareDataset = FALSE)reptCompare(x = NULL, y = NULL, filter = NULL, compareDataset = FALSE)
x |
A character vector or a data frame containing a column named |
y |
Optional. A character vector or a data frame containing a column named |
filter |
Optional. A character string or a vector of characters.
If |
compareDataset |
Logical. If TRUE, assumes all input names are up-to-date and compares the input list with the reference database to identify any missing species. |
A character vector (if filter is "review", "matched" or "absent), or a data frame with columns:
Species names from x
Comparison result: "review", "matched" or "absent"
If compareDataset = TRUE, then the function returns a vector of species from y that is absent from x.
my_species <- data.frame(species = c("Boa constrictor", "Pantherophis guttatus", "Fake species")) reptCompare(my_species) reptCompare(my_species, filter = "review") reptCompare(my_species, filter = "matched")my_species <- data.frame(species = c("Boa constrictor", "Pantherophis guttatus", "Fake species")) reptCompare(my_species) reptCompare(my_species, filter = "review") reptCompare(my_species, filter = "matched")
Extract references from the Reptile Database
reptRefs(x = NULL, getLink = TRUE)reptRefs(x = NULL, getLink = TRUE)
x |
A binomial species name (e.g., "Boa constrictor"). |
getLink |
Logical; if TRUE, also returns associated links to references. |
A character vector of references (if getLink = FALSE), or a data frame with columns reference and link.
df <- reptRefs("Apostolepis adhara")df <- reptRefs("Apostolepis adhara")
Queries The Reptile Database (RDB) for information about a single reptile species using its binomial name.
reptSearch(binomial=NULL, getRef=FALSE, verbose=TRUE)reptSearch(binomial=NULL, getRef=FALSE, verbose=TRUE)
binomial |
Character string. The valid binomial name of a reptile species (e.g., "Boa constrictor"). |
getRef |
Logical. If |
verbose |
Logical. If |
A list containing species information retrieved from The Reptile Database. If getRef = TRUE, returns references related to the species.
Uetz, P., Freed, P., & Hošek, J. (Eds.). (2025). The Reptile Database. Retrieved from http://www.reptile-database.org
reptSynonyms, reptSpecies for related species data functions.
reptSearch("Boa constrictor") reptSearch("Boa constrictor", getRef = TRUE)reptSearch("Boa constrictor") reptSearch("Boa constrictor", getRef = TRUE)
Retrieves a list of reptile species from The Reptile Database (RDB) based on a search URL, and optionally returns detailed taxonomic information for each species. This function can also save progress to disk during sampling and extract species-specific URLs for further use.
reptSpecies( url = NULL, showProgress = TRUE, dataList = NULL, taxonomicInfo = FALSE, fullHigher = FALSE, getLink = FALSE, cores = 1 )reptSpecies( url = NULL, showProgress = TRUE, dataList = NULL, taxonomicInfo = FALSE, fullHigher = FALSE, getLink = FALSE, cores = 1 )
url |
Character string. A search URL generated via an advanced search on the RDB website or with |
showProgress |
Logical. If |
dataList |
Optional. A data frame with columns |
taxonomicInfo |
Logical. If |
fullHigher |
Logical. If |
getLink |
Logical. If |
cores |
Integer. Number of CPU cores to use for parallel processing. Default is |
If taxonomicInfo = FALSE (default), returns a character vector of species names.
If taxonomicInfo = TRUE, returns a data frame with columns:
order, suborder (if available), family, genus, species, author, and year.
If fullHigher = TRUE, includes an additional column with the full higher taxa classification.
If getLink = TRUE, includes a column with the URL for each species’ page on RDB.
reptAdvancedSearch, reptSynonyms, reptSearch
boa <- reptSpecies(reptAdvancedSearch(genus = "Boa"), taxonomicInfo = TRUE, cores = 2)boa <- reptSpecies(reptAdvancedSearch(genus = "Boa"), taxonomicInfo = TRUE, cores = 2)
Check for potential taxonomic splits in a query
reptSplitCheck( x, pubDate = NULL, includeAll = FALSE, verbose = TRUE, cores = 1, showProgress = TRUE, exact = FALSE )reptSplitCheck( x, pubDate = NULL, includeAll = FALSE, verbose = TRUE, cores = 1, showProgress = TRUE, exact = FALSE )
x |
A character vector of species names to check. Usually from a database. |
pubDate |
Integer. An year (e.g., 2019) used as a reference date from when to check potential taxonomic split |
includeAll |
Logical; If |
verbose |
Logical; If |
cores |
Integer. Number of CPU cores to use for parallel processing. Default is |
showProgress |
Logical. If |
exact |
Logical. Will search queried names for exact matches only (e.g., does not retrieve "Tantilla cf. melanocephala" when searching for "Tantilla melanocephala"). Default is |
A data frame with the following columns:
query: the original input names.
RDB: the best-matching valid names according to The Reptile Database.
status: a status label indicating the result of the match ("check_split", "up_to_date", "not_found", or "failed").
query <- c( "Atractus dapsilis", "Atractus trefauti", "Atractus snethlageae", "Tantilla melanocephala", "Oxybelis aeneus", "Oxybelis rutherfordi", "Vieira-Alencar authoristicus", "Oxybelis aeneus", "Bothrops pauloensis") result <- reptSplitCheck(x=query, pubDate = 2019, cores = 2, showProgress = FALSE) result <- reptSplitCheck(x=query, pubDate = 2019, cores = 2, showProgress = FALSE, includeAll = TRUE)query <- c( "Atractus dapsilis", "Atractus trefauti", "Atractus snethlageae", "Tantilla melanocephala", "Oxybelis aeneus", "Oxybelis rutherfordi", "Vieira-Alencar authoristicus", "Oxybelis aeneus", "Bothrops pauloensis") result <- reptSplitCheck(x=query, pubDate = 2019, cores = 2, showProgress = FALSE) result <- reptSplitCheck(x=query, pubDate = 2019, cores = 2, showProgress = FALSE, includeAll = TRUE)
This function summarizes the taxonomic content of a species list, typically an object created with reptSpecies with higher taxa information.
If no object is provided it summarizes the internal dataset allReptiles.
reptStats( x = letsRept::allReptiles, verbose = FALSE, order = NULL, suborder = NULL, family = NULL, genus = NULL )reptStats( x = letsRept::allReptiles, verbose = FALSE, order = NULL, suborder = NULL, family = NULL, genus = NULL )
x |
A data frame containing reptile taxonomy data. Defaults to the internal dataset |
verbose |
Logical. If |
order |
Optional. A character string specifying a taxonomic order to filter by (e.g., |
suborder |
Optional. A character string specifying a taxonomic suborder to filter by (e.g., |
family |
Optional. A character string specifying a family to filter by (e.g., |
genus |
Optional. A character string specifying a genus to filter by (e.g., |
The output can be either a compact table with taxonomic unit counts or a verbose list of names within each rank.
Optional arguments allow the user to filter the dataset by specific taxonomic levels (e.g., order, suborder, family, genus) before summarizing.
Either a named list of taxonomic units (verbose = TRUE) or a data frame with taxonomic ranks and the number of units per rank (verbose = FALSE).
# Basic usage with default dataset reptStats() # Verbose summary listing elements in each rank reptStats(verbose = TRUE) # Filter by family and return summary table reptStats(family = "Elapidae") # Combine filters and return list reptStats(suborder = "Serpentes", verbose = TRUE)# Basic usage with default dataset reptStats() # Verbose summary listing elements in each rank reptStats(verbose = TRUE) # Filter by family and return summary table reptStats(family = "Elapidae") # Combine filters and return list reptStats(suborder = "Serpentes", verbose = TRUE)
Queries a list of species names through reptSearch() and returns a data frame with the currently valid names and taxonomic status for each input.
reptSync( x, solveAmbiguity = TRUE, cores = 1, showProgress = TRUE, getLink = FALSE )reptSync( x, solveAmbiguity = TRUE, cores = 1, showProgress = TRUE, getLink = FALSE )
x |
A character vector of taxon names to be matched (e.g., species lists, phylogenetic tip labels, or trait table entries). |
solveAmbiguity |
Logical. If |
cores |
Integer. Number of CPU cores to use for parallel processing. Default is |
showProgress |
Logical. If |
getLink |
Logical. If |
A data frame with the following columns:
query: the original input names.
RDB: the best-matching valid names according to The Reptile Database.
status: a status label indicating the result of the match ("up_to_date", "updated", "updated_typo", "ambiguous", "merge", or "not_found").
url: Optional, if getLink = TRUE returns the URL of the species page retrieved for each match, or a list of possible matches if ambiguous.
reptSync() does not make authoritative taxonomic decisions. It matches input names against currently accepted names in The Reptile Database (RDB).
A name marked as "up_to_date" may still refer to a taxon that has been split, and thus may not reflect the most recent population-level taxonomy.
For ambiguous names, the url field may contain multiple links corresponding to all valid species to which the queried name is considered a synonym.
See package vignettes for more details.
Liedtke, H. C. (2018). AmphiNom: an amphibian systematics tool. Systematics and Biodiversity, 17(1), 1–6. https://doi.org/10.1080/14772000.2018.1518935
query <- c("Vieira-Alencar authoristicus", "Boa atlantica", "Boa diviniloqua", "Boa imperator") reptSync(x = query, cores = 2)query <- c("Vieira-Alencar authoristicus", "Boa atlantica", "Boa diviniloqua", "Boa imperator") reptSync(x = query, cores = 2)
Retrieves a data frame containing the current valid names of reptile species along with all their recognized synonyms, as listed in The Reptile Database (RDB). Optionally, the references citing each synonym can also be included.
reptSynonyms(x, getRef = FALSE, showProgress = TRUE, cores = 1)reptSynonyms(x, getRef = FALSE, showProgress = TRUE, cores = 1)
x |
A character string with a species binomial or a data frame with columns |
getRef |
Logical. If |
showProgress |
Logical. If |
cores |
Integer. Number of CPU cores to use for parallel processing. Default is |
A data frame with columns:
species: The valid species name according to RDB.
synonym: Recognized synonyms and chresonyms for the species. Chresonyms are usually separated from authors with an emdash.
reference (optional): If getRef = TRUE, the citation where the synonym was reported.
Uetz, P., Freed, P., Aguilar, R., Reyes, F., Kudera, J., & Hošek, J. (eds.) (2025). The Reptile Database. Retrieved from http://www.reptile-database.org
reptSpecies, reptAdvancedSearch
# Filter species belonging to genus Boa boa <- letsRept::allReptiles[grep("^Boa\\s", letsRept::allReptiles$species), ] # Retrieve synonyms (without references) boa_syn <- reptSynonyms(boa, getRef = FALSE, cores = 2) Bconstrictor_syn <- reptSynonyms(x = "Boa constrictor")# Filter species belonging to genus Boa boa <- letsRept::allReptiles[grep("^Boa\\s", letsRept::allReptiles$species), ] # Retrieve synonyms (without references) boa_syn <- reptSynonyms(boa, getRef = FALSE, cores = 2) Bconstrictor_syn <- reptSynonyms(x = "Boa constrictor")
Prints the data frame derived from reptSync or reptSplitCheck in a tidy way.
Optionally, it filters the data frame for species with unresolved nomenclature only.
reptTidySyn(df, filter = NULL)reptTidySyn(df, filter = NULL)
df |
The data frame derivated from |
filter |
Logical. If |
Invisibly returns NULL. Used for side-effect printing only.
df <- data.frame( species = c("Genus epithet 1", "Genus epithet 2", "Genus epithet 3", "Genus epithet 4", "Genus epithet 5"), synonyms = c("Genus epithet 1.1; Genus epithet 1.2", "Genus epithet 2", "Genus epithet 3", "Not found", "Genus epithet 5.1; Genus epithet 5.2; Genus epithet 5.3"), status = c("ambiguous", "updated", "up_to_date", "not_found", "ambiguous"), stringsAsFactors = FALSE ) reptTidySyn(df, filter = c("ambiguous", "not_found"))df <- data.frame( species = c("Genus epithet 1", "Genus epithet 2", "Genus epithet 3", "Genus epithet 4", "Genus epithet 5"), synonyms = c("Genus epithet 1.1; Genus epithet 1.2", "Genus epithet 2", "Genus epithet 3", "Not found", "Genus epithet 5.1; Genus epithet 5.2; Genus epithet 5.3"), status = c("ambiguous", "updated", "up_to_date", "not_found", "ambiguous"), stringsAsFactors = FALSE ) reptTidySyn(df, filter = c("ambiguous", "not_found"))