{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,27]],"date-time":"2026-02-27T05:07:07Z","timestamp":1772168827922,"version":"3.50.1"},"reference-count":24,"publisher":"F1000 Research Ltd","license":[{"start":{"date-parts":[[2017,3,15]],"date-time":"2017-03-15T00:00:00Z","timestamp":1489536000000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["f1000research.com"],"crossmark-restriction":false},"short-container-title":["F1000Res"],"abstract":"<ns4:p>Most bioinformatics tools available today were not written by professional software developers, but by people that wanted to solve their own problems, using computational solutions and spending the minimum time and effort possible, since these were just the means to an end. Consequently, a vast number of software applications are currently available, hindering the task of identifying the utility and quality of each. At the same time, this situation has hindered regular adoption of these tools in clinical practice. Typically, they are not sufficiently developed to be used by most clinical researchers and practitioners. To address these issues, it is necessary to re-think how biomedical applications are built and adopt new strategies that ensure quality, efficiency, robustness, correctness and reusability of software components. We also need to engage end-users during the development process to ensure that applications fit their needs. In this review, we present a set of guidelines to support biomedical software development, with an explanation of how they can be implemented and what kind of open-source tools can be used for each specific topic.<\/ns4:p>","DOI":"10.12688\/f1000research.10750.1","type":"journal-article","created":{"date-parts":[[2017,3,15]],"date-time":"2017-03-15T06:40:17Z","timestamp":1489560017000},"page":"273","update-policy":"https:\/\/doi.org\/10.12688\/f1000research.crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["General guidelines for biomedical software development"],"prefix":"10.12688","volume":"6","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8513-7185","authenticated-orcid":false,"given":"Luis Bastiao","family":"Silva","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5404-7670","authenticated-orcid":false,"given":"Rafael C.","family":"Jim\u00e9nez","sequence":"additional","affiliation":[]},{"given":"Niklas","family":"Blomberg","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6672-6176","authenticated-orcid":false,"given":"Jos\u00e9","family":"Luis Oliveira","sequence":"additional","affiliation":[]}],"member":"2560","published-online":{"date-parts":[[2017,3,15]]},"reference":[{"key":"ref-1","doi-asserted-by":"publisher","first-page":"22","DOI":"10.1186\/1479-5876-8-22","article-title":"Biomedical informatics and translational medicine.","volume":"8","author":"I Sarkar","year":"2010","journal-title":"J Transl Med."},{"key":"ref-2","doi-asserted-by":"publisher","first-page":"S56-S68","DOI":"10.1038\/nmeth.1436","article-title":"Visualization of omics data for systems biology.","volume":"7","author":"N Gehlenborg","year":"2010","journal-title":"Nat Methods."},{"key":"ref-3","doi-asserted-by":"publisher","first-page":"589-598","DOI":"10.1109\/TBME.2013.2244886","article-title":"Grand challenges in interfacing engineering with life sciences and medicine.","volume":"60","author":"B He","year":"2013","journal-title":"IEEE Trans Biomed Eng."},{"key":"ref-4","doi-asserted-by":"publisher","first-page":"931-938","DOI":"10.1136\/amiajnl-2012-001053","article-title":"AMIA Board white paper: definition of biomedical informatics and specification of core competencies for graduate education in the discipline.","volume":"19","author":"C Kulikowski","year":"2012","journal-title":"J Am Med Inform Assoc."},{"key":"ref-5","doi-asserted-by":"publisher","first-page":"216-223","DOI":"10.1109\/CSEET.2009.44","article-title":"Software engineering education for bioinformatics.","author":"M Umarji","year":"2009"},{"key":"ref-6","doi-asserted-by":"publisher","first-page":"273","DOI":"10.1186\/1471-2105-7-273","article-title":"Agile methods in biomedical software development: a multi-site experience report.","volume":"7","author":"D Kane","year":"2006","journal-title":"BMC Bioinformatics."},{"key":"ref-7","doi-asserted-by":"publisher","first-page":"814-815","DOI":"10.1126\/science.1231535","article-title":"Computational science. Troubling trends in scientific software use.","volume":"340","author":"L Joppa","year":"2013","journal-title":"Science."},{"key":"ref-8","doi-asserted-by":"publisher","first-page":"22","DOI":"10.1186\/s13742-016-0127-4","article-title":"Recommendations for open data science.","volume":"5","author":"M Gymrek","year":"2016","journal-title":"Gigascience."},{"key":"ref-9","doi-asserted-by":"publisher","first-page":"e1002554","DOI":"10.1371\/journal.pcbi.1002554","article-title":"Bioinformatics meets user-centred design: a perspective.","volume":"8","author":"K Pavelin","year":"2012","journal-title":"PLoS Comput Biol."},{"key":"ref-10","doi-asserted-by":"publisher","first-page":"R80","DOI":"10.1186\/gb-2004-5-10-r80","article-title":"Bioconductor: open software development for computational biology and bioinformatics.","volume":"5","author":"R Gentleman","year":"2004","journal-title":"Genome Biol."},{"key":"ref-11","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/1020.001.0001","article-title":"A small matter of programming: perspectives on end user computing","author":"B Nardi","year":"1993"},{"key":"ref-12","doi-asserted-by":"publisher","DOI":"10.1145\/1922649.1922658","article-title":"The state of the art in end-user software engineering.","volume":"43","author":"A Ko","year":"2011","journal-title":"ACM Computing Surveys (CSUR)."},{"key":"ref-13","doi-asserted-by":"publisher","first-page":"31","DOI":"10.1186\/2047-217X-3-31","article-title":"Ten recommendations for software engineering in research.","volume":"3","author":"J Hastings","year":"2014","journal-title":"GigaScience."},{"key":"ref-14","doi-asserted-by":"publisher","first-page":"e1002802","DOI":"10.1371\/journal.pcbi.1002802","article-title":"Ten simple rules for the open development of scientific software.","volume":"8","author":"A Prli\u0107","year":"2012","journal-title":"PLoS Comput Biol."},{"key":"ref-15","doi-asserted-by":"publisher","first-page":"343-352","DOI":"10.1007\/s12551-015-0177-3","article-title":"How to test bioinformatics software?","volume":"7","author":"A Kamali","year":"2015","journal-title":"Biophys Rev."},{"key":"ref-16","doi-asserted-by":"publisher","DOI":"10.12688\/f1000research.9206.1","article-title":"Top 10 metrics for life science software good practices [version 1; referees: 2 approved].","volume":"5","author":"H Artaza","year":"2016","journal-title":"F1000Res."},{"key":"ref-17","article-title":"Good Enough Practices in Scientific Computing.","author":"G Wilson","year":"2016","journal-title":"arXiv:1609.00037."},{"key":"ref-18","doi-asserted-by":"publisher","first-page":"e1001745","DOI":"10.1371\/journal.pbio.1001745","article-title":"Best practices for scientific computing.","volume":"12","author":"G Wilson","year":"2014","journal-title":"PLoS Biol."},{"key":"ref-19","doi-asserted-by":"publisher","first-page":"117-134","DOI":"10.1007\/978-1-4471-0947-1_11","article-title":"Scrum development process.","author":"K Schwaber","year":"1997"},{"key":"ref-20","article-title":"Test-driven development: by example.","author":"K Beck","year":"2003"},{"key":"ref-21","doi-asserted-by":"publisher","first-page":"47","DOI":"10.1186\/s13742-015-0087-0","article-title":"Bioboxes: standardised containers for interchangeable bioinformatics software.","volume":"4","author":"P Belmann","year":"2015","journal-title":"GigaScience."},{"key":"ref-22","doi-asserted-by":"publisher","first-page":"71-79","DOI":"10.1145\/2723872.2723882","article-title":"An introduction to Docker for reproducible research.","volume":"49","author":"C Boettiger","year":"2015"},{"key":"ref-23","doi-asserted-by":"publisher","first-page":"e1273","DOI":"10.7717\/peerj.1273","article-title":"The impact of Docker containers on the performance of genomic pipelines.","volume":"3","author":"P Di Tommaso","year":"2015","journal-title":"PeerJ."},{"key":"ref-24","article-title":"Producing open source software: How to run a successful free software project.","author":"K Fogel","year":"2005"}],"updated-by":[{"DOI":"10.12688\/f1000research.10750.2","type":"new_version","label":"New version","source":"publisher","updated":{"date-parts":[[2017,7,12]],"date-time":"2017-07-12T00:00:00Z","timestamp":1499817600000}}],"container-title":["F1000Research"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/f1000research.com\/articles\/6-273\/v1\/xml","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/f1000research.com\/articles\/6-273\/v1\/pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/f1000research.com\/articles\/6-273\/v1\/iparadigms","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,9,19]],"date-time":"2019-09-19T15:14:39Z","timestamp":1568906079000},"score":1,"resource":{"primary":{"URL":"https:\/\/f1000research.com\/articles\/6-273\/v1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,3,15]]},"references-count":24,"URL":"https:\/\/doi.org\/10.12688\/f1000research.10750.1","relation":{"has-review":[{"id-type":"doi","id":"10.5256\/f1000research.11591.r21000","asserted-by":"subject"},{"id-type":"doi","id":"10.5256\/f1000research.11591.r21001","asserted-by":"subject"},{"id-type":"doi","id":"10.5256\/f1000research.11591.r21000","asserted-by":"object"},{"id-type":"doi","id":"10.5256\/f1000research.11591.r21001","asserted-by":"object"}]},"ISSN":["2046-1402"],"issn-type":[{"value":"2046-1402","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,3,15]]},"assertion":[{"value":"Indexed","URL":"https:\/\/f1000research.com\/articles\/6-273\/v1#article-reports","order":0,"name":"referee-status","label":"Referee status","group":{"name":"current-referee-status","label":"Current Referee Status"}},{"value":"10.5256\/f1000research.11591.r21001, Jo\u00e3o\u00a0P.\u00a0G.\u00a0L.\u00a0M.\u00a0 Rodrigues, Department of Structural Biology, School of Medicine, Stanford University, Stanford, CA, USA, 03 Apr 2017, version 1, indexed","URL":"https:\/\/f1000research.com\/articles\/6-273\/v1#referee-response-21001","order":0,"name":"referee-response-21001","label":"Referee Report","group":{"name":"article-reports","label":"Article Reports"}},{"value":"<b>Luis Bastiao Silva<\/b>; <i>Posted: 07 Jul 2017<\/i>; Much obliged for your assessment and recommendations. We have redrawn Figure 1 following your suggestion. Regarding the second point, we recognised the importance of the subject and how recommendations vary according each developer\/research profile and even programming language. For beginners or sporadic developers, most of the recommendation may not apply. However, this type of review creates the awareness of developing for the community, not just for ourselves. Finally, regarding last comment, indeed, guidelines for a new comers is good idea. We think this can be done at the institution level, since different methodologies may be used locally.","URL":"https:\/\/f1000research.com\/articles\/6-273\/v1#referee-comment-2861","order":1,"name":"referee-comment-2861","label":"Referee Comment","group":{"name":"article-reports","label":"Article Reports"}},{"value":"10.5256\/f1000research.11591.r21000, Victor Maojo, Biomedical Informatics Group, Artificial Intelligence Department, Universidad Politecnica de Madrid, Madrid, Spain, 05 Apr 2017, version 1, indexed","URL":"https:\/\/f1000research.com\/articles\/6-273\/v1#referee-response-21000","order":2,"name":"referee-response-21000","label":"Referee Report","group":{"name":"article-reports","label":"Article Reports"}},{"value":"<b>Luis Bastiao Silva<\/b>; <i>Posted: 07 Jul 2017<\/i>; Thank you for the positive assessment and helpful recommendations. We will answer point by point for your comments:&nbsp;1) We agree, this discussion is important. We have included in this revision two new references where the explanation of the different fields is well addressed.&nbsp;2) Done3)&nbsp;Indeed, this is true and we tried to make it more clear along the article. Moreover, we included new references that discuss this issue in detail.4)&nbsp;&nbsp;Thank you for highlighting this. A brief introduction to the project is now provided.5\/6)&nbsp;Indeed, we agree with this remark. However, since these recommendations result from the experience of several software projects, where many concrete use cases were explored, we also feel that detailing those could be out of scope of the article.&nbsp;7)&nbsp;Thank you for raising this, which is indeed a very important remark. We have now discussed this in more detail in the introduction section.8)&nbsp;We agree with your remark. The design and prerequisites aspects are briefly addressed in the documentation process. We changed this section to highly better these issues.","URL":"https:\/\/f1000research.com\/articles\/6-273\/v1#referee-comment-2860","order":3,"name":"referee-comment-2860","label":"Referee Comment","group":{"name":"article-reports","label":"Article Reports"}},{"value":"This work has partially received funding from the European Union\u2019s Horizon 2020 Research and Innovation programme for 2014-2020 under Grant Agreement n. 634143 (MedBioinformatics) and from the EU\/EFPIA Innovative Medicines Initiative Joint Undertaking (EMIF grant n\u00b0 115372). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.","order":4,"name":"grant-information","label":"Grant Information"},{"value":"This is an open access article distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.Data associated with the article are available under the terms of the Creative Commons Zero \"No rights reserved\" data waiver (CC0 1.0 Public domain dedication).","order":0,"name":"copyright-info","label":"Copyright"}]}}