CRAN status CRAN RStudio mirror downloads DOI

GitHub master branch package version GitHub R-CMD-check Status codecov Github Open Issues Github Closed Issues

NSF-1458603 NSF-0905606 NSF-1458572

Welcome to DateLife’s R package GitHub repository!

What is datelife?

datelife is an R package that allows researchers and the general audience to obtain open scientific data on the age of any organism they are interested in, by retrieving organism ages from a database of dated phylogenetic trees (aka chronograms), that have been peer-reviewed and published as part of a scientific research article, in an indexed journal (Open Tree of Life’s tree store). As such, organism ages retrieved by datelife constitute state-of-the-art, peer-reviewed, public scientific knowledge, that can be accessed and reused by experts and non-experts in the field alike.

How can you use datelife?

You can install the datelife R package on your own computer and use it locally. You can find instructions for a local installation below.

If you do not want/have time to deal with installation and R code, you can use DateLife’s interactive website application. Note that the website is not live at the moment, apologies.

To learn more, please go to datelife’s documentation website.

README topics:

Local installation of the datelife R package

datelife’s most recent stable version can be installed with:


datelife’s previous stable versions are available for installation from the CRAN repository. For example, to install version 0.6.1, you can run:

devtools::install_version("datelife", version="0.6.1")

You can install datelife’s development version from its GitHub repository with:


Citing datelife

If you use datelife for a publication, please cite the R package and the accompanying paper:

O’Meara B, Sanchez-Reyes L, Eastman J, Heath T, Wright A, Schliep K, Chamberlain S, Midford P, Harmon L, Brown J, Pennell M, Alfaro M (2023). datelife: Scientific Data on Time of Lineage Divergence for Your Taxa. R package version 0.6.7,

Sanchez-Reyes L, O’Meara B (2019). “datelife: Leveraging databases and analytical tools to reveal the dated Tree of Life.” bioRxiv, 782094.

You can get these citations and the bibtex entry with:


Feedback and Information for Developers

We welcome and encourage to post a GitHub issue with any comments, ideas and questions about datelife’s software and website. If you want to contribute with code directly, we welcome and encourage pull requests.

Function documentation:

Package and function documentation was generated with roxygen2:


Styling code:

We used the package lintr to check for coding style:


Calculating test coverage:

Code coverage was calculated with the package covr:

cov <- covr::package_coverage()

usethis::use_data(cov, overwrite = TRUE)

You can see an interactive report of testing coverage:


And, find code with zero coverage:


Generating datelife’s hexsticker:

Code used to generate current datelife’s logo hexsticker is in data-raw/hexsticker-current.R

Rendering the vignettes:

Vignettes are rendered automatically upon built. However, if you wish to see how they look rendered before releasing the package, you can do this with knitr::knit(). The following command renders the vignette Getting_started_with_datelife as html:


To update “pre-rendered” vignettes, follow this blog. For example, to render the vignette about making trees with BOLD, do:

knitr::knit("vignettes/making_bold_trees.Rmd.orig", output = "vignettes/making_bold_trees.Rmd")

Creating a documentation website for the package

Using pkgdown for this is quite straightforward and fun:


Preparing a CRAN release

Updating GitHub actions R CMD check

Run the following function from the package usethis to update R CMD Check on GitHub:


This downloads the standard R CMD check workflow from r-lib action examples.

Local checks

To be able to release to CRAN, the first step is to pass the checks locally. To run a local check, you can use the command R CMD check from your terminal. For that, change directories to the one above your working clone of the datelife repo:

cd ../

Generate a tar ball for your package by running R CMD build package-name:

R CMD build datelife

Finally, run R CMD check package-tar-ball on the tar ball that you just generated:

R CMD check --as-cran datelife_0.6.0.tar.gz
Remote checks

If you do not have access to different OS to test your package on, the rhub package allows remote testing on a variety of OS with the command:


For more rhub useful workflows, check out its documentation. For example

previous_checks <- rhub::list_package_checks(".",
                                  email = "",
                                  howmany = 4)
group_check <- rhub::get_check(previous_checks$group[1])

cran_prep <- check_for_cran()

To check for URL validity and on Windows OS, use:


Releasing to CRAN

To submit to CRAN call:


and answer the prompted questions. If the answer to all of these is yes, the package will be submitted to CRAN :rocket:


This package is free and open source software, licensed under GPL.


datelife has been developed as part of the phylotastic (NSF-funded) project, and is still under development.