Prototype to Release: Software Engineering for Scientific Software

Set objectives and follow through

Having engineered several scientific software applications for public consumption, the authors know from experience that the process offers unique challenges. Typically, the algorithms being implemented are complex; the process involves numerous developers with various backgrounds and skill sets; and it all takes place in a fast-paced environment where new methods must be prototyped and tested regularly.

 



Resolution Limits of Optical Microscopy and the Mind

How precise an image can fluorescence microscopy provide?

As modern optics and cell biology have flourished in recent years, they’ve each driven innovation in the other. Yet commonly employed imaging techniques, such as fluorescence microscopy, have run up against fundamental limits of precision. We want to measure ever-smaller objects at ever-shorter time intervals, but the relatively long wavelengths of visible light are a barrier to how precisely we can observe the minute and rapidly changing biological world.



Continuum Mechanical Modeling of Biological Growth

Unlike most classical engineering materials, biological tissues can adapt to external stimuli by growing in volume: Skin grows in response to wounding; muscles grow in response to exercise; cancer cells grow into tumors; and heart muscles become enlarged in response to high blood volume. To understand these adaptive processes and their role in various chronic diseases, it can be useful to study them in predictive computer models of cells, organs, organ systems and whole organisms.

 



Dimension Reduction and Manifold Learning: When Less Is More

The Fall 2005 “Under the Hood” column discussed the curse of dimensionality—too many numerical components for each data point—and the curse of dataset sparsity—too few data points. One way to treat these problems in concert is to examine the geometric relationships between the data points, and represent the data with fewer descriptors that retain the salient structure.

 



How Upper Level Ontologies Deal With Functions and Other Realizable Entities

Before categorizing things, you have to decide on the categories.  For material “things” (e.g., molecules, organs, etc.) or entities, the task is relatively straightforward. But often in biomedicine, you need to also categorize abstract aspects of these material entities, such as their function or role.  To tackle that task, ontologists create what are called “upper level” ontologies. Such ontologies (e.g., DOLCE, BFO) provide a basic classification of reality without addressing domain-specific entities (such as heart, platelet, or patient).



Efficiently Evaluating Mathematical Expressions with OpenCL Code

A unique opportunity to build both flexibility and high performance into a piece of software.

OpenCL is a cross-platform language for doing general purpose computation on graphics processing units (GPUs) and other massively parallel architectures. One of its most interesting features is the fact that the compiler is built into the runtime. This means that while a program is running, it can programmatically generate the source code for new computational kernels, compile them, and execute them at full speed on the GPU.

 



Syndicate content