retrieve SNPs from each branch

376 views
Skip to first unread message

Amine

unread,
Sep 27, 2013, 8:34:01 AM9/27/13
to ra...@googlegroups.com
Hi all,
is it possible when working with RaxML to retrieve the list of SNPs for each branch of the constructed tree? I think its not possible but I prefer to ask may be a miss something!. For small alignment its easy to do it but for long alignment like whole genome it would be nice to have this kind of information at the end, in a separate file. for example: branch label followed by the list of mutation position (alignment position). 
Thanks

Alexandros Stamatakis

unread,
Sep 27, 2013, 9:44:54 AM9/27/13
to ra...@googlegroups.com
Hi Amine,

This is not implemented in RAxML for sure.

If you could explain what you need in a bit more detail (not sure I
understand what you need) I could maybe try to implement this in RAxML.

Alexis
--
Alexandros (Alexis) Stamatakis

Research Group Leader, Heidelberg Institute for Theoretical Studies
Full Professor, Dept. of Informatics, Karlsruhe Institute of Technology
Adjunct Professor, Dept. of Ecology and Evolutionary Biology, University
of Arizona at Tucson

www.exelixis-lab.org

Amine

unread,
Sep 27, 2013, 11:01:17 AM9/27/13
to ra...@googlegroups.com
Hi Alexis,
thanks for your replay. ok, in fact my felt the need of this kind of result when I start to get more genomes each time.  for me, and others I am sure, is at the end of the RAxML process another file will be created in addition to all others outputs (bestTree, bipartition....) another one in this format for example:
branch-label1: 3 656 6556.... (all position of SNPs  in that specific branch)
branch-label2:
.
.
.
branch-labeln:

(a tree file must be also created just to know the label of each branch)

so it will be really easy like that to follow the accumulation of SNPs from inner to outer branches of the constructed tree. A lot of analyses could be done based on this information. 

It will be really Great to do it.
Thanks for you and your team.
Amine

Amine

unread,
Sep 27, 2013, 11:10:06 AM9/27/13
to ra...@googlegroups.com
sorry for the english, I wrote very fast. I hope the general idea is clear.

Alexandros Stamatakis

unread,
Sep 28, 2013, 4:43:32 AM9/28/13
to ra...@googlegroups.com
not really, what I don't get is how you would associate certain SNPs to
specific branches,

Alexis

On 09/27/2013 05:10 PM, Amine wrote:
> sorry for the english, I wrote very fast. I hope the general idea is clear.
>
> Le vendredi 27 septembre 2013 17:01:17 UTC+2, Amine a �crit :
>>
>> Hi Alexis,
>> thanks for your replay. ok, in fact my felt the need of this kind of
>> result when I start to get more genomes each time. for me, and others I am
>> sure, is at the end of the RAxML process another file will be created in
>> addition to all others outputs (bestTree, bipartition....) another one in
>> this format for example:
>> branch-label1: 3 656 6556.... (all position of SNPs in that specific
>> branch)
>> branch-label2:
>> .
>> .
>> .
>> branch-labeln:
>>
>> (a tree file must be also created just to know the label of each branch)
>>
>> so it will be really easy like that to follow the accumulation of SNPs
>> from inner to outer branches of the constructed tree. A lot of analyses
>> could be done based on this information.
>>
>> It will be really Great to do it.
>> Thanks for you and your team.
>> Amine
>>
>>
>>
>>
>>
>>
>>
>> Le vendredi 27 septembre 2013 15:44:54 UTC+2, Alexis a �crit :

Alexey Kozlov

unread,
Sep 28, 2013, 7:20:43 AM9/28/13
to ra...@googlegroups.com
If I understood correctly, the idea is just to compare states at the both nodes adjacent to a given branch, and if they are different at certain positions, report mutation/SNP at these positions for that branch. 

Sounds like a parsimony, but under ML it could be not that straightforward, since we assume that multiple mutations can happen along the branch (A -> T -> A).


2013/9/28 Alexandros Stamatakis <alexandros...@gmail.com>
not really, what I don't get is how you would associate certain SNPs to specific branches,

Alexis


On 09/27/2013 05:10 PM, Amine wrote:
sorry for the english, I wrote very fast. I hope the general idea is clear.

--
You received this message because you are subscribed to the Google Groups "raxml" group.
To unsubscribe from this group and stop receiving emails from it, send an email to raxml+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Grimm

unread,
Sep 30, 2013, 5:01:41 AM9/30/13
to ra...@googlegroups.com

Hi Amine,

I think what you want to do is to follow certain mutations (the sites with SNPs) along the ML tree, essentially using a MP plot. But note that Alexej's comment is true, under ML we explicitly work under the assumption that our transformation probability also includes the probability for backmutation along branches, which MP will miss.

Anyway, here is what you can do using Mesquite www.mesquiteproject.org and the RAxML output

Step 1: Make a reduced character matrix including only the position with SNPs.

Step 2: Open this matrix in Mesquite (either import the RAxML's extended phylip format as "PHYLIP" or just open an according NEXUS file)

Step 3: Read in ("link") the RAxML output tree file RAxML_besttree.xxx and show this tree in a tree window (important: the labels and taxa set needs to be exactly the same in the matrix than in the tree!)

Step 4: Root the tree according to what you find is appropriate with the "Root Tree" tool (current character plots always work on rooted trees, but phylogenetic inferences usually provide an unrooted tree)

Step 5: Then use Mesquites "Trace Character" function to plot the character progression in the SNPs on the ML tree. You can do this using MP, but also ML or stochastic mapping. The latter two may be theoretically much more suitable for such a task, but not so easy to interpret.

bw, Guido

Amine

unread,
Sep 30, 2013, 5:30:24 AM9/30/13
to ra...@googlegroups.com
Hi All,
Grimm, you used the right words to explain what I want :). I totally agree with Alexey that its more parsimony than ML. Normally what I do is that I use pamp (parsimony reconstruction) from the PAML package to determine for each node and so the branch associated to that node, the ancestral state. I agree that what I was  asking for is a kind of swiss knife (even if I like swiss knives!) but I think it could be really helpful to implement that with RAxML and include it as an option. Anyway thank you all, an thank you Grimm for this step by step explanation. I will follow your suggestion and let you know about the result. 
Many thanks,
All the best,
Amine
Reply all
Reply to author
Forward
0 new messages