The history of FASIMU
FASIMU started in 2005 as an internal software solution to transfer networks which have been used within FluxAnalyzer to prepare input files for CPLEX, which use the so called LP-format to describe a linear programming problem. To obtain a higher flexibility, different parts - fragments - are generated to be merged together to form the .lp-file, to be input to CPLEX. The initial name for the project was fa2lpf, an abbreviation for transform files of the FluxAnalyzer to (2) .lp file f fragments. The basic structure lives on as there are still these .lpf-files.
In 2006 the program was involved in a drug target prediction project where it has been used to predict whether a knock-out of a reaction in the network is lethal. These computation series have led to explore the tweaks in CPLEX which are being standardly used now. Also, the automatic evaluation of the output of CPLEX was introduced in this time.
A main challenge 2007 was to include thermodynamic constraints into FBA since it heavily relied on correct settings of the reaction direction in conjunction with irreversibilty. Since in large networks the directionality of reaction is usually not known, TR has been developed and directly implemented into fa2lpf.
fa2lpf was involved in the verification of HepatoNet, a metabolic network reconstruction of the human hepatocyte. To check out whether the network correctly asserts a plethora of liver metabolic function, its simulation must be highly automized due to the sheer size: 300 simulations and 3000 reactions of the network. A set of scripts have been developed to fulfil this task. The basis of it was a description language of the liver functions which could be automatically analyzed, finally producing a single message: the network can do it or not.
In 2009 these HepatoNet-specific scripts were integrated into the workflow which presented a disadvantage: it could not be used for any other project. Therefore, these scripts were split into two parts, one could be generalized to any metabolic network, and the other part are filters for the specific environment of the HepatoNet project. The generalizable part was then called fasimu.
fa2lpf was network independent right from the start. First the HepatoNet scripts, then fasimu used its functions. This is the basis of the two layer-structure which still exists and also remains to do so, because it makes sense: fa2lpf performs a single flux distribution, whereas fasimu adds the functionality to compute a sereis of computations. Still, fa2lpf can be used alone.
It became quickly apparent that the basic idea of fasimu, the description language of simulations, is also suited to easily implement a lot of published methods based on FBA: FVA, pruning, leak analysis.
In 2008 there was still only one user of the software: the developer. Since it has proven to be a very stable and powerful solution its application by other users has been requested. The problem was that it was rarely documented, except for an rather outdated presentation on fa2lpf. The only documentation was the source code itself which was not as bad it sounds since it is programmed in the higher-level languages gawk in combination with bash. The first users of the software heavily relied on close contact to the author, they have been named contact users.
In 2009 came the decision to make the software available to many more users and to publish it. To do that several issues had to be addressed. Since the code for fa2lpf and fasimu has been developed separately, its basic standards differed. So both of them have been rewritten to get a more consitent user interface: a lot of files, functions and variables have been renamed. Because after that they were incompatible with older versions, fasimu has been given a new major version number (2) and fa2lpf has been renamed to fabase for easier pronounciation.
Another issue was the dependence on a commercial solver software. At that point, filters to the three other solvers have been developed which included the preparation of the input and the analysis of the output. Still a very important issue was documentation, in 2010 a manual and a tutorial has been drafted.
Throughout the HepatoNet project we had used quite a number of visualisation options. Finally, BiNA has proved to be the most effective on to assert the correctness of a individual flux distribution. Still, the preparation of data was still not straightforward. Thus, we worked towards it from two directions. Sabrina Hoffmann, Andreas Gerasch and myself developed a BiNA plugin directed towards the representation of metabolic fluxes. On the other side, a function was implemented in fasimu to prepare all necessary input for this plugin. In 2009 this reached the state, where the flux distribution just computed sould be visualized with a single command.
Another visualization option developed by Matthias König in our group (the Plugin FluxViz) also harmonized well with fasimu.
So we decided to put it all under a common frame which is FASIMU, now with uppercase letters, as the project, as opposed to fasimu in lowercase letters which is just the upper computation layer for flux calculation series on top of fabase.
That's it! I hope you enjoyed the story of FASIMU.