Reproducibility in Research

This guide provides resources, tips, and tools on making one's research reproducible

Version Control & File Management

Using version control and file management will provide a framework for you and your collaborators to differentiate between files used, to have reference points at the different stages of your work, and to provide internal guidance for instances and opportunities to share work.

Organizing your Lab

By using things like electronic lab notebooks this can provide a digital back up of materials and record of the research process. This is beneficial in instances of natural disasters or life events, to have an additional location to back up and save active lab work, results, and data.

Resource Identification

Research Resource Identifiers (RRIDs) are persistent and unique identifiers for referencing a research resource. The RRID Initiative (#RRID) is designed to help researchers sufficiently cite the key resources used to produce the scientific findings reported in the biomedical literature. Resources may include cell lines, antibodies, software, organisms, etc...

Coding

Using coding languages / platforms like R and Python can make reproduction of code easier due to the open license. This allows access to the code files without using a proprietary software or coding language.

Compiling / Packaging

  • GNU Make - controls the generation of executables and other non-source files of a program from the program’s source files. 
  • Pandoc - helps convert files from one markup format to another.
  • ReproZip - allows you to pack your research along with necessary data files, libraries, environment variables and options into a self-contained bundle. Then ReproZip can use that bundle to automatically set up the same original environment so anybody can reproduce the research on a different machine, without tracking down and installing the dependencies, or even having to run the same operating system.

Writing

Using editors like those listed below can provide reproducible document creation. This can allow for the integration of code sections, scientific notations, and environments. Using this can also provide literate computing, authoring and publishing so the writing and publishing are self-contained documents that include the narrative and code used. 

Repositories

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.