traits

cran checks Build Status codecov.io rstudio mirror downloads cran version

R client for various sources of species trait data.

What is a trait? A “trait” for the purposes of this package is broadly defined as an aspect of a species that can be described or measured, such as physical traits (size, length, height, color), behavioral traits (running speed, etc.), and even variables that make up the niche of the species (e.g., habitat).

Included in traits with the associated function prefix or function name:

Souce Function prefix Link
BETYdb betydb_ http://www.betydb.org
NCBI ncbi_ http://www.ncbi.nlm.nih.gov/
Encylopedia of Life traitbank_ https://github.com/EOL/eol_website/blob/master/doc/api.md
Coral Traits Database coral_ https://coraltraits.org/
Birdlife International birdlife_ https://www.birdlife.org/
LEDA Traitbase leda_
USDA Plants Database tr_usda
Zanne et al. plant dataset tr_zanne
Amniote life history dataset tr_ernest

Talk to us on the issues page if you know of a source of traits data with an API, and we’ll see about including it.

Installation

Stable CRAN version

install.packages("traits")

Or development version from GitHub

devtools::install_github("ropensci/traits")
library("traits")
library("dplyr")

BETYdb

Get trait data for Willow (Salix spp.)

(salix <- betydb_search("Salix Vcmax"))
#> # A tibble: 14 x 36
#>    checked result_type    id citation_id site_id treatment_id sitename
#>      <int> <chr>       <int>       <int>   <int>        <int> <chr>   
#>  1       1 traits      39217         430     645         1342 ""      
#>  2       1 traits      39218         430     645         1343 ""      
#>  3       1 traits      39219         430     645         1344 ""      
#>  4       1 traits      39220         430     645         1345 ""      
#>  5       1 traits      25405          51      NA            1 <NA>    
#>  6       1 traits      39213         430     645         1342 ""      
#>  7       1 traits      39214         430     645         1343 ""      
#>  8       1 traits      39215         430     645         1344 ""      
#>  9       1 traits      39216         430     645         1345 ""      
#> 10       1 traits      39221         430     645         1342 ""      
#> 11       1 traits      39222         430     645         1343 ""      
#> 12       1 traits      39223         430     645         1344 ""      
#> 13       1 traits      39224         430     645         1345 ""      
#> 14       1 traits      37519         381     602         1220 <NA>    
#> # … with 29 more variables: city <chr>, lat <dbl>, lon <dbl>,
#> #   scientificname <chr>, commonname <chr>, genus <chr>, species_id <int>,
#> #   cultivar_id <int>, author <chr>, citation_year <int>, treatment <chr>,
#> #   date <chr>, time <chr>, raw_date <chr>, month <int>, year <int>,
#> #   dateloc <chr>, trait <chr>, trait_description <chr>, mean <dbl>,
#> #   units <chr>, n <int>, statname <chr>, stat <dbl>, notes <chr>,
#> #   access_level <int>, cultivar <chr>, entity <lgl>, method_name <lgl>
# equivalent:
# (out <- betydb_search("willow"))

Summarise data from the output data.frame

library("dplyr")
salix %>%
  group_by(scientificname, trait) %>%
  mutate(.mean = as.numeric(mean)) %>%
  summarise(mean = round(mean(.mean, na.rm = TRUE), 2),
            min = round(min(.mean, na.rm = TRUE), 2),
            max = round(max(.mean, na.rm = TRUE), 2),
            n = length(n))
#> # A tibble: 4 x 6
#> # Groups:   scientificname [4]
#>   scientificname                  trait  mean   min   max     n
#>   <chr>                           <chr> <dbl> <dbl> <dbl> <int>
#> 1 Salix                           Vcmax  65    65    65       1
#> 2 Salix dasyclados                Vcmax  46.1  34.3  56.7     4
#> 3 Salix sachalinensis × miyabeana Vcmax  79.3  79.3  79.3     1
#> 4 Salix viminalis                 Vcmax  43.0  20.0  61.3     8

EOL’s traitbank trait data

traitbank(query = "MATCH (n:Trait) RETURN n LIMIT 1;")
#> $columns
#> [1] "n"
#> 
#> $data
#> $data[[1]]
#>   metadata.id metadata.labels
#> 1    20280619           Trait
#>                                                                                     paged_traverse
#> 1 http://10.252.248.44:7474/db/data/node/20280619/paged/traverse/{returnType}{?pageSize,leaseTime}
#>                                              outgoing_relationships
#> 1 http://10.252.248.44:7474/db/data/node/20280619/relationships/out
#>                                                        outgoing_typed_relationships
#> 1 http://10.252.248.44:7474/db/data/node/20280619/relationships/out/{-list|&|types}
#>                                                   labels
#> 1 http://10.252.248.44:7474/db/data/node/20280619/labels
#>                                             create_relationship
#> 1 http://10.252.248.44:7474/db/data/node/20280619/relationships
#>                                                                traverse
#> 1 http://10.252.248.44:7474/db/data/node/20280619/traverse/{returnType}
#>                                                   all_relationships
#> 1 http://10.252.248.44:7474/db/data/node/20280619/relationships/all
#>                                                             all_typed_relationships
#> 1 http://10.252.248.44:7474/db/data/node/20280619/relationships/all/{-list|&|types}
#>                                                           property
#> 1 http://10.252.248.44:7474/db/data/node/20280619/properties/{key}
#>                                              self
#> 1 http://10.252.248.44:7474/db/data/node/20280619
#>                                             incoming_relationships
#> 1 http://10.252.248.44:7474/db/data/node/20280619/relationships/in
#>                                                   properties
#> 1 http://10.252.248.44:7474/db/data/node/20280619/properties
#>                                                       incoming_typed_relationships
#> 1 http://10.252.248.44:7474/db/data/node/20280619/relationships/in/{-list|&|types}
#>     data.eol_pk data.resource_pk
#> 1 R74-PK5014587           110690
#>                                data.scientific_name
#> 1 <i>Adenopodia floribunda</i> (Kleinhoonte) Brenan
#>                                data.source
#> 1 http://www.pnas.org/content/114/40/10695
#>                                                                   data.literal
#> 1 http://eol.org/schema/terms/Tropical_and_subtropical_moist_broadleaf_forests

Coral

Get the species list and their ids

coral_species()
#> # A tibble: 1,548 x 2
#>    name                       id   
#>    <chr>                      <chr>
#>  1 Acanthastrea brevis        3    
#>  2 Acanthastrea echinata      4    
#>  3 Acanthastrea hemprichi     6    
#>  4 Acanthastrea ishigakiensis 8    
#>  5 Acanthastrea regularis     12   
#>  6 Acanthastrea rotundoflora  13   
#>  7 Acanthastrea subechinata   14   
#>  8 Acropora abrolhosensis     16   
#>  9 Acropora abrotanoides      17   
#> 10 Acropora aculeus           18   
#> # … with 1,538 more rows

Get data by taxon

coral_taxa(80)
#> # A tibble: 3,540 x 25
#>    observation_id access user_id specie_id specie_name location_id
#>             <int>  <int>   <int>     <int> <chr>             <int>
#>  1         157133      1      10        80 Acropora h…           1
#>  2         156961      1      14        80 Acropora h…         409
#>  3           5781      1       1        80 Acropora h…           1
#>  4         156610      1       2        80 Acropora h…         500
#>  5         158118      1      10        80 Acropora h…         409
#>  6         119211      1      49        80 Acropora h…           1
#>  7         158211      1      10        80 Acropora h…         413
#>  8          90294      1      15        80 Acropora h…         341
#>  9          90294      1      15        80 Acropora h…         341
#> 10          90294      1      15        80 Acropora h…         341
#> # … with 3,530 more rows, and 19 more variables: location_name <chr>,
#> #   latitude <dbl>, longitude <dbl>, resource_id <int>,
#> #   resource_secondary_id <int>, measurement_id <int>, trait_id <int>,
#> #   trait_name <chr>, standard_id <int>, standard_unit <chr>,
#> #   methodology_id <int>, methodology_name <chr>, value <chr>,
#> #   value_type <chr>, precision <dbl>, precision_type <chr>,
#> #   precision_upper <dbl>, replicates <int>, notes <chr>

Birdlife International

Habitat data

birdlife_habitat(22721692)
#>         id Habitat (level 1)                  Habitat (level 2) Importance
#> 1 22721692            Forest           Subtropical/Tropical Dry      major
#> 2 22721692            Forest Subtropical/Tropical Moist Montane      major
#> 3 22721692            Forest                          Temperate   suitable
#> 4 22721692         Shrubland Subtropical/Tropical High Altitude   suitable
#>     Occurrence
#> 1     breeding
#> 2 non-breeding
#> 3     breeding
#> 4     breeding

Contributors

Meta

ropensci_footer