We're happy to collaborate with other developers of scientific software which simulate or visualize the "small" world,
especially biological systems. If you're interested in the exploration of new and exciting areas of research, then feel free to contact us.
We're also interested in objectively determining the ability of stochastic simulation to make precise quantitative predictions on the dynamics of
biological systems, especially gene expression. While stochastic simulation has been shown to be very accurate when you
know the details of the system, there has been limited study of its capabilities with incomplete or imprecise information.
We're curious to see if a blind test of the capabilities of stochastic simulation (and mathematical modeling in general) will help improve its
shortcomings. So if you're intrigued (and you have data), then drop us a line.
In general, if you're interested in helping out by submitting bugs, fixes, or new code, then you'll need a SourceForge account. You can create one (it's free) and then
email me for more details.
The ToDo List
A brief list of tasks that should be done and will be done sometime in the near or far future.
If something below peaks your interest, then feel free to contact me.
Take advantage of the new NetCDF v4 features.
Nested Groups: Put the model data for each model in a separate group. This will allow models to contain different numbers of
reactions/species without hacksy tricks. More object-oriented style of encoding the model data.
Can use structures as new "compound" data types. The NetCDF variable can then more exactly mirror the Fortran structure for
reactions instead of each field of the structure being mapped as its own NetCDF variable.
Can store UTF-8 (Unicode) strings as a native datatype. This might be useful for embedding XML into a NetCDF file (such as
SBML).
Automatic de/compression of every NetCDF file. Any repeat model data will be compressed. Solution data compresses especially
well.
Can use multiple unlimited dimensions. Right now, the model dimension is the only unlimited dimension. It might make sense to
include the number of species/reactions as unlimited, as well, but it might hinder performance in read/write operations.
Use the new Parallel IO read/write functions where needed.
Create a Wiki to document how each NetCDF file is structured. Allow people to add non-overlapping variables/dimensions/etc so
that new methods can extend the use of a NetCDF file without recreating the wheel.
Rewrite much of the dataio.f90 source to accodomate NetCDF v4 changes. While it's being rewritten, create the define/write/read
subroutines to be more modular (eg. create a subroutine that defines/writes/reads any time series or ensemble data, etc).
Get rid of the Experiment Type ('ExpType') variable. Instead, encode the data to be more 'ExpType-neutral' (eg. if only a single model
exists, create the Models dimension but set it to length one). To define the type of 'experiment' the NetCDF file encodes, use a more descriptive
string.
Create a Test Suite of NetCDF files that systematically checks the accuracy/speed of each algorithm and feature.
Add the equation-free probabilistic steady state approximation code. Integrate it into HyJCMSS.
Include the energy balance equations for non-isothermal systems.
When the time is right, add the new methods for computing random attractors, random eigenvalues, etc etc.
Use f2py to create a Python interface.
Create a Mex interface for calling subroutines from Matlab.
Heterogeneous systems. Particle simulation. SPDE solvers. Mesoscale models of DNA conformational motion. And the list goes on ...
Also, create a new, better GUI. Suggestions are welcome. I'm leaning towards a Python GUI or a Turbogears (Python + Javascript + SQL)
based
Web interface. Web 2.0 means never having to say "Patch me!"