[BioPython] Python as educational tool

Brad Chapman chapmanb@arches.uga.edu
Fri, 14 Jul 2000 10:28:39 -0400


Hi Johannes;

> I am entirely new to this list and, I'll have to add, the whole 
topic.
> We are planning a bridging course for scientists towards 
bioinformatics.
> The course is to last a whole year and contains a par force tour 
through
> medicine, genomics, data management, statistics, and the like.

Sounds very ambitious! That shound be lots of fun to do.

> The issue is about how to teach introductory programming. The notion 
goes 
> that Python is a clean and tidy language useful for introductory 
informatics.
> The mere existence of a project like biopython sounds like a viable 
> choice. 

Well, since I program for the biopython project I am extremely biased, 
but I find python to be a great language to code in. For me it was 
very quick to learn (I just picked it up at the end of last year -- my 
previous programming experience was mostly in C++) and there is a lot 
of great free documentation that goes along with it. Another things 
which makes it very nice, in my opinion, is that there are tons and 
tons of useful modules that come with the standard library. Using 
these helped me start writing programs that "do useful things" very 
rapidly.
    To be fair -- if you haven't checked them out there are two other 
similar projects: Bioperl (www.bioperl.org) and Biojava 
(www.biojava.org). No need to get into a language war over which is 
best (since clearly it is python :-), but I thought these should be 
something else to know about if you are still deciding on a language 
to work in. 

> From short glances over the homepage, however, my impression is that
> one still has to set a high tolerance threshold regarding initial 
frust-
> ration before one actually sees some nice results. Of course, this 
is what
> programming is about, but given your impression of the state of the 
project,
> do you think that a biologist after, say, six weeks of python 
tuition, could 
> seriously learn more about computational molecular biology using 
parts of
> the project?

    We just wrote a paper about Biopython for an Association of 
Computing Machinery newsletter, which I posted yesterday 
(http://www.biopython.org/pipermail/biopython/2000-July/000305.html). 
This is meant to give a quick overview of what is in Biopython right 
now and what is planned, so this might help assess what we've got and 
how easy it will be to use. It has code examples, so that should also 
help give an idea of things.
    Right now, documentation for Biopython is pretty lacking, but this 
will be changing quite soon. As soon as this paper is out (later 
today!), I'll be spending my time on biopython helping Jeff do 
documentation writing. The whole framework is already outlined for it, 
we just need to start writing. I'm not positive what your timeframe is 
for your class and everything, but I would imagine that the first 
useful bits from me will be coming out next week, with something 
fairly complete in 2 to 3 weeks. The plan for the documentation is to 
make it a cross between a documented API reference (a la the python 
library documentation) and bits of useful tricks and hints (a la the 
Perl Cookbook).
    So to answer your question (finally :-), I think there is a lot of 
useful stuff that is accessible with some python background. 
Biopython admittedly does not have as much as Bioperl or Biojava, but 
does have a lot to offer. We just had a recent developers release, so 
it might also be worthwhile to take a look at this to see everything 
that is available.
    
> I am talking about a potential enlargement of the user base here, so 
I am 
> expecting biased answers :-), yet I would heartily welcome any 
answers 
> to my question.

I for one would be very happy if you chose to use Biopython stuff in 
your class. Gee, lots of users, who could argue with that! I hope my 
rambling on in this mail helped some with your decision. If you have 
more questions, please feel free to ask. Thanks again for writing!

Brad