BIRCH/Python API

From Bioinformatics.Org Wiki

Jump to: navigation, search

Contents

Current Developement

Graham has a created a python API that is in the process of being transitioned onto Git.

Platform independence

Currently, the move to python buys a lot of platform independence. In the bigger picture, using jython will reduce birch to only needing java as a dependency.

To solve a large number of problems, a "BIRCH Shell/Server daemon" should be written. This would allow for:

Birch daemon

The BIRCH daemon would just be an infinite-loop turing machine, waiting for requests from a client, and responding to those requests.

Birch shell

The BIRCH shell will just be a frontend for the BIRCH daemon, providing text/command based I/O to the user, simulating a simplistic shell. The idea here is to use this to replace the system shell for text based interactions, providing a consistent UI.

It should work transparently, inheriting the users PATH variable, so that they can use it like any other shell.

This part will be very simple to code, and it will likely be very small in Jython.

Emerging python API

Common tasks in scripts:

We can use the existing getbirch code jython code for much of this, but both getbirch and the existing scripts must be refactored for this.


Recommendation (BF):

1. All Python scripts begin with #!/usr/bin/env python

2. Python scripts use either the .py or .pyc extension. This should also reflected in the documentation.

3. Override system default Python with a symbolic link in $BIRCH/local/bin-xxx-xxx.

Python Documentation

All of the python scripts have been updated to work well with the "pydoc" built-in python module.

A master documentation generating script has also been created, "birchdoc.py". Running birchdoc.py should create an html_help directory with all of the documentation for the scripts (in the current working directory)

We need a centralized location for python documentation. I suggest the psgendb public_html directory, using a script to automatically run pydoc.


Jython compatability

We need to make sure that all scripts can be run under Jython. That way we could potentially have a BIRCH that requires ONLY Java, and does not need to have Python installed on the system.

Dale already has a lot of Python classes that are known to be compatible.

We should move away from calling Python scripts by name. Instead, make calls to our API within the current Python VM.

Personal tools
Namespaces
Variants
Actions
wiki navigation
Toolbox