Better together: Elements of successful scientific software development in a distributed collaborative community
Open Access
- 4 May 2020
- journal article
- review article
- Published by Public Library of Science (PLoS) in PLoS Computational Biology
- Vol. 16 (5), e1007507
- https://doi.org/10.1371/journal.pcbi.1007507
Abstract
Many scientific disciplines rely on computational methods for data analysis, model generation, and prediction. Implementing these methods is often accomplished by researchers with domain expertise but without formal training in software engineering or computer science. This arrangement has led to underappreciation of sustainability and maintainability of scientific software tools developed in academic environments. Some software tools have avoided this fate, including the scientific library Rosetta. We use this software and its community as a case study to show how modern software development can be accomplished successfully, irrespective of subject area. Rosetta is one of the largest software suites for macromolecular modeling, with 3.1 million lines of code and many state-of-the-art applications. Since the mid 1990s, the software has been developed collaboratively by the RosettaCommons, a community of academics from over 60 institutions worldwide with diverse backgrounds including chemistry, biology, physiology, physics, engineering, mathematics, and computer science. Developing this software suite has provided us with more than two decades of experience in how to effectively develop advanced scientific software in a global community with hundreds of contributors. Here we illustrate the functioning of this development community by addressing technical aspects (like version control, testing, and maintenance), community-building strategies, diversity efforts, software dissemination, and user support. We demonstrate how modern computational research can thrive in a distributed collaborative community. The practices described here are independent of subject area and can be readily adopted by other software development communities.Keywords
This publication has 36 references indexed in Scilit:
- Serverification of Molecular Modeling Applications: The Rosetta Online Server That Includes Everyone (ROSIE)PLOS ONE, 2013
- Algorithm discovery by protein folding game playersProceedings of the National Academy of Sciences of the United States of America, 2011
- Generalized Fragment Picking in Rosetta: Design, Protocols and ApplicationsPLOS ONE, 2011
- The Proteome Folding Project: Proteome-scale prediction of structure and functionGenome Research, 2011
- RosettaScripts: A Scripting Language Interface to the Rosetta Macromolecular Modeling SuitePLOS ONE, 2011
- Rosetta3Methods in Enzymology, 2010
- Predicting protein structures with a multiplayer online gameNature, 2010
- PyRosetta: a script-based interface for implementing molecular modeling algorithms using RosettaBioinformatics, 2010
- Assessment of the optimization of affinity and specificity at protein–DNA interfacesNucleic Acids Research, 2009
- Structure prediction for CASP8 with all‐atom refinement using RosettaProteins, 2009