MyNixOS website logo
Description

Scientific Data on Time of Lineage Divergence for Your Taxa.

Methods and workflows to get chronograms (i.e., phylogenetic trees with branch lengths proportional to time), using open, peer-reviewed, state-of-the-art scientific data on time of lineage divergence. This package constitutes the main underlying code of the DateLife web service at <https://www.datelife.org>. To obtain a single summary chronogram from a group of relevant chronograms, we implement the Super Distance Matrix (SDM) method described in Criscuolo et al. (2006) <doi:10.1080/10635150600969872>. To find the grove of chronograms with a sufficiently overlapping set of taxa for summarizing, we implement theorem 1.1. from Ané et al. (2009) <doi:10.1007/s00026-009-0017-x>. A given phylogenetic tree can be dated using time of lineage divergence data as secondary calibrations (with caution, see Schenk (2016) <doi:10.1371/journal.pone.0148228>). To obtain and apply secondary calibrations, the package implements the congruification method described in Eastman et al. (2013) <doi:10.1111/2041-210X.12051>. Tree dating can be performed with different methods including BLADJ (Webb et al. (2008) <doi:10.1093/bioinformatics/btn358>), PATHd8 (Britton et al. (2007) <doi:10.1080/10635150701613783>), mrBayes (Huelsenbeck and Ronquist (2001) <doi:10.1093/bioinformatics/17.8.754>), and treePL (Smith and O'Meara (2012) <doi:10.1093/bioinformatics/bts492>).

CRANstatus CRAN RStudio mirrordownloads DOI

GitHub master branch packageversion GitHub R-CMD-checkStatus codecov Github OpenIssues Github ClosedIssues

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:

install.packages("datelife")

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:

devtools::install_github("phylotastic/datelife")

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, https://doi.org/10.5281/zenodo.593938.

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

You can get these citations and the bibtex entry with:

citation("datelife")
toBibtex(citation("datelife"))

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:

roxygen2::roxygenise()

Styling code:

We used the package lintr to check for coding style:

lintr::lint_package()

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:

covr::report(cov)

And, find code with zero coverage:

covr::zero_coverage(cov)

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:

knitr::knit("vignettes/Getting_started_with_datelife.Rmd")

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:

usethis::use_pkgdown()
pkgdown::build_site()

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:

usethis::use_github_action_check_standard()

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:

rhub::check_for_cran()

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

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

cran_prep <- check_for_cran()
cran_prep$cran_summary()

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

devtools::check_win_release()
devtools::check_win_devel()

Releasing to CRAN

To submit to CRAN call:

devtools::release()

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

License

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

Acknowledgements

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

Metadata

Version

0.6.8

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows