bold_identify_parents {bold}R Documentation

Add taxonomic parent names to a data.frame

Description

Add taxonomic parent names to a data.frame

Usage

bold_identify_parents(
  x,
  wide = FALSE,
  taxid = NULL,
  taxon = NULL,
  tax_rank = NULL,
  tax_division = NULL,
  parentid = NULL,
  parentname = NULL,
  taxonrep = NULL,
  specimenrecords = NULL,
  ...
)

Arguments

x

(data.frame/list) list of data.frames - the output from a call to bold_identify(). or a single data.frame from the output from same. required.

wide

(logical) output in long or wide format. See Details. Default: FALSE

taxid

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

taxon

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

tax_rank

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

tax_division

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

parentid

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

parentname

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

taxonrep

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

specimenrecords

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

...

Further args passed on to crul::verb-GET, main purpose being curl debugging

Details

This function gets unique set of taxonomic names from the input data.frame, then queries bold_tax_name() to get the taxonomic ID, passing it to bold_tax_id() to get the parent names, then attaches those to the input data.

Records in the input data that do not have matches for parent names simply get NA values in the added columns.

Value

a list of the same length as the input

Filtering

The parameters taxid, taxon, tax_rank, tax_division, parentid, parentname,taxonrep, and specimenrecords are not used in the search sent to BOLD, 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. The data.frame that we filter on with these parameters internally is the result of a call to the bold_tax_name() function.

wide vs long format

When wide = FALSE you get many rows for each record. Essentially, we cbind the taxonomic classification onto the one row from the result of bold_identify(), giving as many rows as there are taxa in the taxonomic classification.

When wide = TRUE you get one row for each record - thus the dimensions of the input data stay the same. For this option, we take just the rows for taxonomic ID and name for each taxon in the taxonomic classification, and name the columns by the taxon rank, so you get phylum and phylum_id, and so on.

Examples

## Not run: 
df <- bold_identify(sequences = sequences$seq2)

# long format
out <- bold_identify_parents(df)
str(out)
head(out[[1]])

# wide format
out <- bold_identify_parents(df, wide = TRUE)
str(out)
head(out[[1]])

x <- bold_seq(taxon = "Satyrium")
out <- bold_identify(c(x[[1]]$sequence, x[[13]]$sequence))
res <- bold_identify_parents(out)
res

x <- bold_seq(taxon = 'Diplura')
out <- bold_identify(vapply(x, "[[", "", "sequence")[1:20])
res <- bold_identify_parents(out)

## End(Not run)

[Package bold version 1.2.0 Index]