This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Fasta File To Phylogenetic Tree

Hi everyone, I am interested in building web application which can take input as a fasta file and then convert those fasta file into an "alignment file" internally. Then i want to build a phylogenetic tree of that alignment tree. Can anyone give a clear guideline to accomplish my project or is this not possible?

Thanks in advance

Thaman

fasta phylogenetics

"build a phylogenetic tree" - what sort of trees would you want to build? Just distance trees, or proper max. parsimony/likelihood or Bayesian inference?

Maximum likelihood tree

4 answers

I have implemented a similar workflow using Fasta file of protein sequence as input, alignment using MALIGN. Output from MALIGN (alignment file) is used as infile for phylip programs

(alignment -> seqboot -> protdist -> neighbor -> consense)

output of distance file is used in modified version of a bioperl script based on TreeIO for the visualization.

If you need any background reading on phylogeny tree implementation, I strongly recommend this article. You can implement this using any combination of programs for example a new improved tool SATCHMO-JS is available for similar application.

I understood in this way:-

1) Alignment= input (.fasta file ) align (MALIGN, ClustalW) will produce (.aln file) 2) Tree Construction= input (.aln file) implement (NJ, UPGMA) using Phylip, PAUP, clustalw (will produce .tre file) 3) TreeView= input (.tre file) construct (TreeView, JalView)

I am using Python to carry out the project and what else module do i need in python according to listed requirements?

I succeed in getting Alignment output from MUSCLE. How can i pass command line argument to phylip application suppose i want to use protdist? keeping in mind that phylip doesn't have biopython wrapper. I have been stuck on this problem for atleast 2 days searching command line wrapper for inputting and outputting results between applications.

You can include phylip in your python script using system command, you can call individual individual programs like protdist, seqboot etc. Remember to provide input parameters in a steering file. For example protdist < pd_input. Here pd_input is a text file with all the parameters that you are planning to pass on to protdist.

Do i need emboss wrapper to call directly from commandline? Or i can call like "cline=fprotdistCommandline("protdist.exe", input="", output=".tree"

Yes, it is possible - and feasible using current programs. You can take a look, for instance, at the DIVEIN and Datamonkey web services. As mentioned by Ning-yi Shao, there are also web servers that do the alignment.

That means i can use clustalw module in the python? I am just starting in this area and not so clear about uses of tools and algorithms.

This is certainly possible, and you can get some inspiration from http://www.phylogeny.fr/.

In particular, pay attention to the "a-la-carte" mode (select from Phylogeny Analysis from top menu). A typical phylogenetic reconstruction procedure is a multi-step workflow from making the alignment, improving the alignment, tree building and tree viewing. There are a few choices of programs at different steps - for example, pick a fast alignment method versus a slow but more robust one.

The "one-click" mode exposes less details (and thus less flexibility) for the end-users. With this mode, the application just go ahead with some default programs (MUSCLE,GBLOCKS,PHYML,TREEDYN), that offer reasonable trade-off between speed and accuracy.

This project is awesome with different features. Wish i can atleast develop some features included in it. Thanks for the description and link. :)

Mobyle already provides this functionality and more:

http://mobyle.pasteur.fr/cgi-bin/portal.py

I am curious to build my own though i know there are several portal providing same features.

Log in to answer this question.