Scientific computing and computational analysis are becoming integral aspects of virtually any field of science, be it exact sciences like Physics, Chemistry and Biology, or social sciences. Efforts of many research laboratories are focused on creation of scientific codes for data generation, analysis and interpretation. However, publicly funded and often hard won scientific codes developed in a typical research laboratory too frequently become unsustainable beyond the lifetime of funding or shortly after staff rotation. Projects that are funded to afford expensive computer science expertise simply to maintain and update existing software divert scarce resources from the lab's primary goals and often translates the problem without resolving it. Only a select number of researchers receive sufficient funding to maintain and update software, limiting the dissemination of new ideas and techniques. The diversity and continually changing nature of software environments compounds the issues. Enabling user utilization presents hurdles in deployment, access and training. These issues also create barriers to the implementation of new ideas embodied in new codes. The GenApp project's goals are to address these issues. To begin with, GenApp enables the rapid dissemination of scientific codes to researchers with minimal software expertise. As more researchers use these codes, more of them become vested in the codes, which helps their sustainability.
The fundamental goal of this project is to advance the GenApp framework into a transformative tool to broadly benefit the scientific software developer community. GenApp is a generalized application generation framework intended for rapid deployment of scientific codes, which can generate both science gateways and stand-alone applications. Among the main unique features of GenApp are the minimal technical expertise requirement for the end user and an open-end design ensuring sustainability of generated applications. To produce fully functional applications, GenApp weaves libraries of fragments and user defined modules as directed by simple definition files, created from a uniform, logical, and simple-to-encode general interface definition file provided by GenApp. This general definition file and the underlying software can be reused indefinitely to produce applications in a variety of existing and yet-to-be defined software environments. Preserving such simplicity with GenApp's maturation is one of the main developmental strategies. To achieve the goal of GenApp four focus Aims have been proposed. The first is infrastructure development, which includes general enhancements to the capabilities of GenApp. The second is documentation, training, dissemination, outreach and sustainability - all important aspects to produce a software product that is useful to the community. The third is simply feedback, since user and developer feedback will help drive the first two Aims. The final Aim includes two structural biology domain science applications that will adopt and drive GenApp development. GenApp will see its primary practical utilization in making highly demanding novel computational and analysis tools accessible to experimentalists and theoreticians working in the nuclear magnetic resonance (NMR) and small-angle scattering (SAS) domains of structural biology. The GenApp framework will serve as a platform for applications utilizing advanced tools requiring efficient use of HPC resources, tools for modeling SAS data with molecular simulations, and a large software suite for a combined analysis of NMR and SAS measurements coupled to computational modeling. Easy access to these powerful tools will enable hitherto impossible studies of a number of fundamental biological problems.
This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.