datelife is an R package for obtaining information on time of divergence of taxa from expert sources (i.e., peer-reviewed published research). It is also a service for time scaling phylogenetic trees. It leverages on chronograms already available on Open Tree of Life Database and on existing dating and analyzing tools to rapidly generate de-novo hypothesis of time divergence of taxa.

Installation

First, install datelife into your computer. You can install the stable version of the package from cran

install.packages("datelife")

or the development version from github

devtools::install_github("phylotastic/datelife")

Now load the package into the R workspace.

Getting all available chronograms

The main goal of datelife is to search chronograms from published peer reviewed studies (from now on source chronograms) available for a set of taxa of interest. This task is performed with the datelife_search() function. Taxa of interest are accepted as scientific names, either as a single character vector, as tip labels in a phylo object or as a character string in newick format. In any case, upper and lower case are ignored.

mamms <- datelife_search(input = c("Felis catus", "Delphinus delphus", "Homo sapiens", "Elephas maximus"))
# > Source chronograms from:
# > 1: Bininda-Emonds, Olaf R. P., Marcel Cardillo, Kate E. Jones, Ross D. E. MacPhee, Robin M. D. Beck, Richard Grenyer, Samantha A. Price, Rutger A. Vos, John L. Gittleman, Andy Purvis. 2007. The delayed rise of present-day mammals. Nature 446 (7135): 507-512
# > 2: Bininda-Emonds, Olaf R. P., Marcel Cardillo, Kate E. Jones, Ross D. E. MacPhee, Robin M. D. Beck, Richard Grenyer, Samantha A. Price, Rutger A. Vos, John L. Gittleman, Andy Purvis. 2007. The delayed rise of present-day mammals. Nature 446 (7135): 507-512
# > 3: Bininda-Emonds, Olaf R. P., Marcel Cardillo, Kate E. Jones, Ross D. E. MacPhee, Robin M. D. Beck, Richard Grenyer, Samantha A. Price, Rutger A. Vos, John L. Gittleman, Andy Purvis. 2007. The delayed rise of present-day mammals. Nature 446 (7135): 507-512
# > 4: Nyakatura, Katrin, Olaf RP Bininda-Emonds. 2012. Updating the evolutionary history of Carnivora (Mammalia): a new species-level supertree complete with divergence time estimates. BMC Biology 10 (1): 12
# > 5: Nyakatura, Katrin, Olaf RP Bininda-Emonds. 2012. Updating the evolutionary history of Carnivora (Mammalia): a new species-level supertree complete with divergence time estimates. BMC Biology 10 (1): 12
# > 6: Nyakatura, Katrin, Olaf RP Bininda-Emonds. 2012. Updating the evolutionary history of Carnivora (Mammalia): a new species-level supertree complete with divergence time estimates. BMC Biology 10 (1): 12
# > 7: Hedges, S. Blair, Julie Marin, Michael Suleski, Madeline Paymer, Sudhir Kumar. 2015. Tree of life reveals clock-like speciation and diversification. Molecular Biology and Evolution 32 (4): 835-845
# > Input taxa presence across source chronograms:
# >             taxon chronograms
# > 1 Elephas maximus         4/7
# > 2    Homo sapiens         7/7
# > 3     Felis catus         3/7
# > Input taxa completely absent from source chronograms:
# >               taxon
# > 1 Delphinus delphus

You can plot all source chronograms on screen with the function plot_phylo_all() or save them into a pdf or png file with the argument write:

plot_phylo_all(mamms, write = "pdf", file = "mamms_phyloall")

Source chronograms come from Open Tree of Life tree store, this means that uncertainty from original studies is not yet available.

Explain the datelife object. It is composed by three elements. datelifeQuery datelifeResults datelifeSummary

You can get all trees in newick format. Chronogram search is performed at the species level. This means that source chronograms with subspecies are collapsed to present one exemplar per species.

Source chronograms are cached in the package as a data object called opentree_chronograms. This object is updated every two months approximately. If you want to manually update the object or save it as an object in your own computer, you can do:

The update will take approximately 10.01 secs.

Chronograms are downloaded from OToL and processed in various ways to be suitable for datelife use. Tip labels are standardized to Opentree of Life Taxonomy. Tips that cannot be automatically standardised are left alone as original. As of now, the percentage of standardised names is as follows:

For now, taxon names must be provided as scientific names. Common name searches are not yet implemented. Scientific names can be anything from species binomials to higher-taxon names. Subspecies names will not be considered. You can use the datelife_query function first to check that your names are accepted. If you are unsure about the spelling or synonyms, you can use arguments use_tnrs and approximate_match.

# datelife query function
make_datelife_query(c("cat", "dog"))
# > $cleaned_names
# > [1] "cat" "dog"
# > 
# > $ott_ids
# > NULL
# > 
# > $phy
# > [1] NA
# > 
# > attr(,"class")
# > [1] "datelifeQuery"
make_datelife_query(c("Felix", "Caniss"), use_tnrs = TRUE)
# > 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |===================================                                   |  50%
  |                                                                            
  |======================================================================| 100%
# > $cleaned_names
# > [1] "Felis" "Canis"
# > 
# > $ott_ids
# > NULL
# > 
# > $phy
# > [1] NA
# > 
# > attr(,"class")
# > [1] "datelifeQuery"
make_datelife_query(c("Felis", "Canis"), get_spp_from_taxon = TRUE)
# > 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |===================================                                   |  50%
  |                                                                            
  |======================================================================| 100%
# > 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
# > 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
# > $cleaned_names
# >               Felis1               Felis2               Felis3 
# >    "Felis margarita"     "Felis nigripes"   "Felis silvestris" 
# >               Felis4               Felis5               Canis1 
# >        "Felis catus"        "Felis chaus"        "Canis dirus" 
# >               Canis2               Canis3               Canis4 
# >       "Canis anthus"        "Canis rufus"     "Canis simensis" 
# >               Canis5               Canis6               Canis7 
# >       "Canis aureus"    "Canis mesomelas"      "Canis adustus" 
# >               Canis8               Canis9              Canis10 
# >      "Canis latrans"        "Canis lupus" "Canis himalayensis" 
# >              Canis11 
# >       "Canis indica" 
# > 
# > $ott_ids
# >    Felis margarita     Felis nigripes   Felis silvestris        Felis catus 
# >             983177             983179             563163             563166 
# >        Felis chaus        Canis dirus       Canis anthus        Canis rufus 
# >             983181            3612500            5835572             113383 
# >     Canis simensis       Canis aureus    Canis mesomelas      Canis adustus 
# >             752755             621168             666235             621176 
# >      Canis latrans        Canis lupus Canis himalayensis       Canis indica 
# >             247331             247341             346723             346728 
# > 
# > $phy
# > [1] NA
# > 
# > attr(,"class")
# > [1] "datelifeQuery"

If higher-taxon names are provided, you can use option get_spp_from_taxon = TRUE, which is also a service of rphylotatsic that gets all species within a higher taxon. If you choose this option, all species within the higher-taxon names provided will be included in the search.

Summarizing source chronograms: getting a single tree

You can summarize all source chronograms found by DateLife with the median method.

You can also summarize source chronograms with a supertree approach. In here we have implemented SDM method.

Within DateLife, we have also wrapped the OToL scaling service available from http://141.211.236.35:10999.

See also the Time Tree of Life web for getting time of divergence of a pair of taxa or a synthetic chronogram of lineages within a single taxon.

Generating chronograms

Alternatively, new chronograms can be generated using available information as secondary calibrations.

theme

theme

Citing

The datelife manuscript is still being written.