Catalyzing Inquiry at the Interface of Computing and Biology

(nextflipdebug5) #1
204 CATALYZING INQUIRY

In the second category, issues related to implementing the model arise. Often such issues involve
the actual code used to implement the model. Computational models are, in essence, large computer
programs; issues of software development come to the fore. As the desire for and utility of computa-
tional modeling increase, the needs for software are growing rather than diminishing as hardware
becomes more capable. On the other hand, progress in software development and engineering over the
last several decades has not been nearly as dramatic as progress in hardware capability, and there
appears to be no magic bullets on the horizon that will revolutionize the software development process.
This is not to say that good software engineering does not or should not play a role in the development
of computational models. Indeed, the Biomedical Information Science and Technology Initiative (BISTI)
Planning Workshop of January 15-16, 2003, explicitly recommended that NIH require grant applications,
proposing research in bioinformatics or computational biology to adopt as appropriate, accepted practices
of software engineering.^126 Section 4.5 describes some of the elements of good software engineering in the
context of tool development, and the same considerations apply to model development.
A second important challenge as large simulation models become more prevalent is a standard
specification language to unambiguously specify the model, its parameters, annotations, and even the
means by which it is to be scored against data. The challenge will be to provide a language flexible
enough to capture all interesting biological processes and incorporate models at different levels of
abstraction and in different mathematical paradigms, including stochastic differential, partial differen-
tial, algebraic, and discrete equations. It may prove necessary to develop a set of nested languages—for
example, a language that specifies the biological process at a very high level and a linked language that
specifies the mathematical representation of each process. There are some current attempts at these
languages based on the XML framework. SBML and CellML are attempts in this direction.
Finally, many biological modeling applications involve a problem space that is not well understood
and may even be intended to explore queries that are not well formulated. Thus, there is a high
premium on reducing the labor and time involved to produce an application that does something
useful. In this context, technologies for “rapid prototyping” of biological models have considerable
interest.^127


(^126) See http://www.bisti.nih.gov/2003meeting/report.cfm.
(^127) Note, however, that in the rapid prototyping process often used to create commercial applications, there is a dialogue
between developer and user that reveals what the user would find valuable: once the developer knows what the user really
wants, the software development effort is straightforward. By contrast, in biological applications, it is nature that determines the
appropriate structuring and formulation of a problem, and a problem cannot be structured in a certain way simply because it is
convenient to do so. Thus, technologies for the rapid prototyping of biological models must afford the ability to rearrange model
components and connections between components with ease.

Free download pdf