Emmanuel's way is the most general and quickest (well, other than just
making up branch lengths entirely, using ape::compute.brlen() -- that's
even faster!). However, the original question was "best and most general"
for making ultrametric trees for phylogenetic comparative analysis. For an
analysis where branch lengths matter, as in many comparative methods
(ancestral state estimation, independent contrasts, diversification
analyses, etc), the *best* method probably involves data. Getting a tree
with branch lengths proportional to time uses calibrations, often from
fossils, and this is non trivial (requires substantial expertise in the
groups, can take some time to run, etc.). A few solutions here:

1) Start with chronograms: TreeBase initially prohibited trees with branch
lengths, so it probably isn't the best place to go. However, OpenTree does
have trees with branch lengths, with metadata on whether the branch lengths
represent time. You can access that using the rotl package and only pull
trees that are chronograms from its tree store. The datelife package (
https://github.com/phylotastic/datelife: note COI that I'm lead author on
that) has a dataset of all OpenTree chronograms stored already, which makes
it even easier to get them, and you can use a function there to pull in an
updated list. It's often better to start with expert-calibrated chronograms
rather than do your own, especially if all you need is a set of trees. Note
that OpenTree has a bit over a hundred chronograms (anyone reading: please
add yours
<https://github.com/OpenTreeOfLife/opentree/wiki/Submitting-phylogenies-to-Open-Tree-of-Life>
-- you'll help advance science [and get more citations]); TimeTree.org has
thousands, but I believe they're not available for download and reuse.
However, you could reach out to the TimeTree authors for a potential
collaboration and perhaps access them that way.

2) Date yourself: take the trees from treebase, find calibrations from
other papers, and then use other programs (Beast, r8s, pathd8, treepl [COI:
coauthor], revbayes, etc.) to convert them into chronograms. You could wrap
these program in an R interface to do this.

3) Stretch: use geiger::congruify() to stretch your treebase trees to other
calibrated trees. This works for a pair of trees at a time; the datelife
package does this for your tree and all the trees in OpenTree with
overlapping taxa (but it's still alpha-level software, so use at your own
risk (and let me know if there are issues)).

If you need ultrametric trees for some quick and dirty examples for using
comparative methods, the above is overkill; if you care about biological
results that are sensitive to branch lengths (and the degree to which
methods are sensitive to branch length errors does vary by method) you
might need to invest in the harder analyses.

Best,
Brian


_______________________________________________________________________
Brian O'Meara, http://www.brianomeara.info, especially Calendar
<http://brianomeara.info/calendars/omeara/>, CV
<http://brianomeara.info/cv/>, and Feedback
<http://brianomeara.info/teaching/feedback/>

Associate Professor, Dept. of Ecology & Evolutionary Biology, UT Knoxville
Associate Head, Dept. of Ecology & Evolutionary Biology, UT Knoxville
Associate Director for Postdoctoral Activities, National Institute for
Mathematical & Biological Synthesis <http://www.nimbios.org> (NIMBioS)
Communication Director, Society of Systematic Biologists

On Sat, Oct 29, 2016 at 10:09 PM, Shinichi Nakagawa <s.nakag...@unsw.edu.au>
wrote:

> Dear Emmanuel and Alejandro
>
> Many thanks for your replies.
>
> Emmanuel, I understand what you said if I use vcv(nonultrametric_tree,
> cor=FALSE) in a phylogenetic comparative method (PCM). But if I use
> vcv(nonultrametric_tree, cor=TRUE), isn't this the same as assuming a
> ultrametric tree? I may be missing something here?
>
> Note that vcv(nonultrametric_tree, cor=TRUE) is different from
> vcv(chronoMPL(nonultrametric_tree), cor = TRUE), which is relates to my
> previous question (which one is preferred?)
>
> Many thanks
>
> Shinichi
>
> On Sun, Oct 30, 2016 at 9:53 AM, Alejandro Gonzlaez Voyer <
> alejandro.gonza...@iecologia.unam.mx> wrote:
>
> > Hi,
> >
> > I would venture in adding that with an additive tree the differences in
> > evol rates among species are determined by the genes used to estimate the
> > tree, given differences in substitution rates among genes. I do think its
> > important to bear in mind.
> >
> > Cheers
> >
> > Alejandro
> >
> > Alejandro Gonzalez Voyer
> > Instituto de Ecologia
> > UNAM
> >
> >
> >
> >
> > > On Oct 29, 2016, at 2:45 PM, Emmanuel Paradis <emmanuel.para...@ird.fr
> >
> > wrote:
> > >
> > > Sure they are different. I forgot to mention that.
> > >
> > > In comparative analyses, the expected quantity of trait change (= the
> > variance in the VCV matrix) is given by the product of the rate of
> > evolution of the trait with branch length. So using a non-ultrametric
> tree
> > is a way to assume different rates of evolution for each branch. With an
> > ultrametric tree, you somehow assume a "clock-like" trait evolution
> (i.e.,
> > the quantity of change from the root of the tree to the tips is the
> same).
> > >
> > > BTW, the first command you give below should be (misplaced right
> > parenthesis):
> > >
> > > vcv(chronoMPL(nonultrametric_tree), cor = TRUE)
> > >
> > > Best,
> > >
> > > Emmanuel
> > >
> > >> Le 29/10/2016 à 13:12, Shinichi Nakagawa a écrit :
> > >> Dear  Emmanuel
> > >>
> > >> Many thanks for your swift reply.
> > >>
> > >> If we get a correlation matrix, via chronoMPL [i.e.
> > >> vcv(chronoMPL(nonultrametric_tree,cor=T))], this correlation matrix
> is
> > >> different from a correlation matrix obtained directly from vcv [i.e.
> > >> vcv(nonultrametric_tree, cor=T)].
> > >>
> > >> Could you enlighten me about differences and why chronoMPL method
> might
> > >> be preferred?
> > >>
> > >> Best wishes and thanks in advance.
> > >>
> > >> Shinichi
> > >>
> > >> On Sat, Oct 29, 2016 at 8:50 PM, Emmanuel Paradis
> > >> <emmanuel.para...@ird.fr <mailto:emmanuel.para...@ird.fr>> wrote:
> > >>
> > >>    Dear Shinichi,
> > >>
> > >>    A fast solution is provided by the function chronoMPL in ape; it
> does
> > >>    not require calibration points (see the references in the help page
> > of
> > >>    this function for the assumptions). The function chronos (also in
> > ape)
> > >>    is another possibility but it needs at least one calibration point
> > >>    (though this can be fixed to unity at the root).
> > >>
> > >>    Note that a correlation matrix can be calculated from a
> > non-ultrametric
> > >>    tree: see the function vcv.
> > >>
> > >>    Best,
> > >>
> > >>    Emmanuel
> > >>
> > >>    Le 29/10/2016 à 05:26, Shinichi Nakagawa a écrit :
> > >>    > Dear List
> > >>    >
> > >>    > We would like make several non-ultrametic trees (based on
> > >>    molecular data;
> > >>    > downloaded from treeBASE) into ultrametric trees using R. Could
> > >>    you advice
> > >>    > us what is the best and the most general way of doing this
> please?
> > >>    >
> > >>    > We would like to use resultant ultrametric trees in phyologenetic
> > >>    > comparative analysis (by turning into correlation matrices).
> > >>    >
> > >>    > Best wishes,
> > >>    >
> > >>    > Shinichi Nakagawa
> > >>    >
> > >>    >       [[alternative HTML version deleted]]
> > >>    >
> > >>    > _______________________________________________
> > >>    > R-sig-phylo mailing list - R-sig-phylo@r-project.org
> > >>    <mailto:R-sig-phylo@r-project.org>
> > >>    > https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
> > >>    <https://stat.ethz.ch/mailman/listinfo/r-sig-phylo>
> > >>    > Searchable archive at
> > >>    http://www.mail-archive.com/r-sig-phylo@r-project.org/
> > >>    <http://www.mail-archive.com/r-sig-phylo@r-project.org/>
> > >>    >
> > >>    >
> > >>    > Pour nous remonter une erreur de filtrage, veuillez vous rendre
> > >>    ici : http://f.security-mail.net/301dITcFgNy
> > >>    <http://f.security-mail.net/301dITcFgNy>
> > >>    >
> > >>    >
> > >>
> > >>
> > >>
> > >>
> > >
> > > _______________________________________________
> > > R-sig-phylo mailing list - R-sig-phylo@r-project.org
> > > https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
> > > Searchable archive at http://www.mail-archive.com/r-
> > sig-ph...@r-project.org/
> >
> > _______________________________________________
> > R-sig-phylo mailing list - R-sig-phylo@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
> > Searchable archive at http://www.mail-archive.com/r-
> > sig-ph...@r-project.org/
> >
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-phylo mailing list - R-sig-phylo@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
> Searchable archive at http://www.mail-archive.com/r-
> sig-ph...@r-project.org/
>

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/

Reply via email to