[Biopython-dev] Building Gene Ontology support into Biopython

Peter biopython at maubp.freeserve.co.uk
Mon Oct 19 08:55:59 UTC 2009


On Mon, Oct 19, 2009 at 9:32 AM, Giovanni Marco Dall'Olio
<dalloliogm at gmail.com> wrote:
> On Sun, Oct 18, 2009 at 7:22 AM, Chris Lasher <chris.lasher at gmail.com>wrote:
>
>> 2) What is the Biopython stance on introducing third-party
>> dependencies? The gene ontology is represented a directed acyclic
>> graph (DAG) and I want to use an existing graph library rather than
>> roll our own. What would be the aversion to requiring either NetworkX
>> or igraph as a dependency for the GO library. (I have experience with
>> NetworkX and would prefer it, though I imagine igraph would be very
>> similar for nearly all the methods we'd need access to to construct
>> the DAG)
>
> introducing networkx as a dependency would also open the road to
> modules to work with pathways and networkx with biopython.
> For example, I have a partially complete script to parse Kegg's KGML
> files for pathway and put them into a networkx object.

I've not used NetworkX personally, but it looks cool. The only network
analysis I've done in Python used NumPy for adjacency matrices,
and GraphViz via pydot for graphical output.

> The problem is that biopython is a monolitic packages - you have
> to install it all or nothing.

And why is that a problem? This is a serious question. NumPy
is a build time dependency (due to the C code), but pure python
dependencies like MySQLdb (or potentially NetworkX) can be
installed after Biopython, if and when then are needed.

> Maybe in a future (it is just a tought) it would be better to
> have it as a repository of packages, like BioConductor.

If/when PyPI becomes the standard way to deal with Python packages
and interdependencies, then that might be workable. But without some
system like that in place, you'll only make installation harder. Out of
interest, have you ever tried installing BioPerl (via CPAN)? There is
a lot to be said for a single simple to install package as now.

Peter



More information about the Biopython-dev mailing list