State of the Comparator

Comparator design
Comparator reality

The package layout for the Comparator as it appears here is mostly conceptual. PASTA isn't very flexible for mocking up anything except an exact correspondence between design and Java packages. Here are the major things that are different than they appear in the design:

The real discrepencies is a cyclic dependency. The data package should not depend on the ui package. This is caused by the interface in ProgrammaticDataGenerator. This should be broken off into a separate class as was done with transforms and objective functions.

State of JigCell

JigCell design
JigCell reality

The reality of JigCell took a big step forwards recently with the splitting off of the SBML parser to the sbml2 package. That eliminated a lot of bad interactions between the modelbuilder, biopack, and wrappers. The wrong way dependencies with biopack have been promised a fix by Jason this summer. Currently, the modelbuilder and wrappers package depend on biopack which causes all kinds of problems with getting a working Biopack installation.

That leaves wrappers as the next real trouble spot to deal with. It is actually not as bad as it appears in the reality diagram. Anything to do with the Report Generator should be kicked out of wrappers and into the reportgen package. The cyclic dependencies with modelbuilder and runmanager can probably be fixed by shuffling a few havily referenced classes around, most notably the SBML to XPP translator. Moving that class out of sbml2 was a big win in making a separate SBML parser. The design is going to get a change eventually: the xppwrapper package is not really necessary and doesn't add much.

The cyclic dependencies involving the Comparator are bogus due to PASTA's limited organization of packages. Here's the current status which matches the design:

Since compare does not depend on cellcycle that breaks all the dependencies that PASTA thinks are present. That means that fixing the wrappers and biopack packages would leave just the aberrant dependency from modelbuilder to runmanager. And, that would get fixed for free if the SBML to XPP translator got moved. That's the only time modelbuilder uses the runmanager package.