lamho86 / phylolm

GNU General Public License v2.0
30 stars 12 forks source link

Error: two or more sister external edges have length 0, V is singular #48

Closed jasminelmah closed 1 year ago

jasminelmah commented 2 years ago

Hello,

I need a little help interpreting an error. I am trying to fit an early burst model to each column of a matrix, where columns are traits and rows are taxa. My code is:

foreach(i=c(1:ncol(matrix))) %dopar% phylolm(matrix[,i]~1, phy=tree, model="EB").

And I get the error:

Error in phylolm(matrix[, i] ~ 1, phy = tree, model = "EB") : task 265 failed - "two or more sister external edges have length 0, V is singular (node 101 in pruning-wise-ordered tree)"

Trying this command with other the BM or OU model completes without error. Any idea what might the problem be? Thanks for your help!

Update: this error does not occur if I use a tree with a different topology. However, I need to use one particular tree - the one that is not working. Do you know why I might be getting this error?

lamho86 commented 2 years ago

Hello,

The problem arises because after transforming branch length under the EB model, the transformed tree has 2 or more sister external edges have length 0 (phylolm specifies that it happened at node 101 in pruning-wise order). The reason could be the original edge lengths of the tree at note 101 are so small (or even 0) that after transformation, they become 0.

jasminelmah commented 2 years ago

Hi Lam,

Thanks for the explanation. That reason is definitely possible - I do have some very short edge lengths. Do you have any suggestions on how to get around this limitation? Or is it inherent that some trees simply cannot be used with the EB model?

Cheers, Jasmine

On Fri, Nov 26, 2021 at 9:33 AM Lam Ho @.***> wrote:

Hello,

The problem arises because after transforming branch length under the EB model, the transformed tree has 2 or more sister external edges have length 0 (phylolm specifies that it happened at node 101 in pruning-wise order). The reason could be the original edge lengths of the tree at note 101 are so small (or even 0) that after transformation, they become 0.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lamho86/phylolm/issues/48#issuecomment-980022007, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJV26EGTJCZUEKL5PBHV3HTUN6LE7ANCNFSM5IXLPAMQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

jasminelmah commented 2 years ago

Actually, a correction - the tree this does not work with does not have short edge lengths at the node specified. A version of the tree that the function does work with has some very short edges (almost comb-like topology).

On Fri, Nov 26, 2021 at 11:48 AM Jasmine Mah @.***> wrote:

Hi Lam,

Thanks for the explanation. That reason is definitely possible - I do have some very short edge lengths. Do you have any suggestions on how to get around this limitation? Or is it inherent that some trees simply cannot be used with the EB model?

Cheers, Jasmine

On Fri, Nov 26, 2021 at 9:33 AM Lam Ho @.***> wrote:

Hello,

The problem arises because after transforming branch length under the EB model, the transformed tree has 2 or more sister external edges have length 0 (phylolm specifies that it happened at node 101 in pruning-wise order). The reason could be the original edge lengths of the tree at note 101 are so small (or even 0) that after transformation, they become 0.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lamho86/phylolm/issues/48#issuecomment-980022007, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJV26EGTJCZUEKL5PBHV3HTUN6LE7ANCNFSM5IXLPAMQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

lamho86 commented 2 years ago

The error does indicate that this tree has sister external edges that have length 0. I couldn't think of any other reason without further information.

jasminelmah commented 2 years ago

Thanks - I definitely believe you! I am just as confused too. Would you like me to send you a reproducible example? Perhaps it is an error that is specific to my machine.

On Fri, Dec 3, 2021 at 6:56 PM Lam Ho @.***> wrote:

The error does indicate that this tree has sister external edges that have length 0. I couldn't think of any other reason without further information.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lamho86/phylolm/issues/48#issuecomment-985917396, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJV26EAJ2DVA3G3YLBDXUF3UPFKK7ANCNFSM5IXLPAMQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Ph.D. candidate, Dunn lab Department of Ecology & Evolutionary Biology Yale University

lamho86 commented 2 years ago

Please. This would be helpful to identify the source of error.