Ten Simple Rules for Effective Computational Research

In order to attempt to understand the complexity inherent in nature, mathematical, statistical and computational techniques are increasingly being employed in the life sciences. In particular, the use and development of software tools is becoming vital for investigating scientific hypotheses, and a wide range of scientists are finding software development playing a more central role in their day-to-day research. In fields such as biology and ecology, there has been a noticeable trend towards the use of quantitative methods for both making sense of ever-increasing amounts of data [1] and building or selecting models [2]. As Research Fellows of the “2020 Science” project (http://www.2020science.net), funded jointly by the EPSRC (Engineering and Physical Sciences Research Council) and Microsoft Research, we have firsthand experience of the challenges associated with carrying out multidisciplinary computation-based science [3]–[5]. In this paper we offer a jargon-free guide to best practice when developing and using software for scientific research. While many guides to software development exist, they are often aimed at computer scientists [6] or concentrate on large open-source projects [7]; the present guide is aimed specifically at the vast majority of scientific researchers: those without formal training in computer science. We present our ten simple rules with the aim of enabling scientists to be more effective in undertaking research and therefore maximise the impact of this research within the scientific community. While these rules are described individually, collectively they form a single vision for how to approach the practical side of computational science. Our rules are presented in roughly the chronological order in which they should be undertaken, beginning with things that, as a computational scientist, you should do before you even think about writing any code. For each rule, guides on getting started, links to relevant tutorials, and further reading are provided in the supplementary material (Text S1).

[1]  Derek Groen,et al.  Impact of blood rheology on wall shear stress in a model of the middle cerebral artery , 2012, Interface Focus.

[2]  Jonathan R. Karr,et al.  A Whole-Cell Computational Model Predicts Phenotype from Genotype , 2012, Cell.

[3]  Alexander G. Fletcher,et al.  Chaste: An Open Source C++ Library for Computational Physiology and Biology , 2013, PLoS Comput. Biol..

[4]  Paul F. Dubois Software Carpentry , 2006, Computing in Science & Engineering.

[5]  Bertrand Meyer,et al.  Seven Principles of Software Testing , 2008, Computer.

[6]  Retraction Kiehntopf,et al.  Retraction , 1997, Concurr. Comput. Pract. Exp..

[7]  Joel Dudley,et al.  Bioinformatics software for biologists in the genomics era , 2007, Bioinform..

[8]  Pras Pathmanathan,et al.  Chaste: using agile programming techniques to develop computational biology software , 2008, Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences.

[9]  Erika Check Hayden,et al.  Mozilla plan seeks to debug scientific code , 2013, Nature.

[10]  Melanie I. Stefan,et al.  Ten Simple Rules for Getting Help from Online Scientific Communities , 2011, PLoS Comput. Biol..

[11]  Philip E. Bourne,et al.  Ten Simple Rules To Combine Teaching and Research , 2009, PLoS Comput. Biol..

[12]  Darrel C. Ince,et al.  The case for open computer programs , 2012, Nature.

[13]  Michael C. Feathers Working Effectively with Legacy Code , 2004, XP/Agile Universe.

[14]  Clifford A Goudey,et al.  Aquaculture in Offshore Zones , 2006, Science.

[15]  Philip E Bourne,et al.  Ten Simple Rules for Getting Published , 2005, PLoS Comput. Biol..

[16]  Magali Michaut,et al.  Ten Simple Rules for Getting Involved in Your Scientific Community , 2011, PLoS Comput. Biol..

[17]  Luca Cardelli,et al.  A Peptide Filtering Relation Quantifies MHC Class I Peptide Optimization , 2011, PLoS Comput. Biol..

[18]  Andreas Prlic,et al.  Ten Simple Rules for the Open Development of Scientific Software , 2012, PLoS Comput. Biol..