Monday, April 30, 2012

Rescaling trees for LTT plotting

A user reports that his sample of ultrametric trees do not converge at the same end-point in a multi-tree lineage through time plot (see figure) and is perplexed why that would be.

My suspicion is that his sample is from the posterior distribution of a relaxed clock Bayesian phylogenetic analysis in BEAST. In this case (because we are sampling from the posterior distribution for the age of the root node in the tree) all the trees will have slightly different root ages and thus slightly different total lengths.

What to do with this really depends on the goal of our multi-LTT plot. If we want to represent this uncertainty, as well as the uncertainty of relative branching times, we should really make our multi-LTT plot backwards in time from a constant present-day. This is not presently implemented in phytools ltt, but is the default option (and in fact the only option that works) in ape's mltt.plot. Alternatively, and more commonly (I think), we may wish our LTT plot to primarily represent the variation in relative branching times represented in our posterior sample. To do this, then, we should first rescale all our trees to have the same length. We could rescale our trees to have an arbitrary total length (say 1 or 100), or we might want to rescale our trees to all have the same length that is the average total length of our tree. The following code does the latter:

> require(geiger); require(phytools)
> trees<-pbtree(n=100,nsim=100) # trees with different lengths
> tl<-sapply(trees,function(x) max(nodeHeights(x)))
> new.trees<-lapply(trees,rescaleTree,totalDepth=mean(tl))
> "multiPhylo"->class(new.trees)
> X<-ltt(new.trees)

And the following is a copy of the figure above with this "fix" applied:

6 comments:

  1. The next question, of course, is how do you summarise `gammatest` over the whole posterior?

    ReplyDelete
  2. Hi Liam,
    it may be late for this entry, but is there any chance you could throw up the exact script you used to generate this neat LTT figure above. It would be much appreciated.
    regards

    ReplyDelete
    Replies
    1. Try something like this for object of class "multiPhylo" trees:

      x<-ltt(trees)
      plot(x[[1]]$times,x[[2]]$ltt,type="s",col="grey",log="y",xlab="time",ylab="lineages")
      obj<-lapply(x,function(x) lines(x$times,x$ltt,type="s",col="grey"))
      l<-rowMeans(sapply(x,function(x) x$ltt))
      t<-rowMeans(sapply(x,function(x) x$times))
      lines(t,l,type="s",lwd=2)

      Let me know if that works. - Liam

      Delete
    2. Hi Liam,
      that worked at treat, thank you for the help.
      cheers

      Delete
  3. Hi Liam,
    I have also tried:
    > new.trees<-lapply(trees,rescaleTree,totalDepth=mean(tl))
    There were 50 or more warnings (use warnings() to see the first 50)
    > warnings()
    Warning messages:
    1: In .deprecate("rescaleTree", "rescale.phylo") :
    ‘rescaleTree’ is being deprecated: use ‘rescale.phylo’ instead

    Then I tried:
    > new.trees<-lapply(trees,rescale.phylo,totalDepth=mean(tl))
    Error in match.fun(FUN) : object 'rescale.phylo' not found

    Thanks for your advice!

    Miao

    ReplyDelete
  4. Các biện pháp tránh thai an toàn tốt nhấtNếu chưa có ý định sinh con hoặc mới sinh nở và không muốn bị “vỡ kế hoạch” thì chị em nên áp dụng các biện pháp tránh thai để không mang thai ngoài ý muốn.
    Hot boy kẹo kéo Bùi Vĩnh Phúc là ai?Mặc tranh cãi, sau khi xuất hiện trên Vietnam Idol, cái tên “hotboy kẹo kéo” Bùi Vĩnh Phúc nhanh nhảu biến thành từ khóa được truy cập nhiều nhất
    Các bệnh lây nhiễm qua đường tình dụcQuan hệ không đúng cách, thường xuyên với nhiều người không dùng các biện pháp phòng tránh an toàn sẽ là một trong những nguyên nhân nhiễm các bệnh tình dục, hoặc lây truyền từ người tình.
    Bệnh viêm gan b lây qua đường nào ?Viêm gan B là căn bệnh lây lan lặng lẽ, tiến triển âm thầm do virus viêm gan B(HBV) gây ra, đây là một trong những bệnh được cảnh báo vô cùng nguy hiểm.
    Cách rửa mũi cho trẻ sơ sinhThời tiết thay đổi đột ngột rất dễ làm trẻ mắc các bệnh về mũi, họng. Lúc này, mẹ cần vệ sinh mũi cho bé thường xuyên để điều trị chứng viêm mũi, đồng thời phòng cách bệnh về đường hô hấp
    Dấu hiệu nhận biết người bị nhiễm hivNói suy giảm miễn dịch mắc phải có nghĩa là quá trình này xảy ra trong khoảng thời gian sống của con người, không phải do di truyền hay bệnh bẩm sinh của hệ miễn dịch.
    Mới bị nhiễm hiv có chữa được không?Để giúp các bạn hiểu rõ hơn về bệnh hiv, sau đây bài viết xin chia sẻ đến một số thông tin hữu ích về bệnh, cùng tìm hiểu nhé!
    Que thử thai hai vạch đậm có chính xácDùng que thử thai ngay tại nhà là biện pháp nhằm phát hiện hCG trong nước tiểu. Đây là hormone đầu tiên có mặt sau khi trứng thụ tinh nằm trong tử cung (khoảng 6 ngày sau thụ tinh)
    Dùng que thử thai chip chip có chính xác không?Thị trường que thử thai tại Việt Nam khá đa dạng. Phổ biến và thông dụng nhất với chị em phụ nữ là thương hiệu Quick Stick.
    Thụ tinh trong ống nghiệm là gì hết bao nhiêu tiền?Hầu hết chúng ta, nhất là những cặp đôi trẻ và khoẻ mạnh đều nghĩ rằng chúng ta có thể thụ thai tự nhiên và sinh con khi chúng ta muốn. Nhưng không phải lúc nào cũng đơn giản như vậy
    Bệnh thuỷ đậu phải kiêng những gì?Nếu không biết điều này, bệnh tình sẽ trở nên trầm trọng hơn, thậm chí có thể gây tổn thương thần kinh ung ương, ung thư da hay tử vong.

    ReplyDelete

Note: due to the very large amount of spam, all comments are now automatically submitted for moderation.