The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
rotl
is an R package to interact with the Open Tree of
Life data APIs. It was initially developed as part of the
NESCENT/OpenTree/Arbor hackathon.
Client libraries to interact with the Open Tree of Life API also exists for Python and Ruby.
The current stable version is available from CRAN, and can be installed by typing the following at the prompt in R:
install.packages("rotl")
If you want to test the development version, you first need to
install the remotes
package.
install.packages("remotes")
Then you can install rotl
using:
::install_github("ropensci/rotl") remotes
There are three vignettes:
Start by checking out the “How to use rotl
?” by
typing: vignette("rotl", package="rotl")
after installing
the package.
Then explore how you can use rotl
with other
packages to combine your data with trees from the Open Tree of Life
project by typing:
vignette("data_mashups", package="rotl")
.
The vignette “Using the Open Tree Synthesis in a comparative
analysis” demonstrates how you can reproduce an analysis of a published
paper by downloading the tree they used, and data from the supplementary
material:
vignette("meta-analysis", package="rotl")
.
The vignettes are also available from CRAN: How
to use rotl
?, Data
mashups, and Using
the Open Tree synthesis in a comparative analysis.
Taxonomic names are represented in the Open Tree by numeric
identifiers, the ott_ids
(Open Tree Taxonomy identifiers).
To extract a portion of a tree from the Open Tree, you first need to
find ott_ids
for a set of names using the
tnrs_match_names
function:
library(rotl)
<- c("Pongo", "Pan", "Gorilla", "Hoolock", "Homo")
apes <- tnrs_match_names(apes)) (resolved_names
## search_string unique_name approximate_match score ott_id is_synonym
## 1 pongo Pongo FALSE 1 417949 FALSE
## 2 pan Pan FALSE 1 417957 FALSE
## 3 gorilla Gorilla FALSE 1 417969 FALSE
## 4 hoolock Hoolock FALSE 1 712902 FALSE
## 5 homo Homo FALSE 1 770309 FALSE
## flags number_matches
## 1 2
## 2 sibling_higher 2
## 3 sibling_higher 1
## 4 1
## 5 sibling_higher 1
Now we can get the tree with just those tips:
<- tol_induced_subtree(ott_ids = ott_id(resolved_names)) tr
## Warning in collapse_singles(tr, show_progress): Dropping singleton nodes with
## labels: mrcaott83926ott6145147, mrcaott83926ott3607728, mrcaott83926ott3607876,
## mrcaott83926ott3607873, mrcaott83926ott3607687, mrcaott83926ott3607716,
## mrcaott83926ott3607689, mrcaott83926ott3607732, mrcaott770295ott3607719,
## mrcaott770295ott3607692, Ponginae ott1082538, Hylobatidae ott166544
plot(tr)
The code above can be summarized in a single pipe:
library(magrittr)
## or expressed as a pipe:
c("Pongo", "Pan", "Gorilla", "Hoolock", "Homo") %>%
tnrs_match_names() %>%
ott_id() %>%
tol_induced_subtree() %>%
plot()
## Warning in collapse_singles(tr, show_progress): Dropping singleton nodes with
## labels: mrcaott83926ott6145147, mrcaott83926ott3607728, mrcaott83926ott3607876,
## mrcaott83926ott3607873, mrcaott83926ott3607687, mrcaott83926ott3607716,
## mrcaott83926ott3607689, mrcaott83926ott3607732, mrcaott770295ott3607719,
## mrcaott770295ott3607692, Ponginae ott1082538, Hylobatidae ott166544
To cite rotl
in publications pleases use:
Michonneau, F., Brown, J. W. and Winter, D. J. (2016), rotl: an R package to interact with the Open Tree of Life data. Methods in Ecology and Evolution. 7(12):1476-1481. doi: 10.1111/2041-210X.12593
You may also want to cite the paper for the Open Tree of Life
Hinchliff, C. E., et al. (2015). Synthesis of phylogeny and taxonomy into a comprehensive tree of life. Proceedings of the National Academy of Sciences 112.41 (2015): 12764-12769 doi: 10.1073/pnas.1423041112
The manuscript in Methods in Ecology and Evolution includes additional examples on how to use the package. The manuscript and the code it contains are also hosted on GitHub at: https://github.com/fmichonneau/rotl-ms
Starting with v3.0.0 of the package, the major and minor version numbers (the first 2 digits of the version number) will be matched to those of the API. The patch number (the 3rd digit of the version number) will be used to reflect bug fixes and other changes that are independent from changes to the API.
rotl
can be used to access other versions of the API (if
they are available) but most likely the high level functions will not
work. Instead, you will need to parse the output yourself using the
“raw” returns from the unexported low-level functions (all prefixed with
a .
). For instance to use the tnrs/match_names
endpoint for v2
of the API:
:::.tnrs_match_names(c("pan", "pango", "gorilla", "hoolock", "homo"), otl_v = "v2") rotl
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.