[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