taxize (version 0.9.91)

get_colid: Get the Catalogue of Life ID from taxonomic names

Description

Get the Catalogue of Life ID from taxonomic names

Usage

get_colid(sciname, ask = TRUE, messages = TRUE, rows = NA,
  kingdom = NULL, phylum = NULL, class = NULL, order = NULL,
  family = NULL, rank = NULL, status = NULL, ...)

as.colid(x, check = TRUE)

# S3 method for colid as.colid(x, check = TRUE)

# S3 method for character as.colid(x, check = TRUE)

# S3 method for list as.colid(x, check = TRUE)

# S3 method for data.frame as.colid(x, check = TRUE)

# S3 method for colid as.data.frame(x, ...)

get_colid_(sciname, messages = TRUE, rows = NA)

Arguments

sciname

character; scientific name. Or, a taxon_state object (see taxon-state)

ask

logical; should get_colid be run in interactive mode? If TRUE and more than one ID is found for the species, the user is asked for input. If FALSE NA is returned for multiple matches.

messages

logical; If TRUE the actual taxon queried is printed on the console.

rows

numeric; Any number from 1 to infinity. If the default NA, all rows are considered. Note that this function still only gives back a colid class object with one to many identifiers. See get_colid_() to get back all, or a subset, of the raw data that you are presented during the ask process.

kingdom

(character) A kingdom name. Optional. See Filtering below.

phylum

(character) A phylum (aka division) name. Optional. See Filtering below.

class

(character) A class name. Optional. See Filtering below.

order

(character) An order name. Optional. See Filtering below.

family

(character) A family name. Optional. See Filtering below.

rank

(character) A taxonomic rank name. See rank_ref() for possible options. Though note that some data sources use atypical ranks, so inspect the data itself for options. Optional. See Filtering below.

status

(character) A name status, e.g., "accepted name", "misapplied name", "synonym", "ambiguous synonym", "common name", and more. Optional. See Filtering below.

...

Ignored

x

Input to as.colid

check

logical; Check if ID matches any existing on the DB, only used in as.colid()

Value

A vector of taxonomic identifiers as an S3 class. If a taxon is not found an NA is given. If more than one identifier is found the function asks for user input if ask = TRUE, otherwise returns NA. If ask=FALSE and rows does not equal NA, then a data.frame is given back, but not of the uid class, which you can't pass on to other functions as you normally can.

See get_id_details for further details including attributes and exceptions

Number of results

We didn't used to, but as of taxize version v0.9.6 we paginate through results for any queries so that you get all results. For example, COL allows only 50 records per request for full responses that we request, so if a query results in 100 records, we make two requests to get all the data.

Filtering

The parameters kingdom, phylum, class, order, family, rank, and status are not used in the search to the data provider, but are used in filtering the data down to a subset that is closer to the target you want. For all these parameters, you can use regex strings since we use grep() internally to match. Filtering narrows down to the set that matches your query, and removes the rest.

Rate limiting

COL introduced rate limiting recently (writing this on 2019-11-14), but we've no information on what the rate limits are. If you do run into this you'll see an error like "Error: Too Many Requests (HTTP 429)", you'll need to time your requests to avoid the rate limiting, for example, by putting Sys.sleep() in between simultaneous requests.

See Also

classification()

Other taxonomic-ids: get_boldid, get_eolid, get_gbifid, get_ids, get_iucn, get_natservid, get_nbnid, get_pow, get_tolid, get_tpsid, get_tsn, get_uid, get_wiki, get_wormsid

Examples

Run this code
# NOT RUN {
get_colid(sciname='Poa annua')
get_colid(sciname='Pinus contorta')
get_colid(sciname='Puma concolor')
get_colid(sciname="Abudefduf saxatilis")

get_colid(c("Poa annua", "Pinus contorta"))

# specify rows to limit choices available
get_colid(sciname='Poa annua')
get_colid(sciname='Poa annua', rows=1)
get_colid(sciname='Poa annua', rows=2)
get_colid(sciname='Poa annua', rows=1:2)

# When not found
get_colid(sciname="uaudnadndj")
get_colid(c("Chironomus riparius", "uaudnadndj"))

# Narrow down results to a division or rank, or both
## Satyrium example
### Results w/o narrowing
get_colid("Satyrium")
### w/ division
get_colid("Satyrium", kingdom = "Plantae")
get_colid("Satyrium", kingdom = "Animalia")

## Rank example
get_colid("Poa")
get_colid("Poa", kingdom = "Plantae")
get_colid("Poa", kingdom = "Animalia")

# Fuzzy filter on any filtering fields
## uses grep on the inside
get_colid("Satyrium", kingdom = "p")

# Convert a uid without class information to a uid class
as.colid(get_colid("Chironomus riparius")) # already a uid, returns the same
as.colid(get_colid(c("Chironomus riparius","Pinus contorta"))) # same
as.colid("714831352ad94741e4321eccdeb29f58") # character
# character vector, length > 1
as.colid(c("714831352ad94741e4321eccdeb29f58",
  "3b35900f74ff6e4b073ddb95c32b1f8d"))
# list, either numeric or character
as.colid(list("714831352ad94741e4321eccdeb29f58",
  "3b35900f74ff6e4b073ddb95c32b1f8d"))
## dont check, much faster
as.colid("714831352ad94741e4321eccdeb29f58", check=FALSE)
as.colid(c("714831352ad94741e4321eccdeb29f58",
 "3b35900f74ff6e4b073ddb95c32b1f8d"),
 check=FALSE)
as.colid(list("714831352ad94741e4321eccdeb29f58",
 "3b35900f74ff6e4b073ddb95c32b1f8d"),
 check=FALSE)

(out <- as.colid(c("714831352ad94741e4321eccdeb29f58",
 "3b35900f74ff6e4b073ddb95c32b1f8d")))
data.frame(out)
as.colid( data.frame(out) )

# Get all data back
get_colid_("Poa annua")
get_colid_("Poa annua", rows=2)
get_colid_("Poa annua", rows=1:2)
get_colid_(c("asdfadfasd","Pinus contorta"))

get_colid(sciname="Andropadus nigriceps fusciceps", rows=1)

# use curl options
get_colid("Quercus douglasii", verbose = TRUE)
# }

Run the code above in your browser using DataCamp Workspace