BIRCH/Developer resources
From Bioinformatics.Org Wiki
Contents |
Overview
This page will discuss the development paradigms and development background with respect to BIRCH. It is intended to act as a log of major development ideas, as well as an introduction to new BIRCH developers.
The History of BIRCH
BIRCH, an acronym for Bio-Informatics Research Command Hierarchy started off in the command line, terminal days of computing. It was originally a set of command-line tools that were organized into a folder (forming the "BIRCH"). It was the brainchild of bio-informatics researcher and software developer Brian Fristensky.
As it is often required to send output from one program into another, and to set a number of parameters for these various programs, a set of c-shell scripts were written to form these data pipelines, and some-what automate the process.
As BIRCH progressed into its graphical stage, GDE (Genetic Development Environment) was used to automate the creation of a C-based GUI from a set of menu files, specifying things like what commands should be run and how the parameters should be input graphically.
As GDE began to deprecate, and platform dependence became a concern, a java implementation of GDE was created largely by Graham Alvare called bioLegato. In the summer of 2010, GDE was fully deprecated and work began on a new menu language for bioLegato to allow for further expansion.
The future of BIRCH
This is an abstract topic, an area to throw up new ideas and spark debate and hopefully intrigue.
Developers and users alike should post their ideas here, to keep everyone's views of BIRCH in focus.
BIRCH/Developer resources/Dale's Ideas
BIRCH/Developer resources/Graham's ideas
Developer resources
Version control
Git-kit
Mandatory reading for BIRCH developers:
Git Reading material, in order of priority
Git referencce material:
- A good git reference, sorted by "Introduction", "Intermediate", and "Advanced" git interactions everyone should take a look at beginner.
- Everyone should read through the introductory chapters of this guide: it will take an hour at the most
- Git in a nutshell
Troublesheeting/ FAQ
Getting used to Unix
Unix has an intricate permission and group ownership. By default all files created will have fairly locked down permissions. Please change this by adding the following line to your .bash_profile and/or your .profile file:
umask 0002
Also, if you are doing work on the psgendb account, please add the following line to change your default group from student to psgendb:
newgrp psgendb
After making these changes, all files should be created with 664 permissions, and should be accessible to the "psgendb" group.
BIRCH/Developer resources/IST Unix&Linux resources
Python Development
- The python documentation is very good, and you will probably need to review this "os" module API
- Dive into Python is a GREAT free ebook for learning python!
- Daniweb has lots of great tips, you will see them come up in google searches a lot!
- Pydev is a great plugin for eclipse
Java Development
This author has been primarily doing python development, someone else should write this section!
Screencasting
Linux: I recommend using "gtk-recordmydesktop" for screencasting on linux. Note however that this outputs an OGV (ogg-vorbis/theora) file, where most applications demand an AVI.
To convert an ogg to an avi, I recommend mencoder:
mencoder /path/to/the/source/ogv/file.ogv -o /path/to/the/avi/output/file.avi -ovc lavc -oac pcm