Publishing Research Software

Research often bases on software, not only for the analysis of research data but also for their generation. Research results can not easily be replicated or reproduced without the underlying software. Not least is developed research software a research result by its own that can be reused by others. Therefore, publishing research software (source code) helps others to reproduce research results or to reuse the code for different research questions.

But, research codes and software are seldomly perfect. Counter-arguments for publishing code are therefore the effort for documentation and cleaning, technical and legal barriers and the fear of disadvantages in the scientific competition  (Stodden, 2010).

However, Barnes (2010) claims to publish non-perfect code. Technical platforms offer services to publish executable code. Metadata standards like CodeMeta offer the possibility to describe research software human and machine readable. Guidelines and services help to choose the appropriate license.



Making Research Software Available

run my code: On the platform RunMyCode.org data and code, which underly a publication, can be published reproducibly.

ExecShare: The WebService ExecShare enables to offer executable code written in R, MATLAB©, C++, Fortran or Rats. Users of the Service can execute the code then with their own data.

Further possibilities to provide code and software for execution offer jupyter notebooks or docker container.

Also some journals offer the possibility to publish software. This blog post gives an overview over these journals in different disciplines.



Describing and Identifying Research Software

CodeMeta: The project CodeMeta developed a minimal metadata scheme for describing scientific software and code based on schema.org. It is available in XML and JSON-LD. 

Gent et. al (2015) offer a guideline to identify software with DataCite.



Licensing Research Software

To choose an appropriate license for own software is not an easy task. If the software uses other open-source libraries, the underlying license of all used components has to be taken into account. Morin (2012) offers a How-To and an overview over the possibilities. This blog post of Jake VanderPlas gives information about whys and hows of licensing scientific code.

The platform ChooseALicence helps to choose the appropriate license for scientific software. A list of open-source licenses can be found at Gnu.org.

 

 



Literature

Barnes, N. (2010). Publish your computer code: it is good enough. Nature, 467, 753.

Gent, I., Jones, C. & Matthews, B. (2015). Guidelines for persistently identifying software using DataCite

Morin, A., Urban, J. & Sliz, P. (2012). A quick guide to software licensing for the scientist-programmer. PLoS Comput Biol, 8. doi: 10.1371/journal.pcbi.1002598

Stodden, V. (2010). The Scientific Method in Practice: Reproducibility in the Computational Sciences (MIT Sloan Research Paper No. 4773-10).