[Biopython-dev] Nexus parser

Iddo Friedberg idoerg at burnham.org
Tue Feb 15 16:20:06 EST 2005


Hi all,

Good News: Frank Kauff & Cymon Cox has contributed a Nexus parser to 
Biopython, for our next release. It's a mighty useful and nifty package 
if you are into trees (the phylogenetic ones, not the ones in the 
forest). He put a lot of effort into this to get this ready for 
Biopython 1.40

Bad news: it's for Python 2.4. Please read on and I'd like to have your 
opinion on whether we should include this in the upcoming release. 
Python 2.4 stable has only been released less that 3 months ago, and 
many of our users may not have upgraded yet. Heck, I haven't (but I 
can). All current Linux distros use a <=2.3 version, and 2.3 does not 
have Sets. One thing we could do is put a Python version check in the 
setup.py file, and not include Nexus in the build if Python is not 
 >=2.4. However, the RPM builders should probably do without it.

Anyhow, please let me have your opinions about this.

Thanks, all. And thanks Frank & Cymon for your contribution.

Iddo

>Hi Iddo,
>
>here's the baby (please note that this is the result of a cooperation
>with Cymon J. Cox)  
>
>Nexus.py - the actual nexus parser,
>Trees.py - the module for reading and manipulating phylogenetic trees
>(used by Nexus.py)
>Nodes.py - provides a linked list which is the backbone of tree storage
>in Trees.py (but might be useful for other purposes as well)
>cnexus.c -  a c extension that does the first round of parsing through a
>nexus input file. Nexus.py works without cnexus.c, but is awfully slow
>with larger files (and Nexus files can be large).
>
>Assuming that it will live in Bio.Nexus, the import statements might
>need some adjustments.
>
>I also added test routines test_Nexus.py, the corresponding input file
>in Nexus/test_Nexus_input.nex and the correct output in
>output/text_Nexus.
>
>It just appears to me that it needs Python 2.4, because it uses sets,
>and it uses them in 2.4 syntax. Is this a problem? Is the next release
>of biopython still distributed for 2.2?
>  
>
>Nexus files come in lots of different flavors, and people use them for
>very different purposes. I expect a lot of bug reports (guess in
>contrast to the Ace and Phd parser we submitted earlier people might
>actually use it :-) ) - many of them probably due to the fact that a lot
>of programs writes "Nexus-like" output files completely ignoring the
>quasi-official Nexus standard from Maddison/Swofford/Maddison... As I
>don't have cvs access, I guess I'll send bugfixes to you?
>
>I'll do my best and write some cookbook introduction later this month.
>The parser has accumulated quite a few functions over time (esp.
>Trees.py), some of them might benefit from a few words of explanation.
>However, the basic functionality like 
>
>  
>
>>>n=Nexus('input_file.nex')
>>>print n.nchar, n.ntax, n.charpartitions
>>>      
>>>
>
>is pretty straightforward.
>
>
>Hope all this makes some sense, let me know if you need some more info. 
>
>Thanks for all your work with the new release!
>
>All the best,
>Frank
>
>
>  
>
-- 
Iddo Friedberg, Ph.D.
The Burnham Institute
10901 N. Torrey Pines Rd.
La Jolla, CA 92037 USA
Tel: +1 (858) 646 3100 x3516
Fax: +1 (858) 713 9930
http://ffas.ljcrf.edu/~iddo
==========================
The First Automated Protein Function Prediction SIG
Detroit, MI June 24, 2005
http://ffas.burnham.org/AFP




More information about the Biopython-dev mailing list