Sometimes it is easy to get caught up in all the intricacies of the publication process; writing up, submitting, revising, re-submitting and so on. Understandably, the urge is frequently to close off a paper or a chapter as quickly as possible in order to start a new one. Code and data are shrugged off as 'having served their use' and end up being stored on a computer somewhere, only to get misplaced or lost in the process of re-filing several years later. We have all heard of the importance of commenting and organising code and data, however, we should be focused more on the 'permanence' of code and results. It is our firm belief that in a global research environment, where we constantly utilise (many times unknowingly) contributions from others amongst us and those from generations before us, that algorithms used in research papers should be made publicly available, even if the data cannot be for confidentiality reasons. There may be a few cases where even the code cannot be disseminated, in which case snippets of code reproducing some of the results present in a publication should be provided.
There are several advantages of making code reproducible with little effort on behalf of the researcher:
- It increases transparency. However, it is not an assurance that your code is optimal or even correct for that matter. It is an expression of belief in your research, that you would rather have someone re-use your code and find possible inconsistencies.
- It increases trust. Making sure your results can be reproduced with ease shows fellow researchers that you have nothing to hide and that there were no hidden 'tricks' needed to get the required results.
- It ensures permanence. It is easy to replicate results from a script file that you coded on your machine, while you have that same machine and when you remember where the file is. But what about 10 years down the line? Permanence ensures that if someone questions your methods a decade from now you are still able to provide an answer.
To ensure reproducibility, we have developed a protocol that we give here and try to adhere to whenever possible.