Skip to content

phylotastic/datelife

Repository files navigation

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:

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 🚀

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.