Revision as of 15:59, 7 April 2009

Contents

Development page for the PopGen module.

Introduction

The PopGen module contains modules to handle population genetics data, applications and algorithms.

History and philosophy

Most of the existing Bio.PopGen features are of non-core population genetics functionality. This was seen as feature (and not as a bug) in order to start building a module with functionality where newbie crass errors would not have dramatic consequences. Currently, with the experience accumulated is is possible and desirable to concentrate on core population genetics functionality (i.e., statistics).

Also worth noticing is that we wrap existing functionality whenever possible. For instance we don't provide our own coalescent simulator, but we provide wrappers to an existing one which is established and widely used (SIMCOAL2).

Future Goals

The fundamental goal is to have support for "classic" population genetics operations (statistics). This should be provided in an extensible, easy to use and future-proof framework. Code exists (see below on how to find it), but will probably be refactored. Below there is also a with list where you can add your desired features.

In the pipeline

Currently (i.e., for the near term) the following new functionality can be expected

Code and contributing

Join us on the biopython-devel mailing list and tell us about your ideas so that we know who is working on what, and can discuss the the viability of including your contribution on the official release.

You are completely free to work on your own branch (but, if you want your changes to go to the official distribution don't forget to go to biopython-dev and discuss what you are doing).

When you feel your contribution is ready and you would like to propose it to the official distribution, your branch will have to be merged with the main development one. Contact the mailing list for help with doing this. You are expected to have production quality code (this includes unit tests and documentation). If you have doubts about unit testing and producing documentation, don't hesitate to contact the mailing list.

Here are documented existing development branches. These branches are informal places where developers are creating new functionality, correcting bugs, etc... Feel free to add yours (or fork from existing ones). If you are interested in any of them contact the author directly or go to the mailing list.