pgfoster / p4-phylogenetics

A Python phyloinformatic toolkit, and an implementation of tree-heterogeneous models of evolution
GNU General Public License v2.0
29 stars 8 forks source link

Problem with combine tree supports #10

Closed abdo3a closed 7 years ago

abdo3a commented 7 years ago

when i tried combine tree supports from two analyses onto one tree. i got None/None

pgfoster commented 7 years ago

Firstly, can you confirm that the Example found in share/Examples/F_picture/E_combiningSplitSupports works?

If if works, but your trees do not, then you can ask how your trees differ from those in the Example. It may be that not all of the splits in your master tree have support values as node names. Node names follow the unparen in the Newick tree description like this

((A, B)myNodeName, C, D);

Perhaps your support values are placed in your trees in a non-standard way?

abdo3a commented 7 years ago

Thanks pgfoster for your reply, i got it now, my values were something ' [&label=47]' and once i removed everything and just keep values it's working

now, i wondering if it possible using p4 to something like:

if i have multiple gene copies for the same taxon and i want to know if this multiple copies lying in the same clade or not.

do you have any examples to do this?

Best Regards

Abdoallah Sharaf, Ph.D.

Postdoc. Fellow In Biology Centre ASCR Institute of Parasitology Branišovská 31 37005 České Budějovice, Czech Republic

and

Assistant Professor, Genetic Department Faculty of Agriculture Ain Shams University

On Tue, May 30, 2017 at 6:54 AM, pgfoster notifications@github.com wrote:

Firstly, can you confirm that the Example found in share/Examples/F_picture/E_combiningSplitSupports works?

If if works, but your trees do not, then you can ask how your trees differ from those in the Example. It may be that not all of the splits in your master tree have support values as node names. Node names follow the unparen in the Newick tree description like this

((A, B)myNodeName, C, D);

Perhaps your support values are placed in your trees in a non-standard way?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pgfoster/p4-phylogenetics/issues/10#issuecomment-304774494, or mute the thread https://github.com/notifications/unsubscribe-auth/AHbh3Bcll9ej5OxYGbQkV5mIuihH6Vefks5r-6ECgaJpZM4NpVuw .

pgfoster commented 7 years ago

i got it now, my values were something ' [&label=47]' and once i removed everything and just keep values it's working

OK, then the problem was that the support was in the tree as a Nexus "command comment". You can get command comments in a Beast tree by setting

var.nexus_getAllCommandComments = True
var.nexus_readBeastTreeCommandComments = True

and then the various command comments will be placed on the Node objects of the Tree.

now, i wondering if it possible using p4 to something like: if i have multiple gene copies for the same taxon and i want to know if this multiple copies lying in the same clade or not. do you have any examples to do this?

Sorry, no examples come to mind. However the tools for querying trees exist in p4. Poke around to see what is there.

abdo3a commented 7 years ago

Sorry Peter for disturbance,

i have this issue:

when i use mytree.taxNames it return with empty list also with mytree.getAllLeafNames function in the time another function like my mytree.nodes is working even when i used a tree from your examples, i had the same so what is the problem?

Abdoallah Sharaf, Ph.D.

Postdoc. Fellow In Biology Centre ASCR Institute of Parasitology Branišovská 31 37005 České Budějovice, Czech Republic

and

Assistant Professor, Genetic Department Faculty of Agriculture Ain Shams University

On Tue, May 30, 2017 at 1:33 PM, pgfoster notifications@github.com wrote:

i got it now, my values were something ' [&label=47]' and once i removed everything and just keep values it's working

OK, then the problem was that the support was in the tree as a Nexus "command comment". You can get command comments in a Beast tree by setting

var.nexus_getAllCommandComments = True var.nexus_readBeastTreeCommandComments = True

and then the various command comments will be placed on the Node objects of the Tree.

now, i wondering if it possible using p4 to something like: if i have multiple gene copies for the same taxon and i want to know if this multiple copies lying in the same clade or not. do you have any examples to do this?

Sorry, no examples come to mind. However the tools for querying trees exist in p4. Poke around to see what is there.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pgfoster/p4-phylogenetics/issues/10#issuecomment-304851144, or mute the thread https://github.com/notifications/unsubscribe-auth/AHbh3MaoSilVn3ZF1aa4FQ-SkOeln3Fvks5r-_6MgaJpZM4NpVuw .

pgfoster commented 7 years ago

when i use mytree.taxNames it return with empty list

The order of the taxNames is often important, and so I have made it so that it must be set explicitly. An easy source of ordered taxNames is from an alignment, such as

a = func.readAndPop('myDataFile.nex')
t = func.readAndPop('mySingleTree.phy')
t.taxNames = a.taxNames
abdo3a commented 7 years ago

Thanks peter, i got it

Now, a couple of issues has been arising:

Regards

Abdoallah Sharaf, Ph.D.

Postdoc. Fellow In Biology Centre ASCR Institute of Parasitology Branišovská 31 37005 České Budějovice, Czech Republic

and

Assistant Professor, Genetic Department Faculty of Agriculture Ain Shams University

On Wed, Jun 7, 2017 at 12:51 PM, pgfoster notifications@github.com wrote:

when i use mytree.taxNames it return with empty list

The order of the taxNames is often important, and so I have made it so that it must be set explicitly. An easy source of ordered taxNames is from an alignment, such as

a = func.readAndPop('myDataFile.nex') t = func.readAndPop('mySingleTree.phy') t.taxNames = a.taxNames

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pgfoster/p4-phylogenetics/issues/10#issuecomment-306759987, or mute the thread https://github.com/notifications/unsubscribe-auth/AHbh3LSbJXyDNFFGqWulz3BafNTD4KATks5sBoCsgaJpZM4NpVuw .

pgfoster commented 7 years ago

how to get the node number of a taxon in a tree?

That is fairly well documented in the doc strings in the Tree class.

myNodeNum = t.node('Mastodon').nodeNum

is any examples of using taxSetIsASplit function?

No, I have not made an example for that. (It is a method, not a function.)

abdo3a commented 7 years ago

Thanks for your reply Peter,

- is it a method that i can check splitting of a set of taxa in my tree?

- it's not clear for me, how to use class NexusSets as TaxSet object?

-finally, how did you create mysets.nex file in the class NexusSets examples?

Regards

Abdoallah Sharaf, Ph.D.

Postdoc. Fellow In Biology Centre ASCR Institute of Parasitology Branišovská 31 37005 České Budějovice, Czech Republic

and

Assistant Professor, Genetic Department Faculty of Agriculture Ain Shams University

On Thu, Jun 8, 2017 at 7:25 AM, pgfoster notifications@github.com wrote:

how to get the node number of a taxon in a tree?

That is fairly well documented in the doc strings in the Tree class.

myNodeNum = t.node('Mastodon').nodeNum

is any examples of using taxSetIsASplit function?

No, I have not made an example for that. (It is a method, not a function.)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pgfoster/p4-phylogenetics/issues/10#issuecomment-307001952, or mute the thread https://github.com/notifications/unsubscribe-auth/AHbh3IEhEmFW_VHFDOt28c8GdE46eCHYks5sB4XjgaJpZM4NpVuw .

pgfoster commented 7 years ago

regards to the taxSetIsASplit methods

  • is it a method that i can check splitting of a set of taxa in my tree?

Yes, you could do that. I find using tax sets (a kind of nexus sets block) to be a little awkward, so I myself don't do that much at all. There are other ways, such as is given in the "combining splt supports" example. I know that other people use my tree traversal methods but using sets.

  • it's not clear for me, how to use class NexusSets as TaxSet object? -finally, how did you create mysets.nex file in the class NexusSets examples?

All things Nexus can be found in Maddison, Swofford, Maddison, 1997. DOI: https://doi.org/10.1093/sysbio/46.4.590 It is awkward to make NexusSets (http://p4.nhm.ac.uk/modules/nexus_sets.html) objects programmatically --- it is probably easier to just read in nexus-formatted sets definitions as text.

This has become too far off the original topic, so I am closing this issue.