1 of 12

OLS �Writing Reproducible Code

May 10, 2023

CC by 4.0

Olaitan I. Awe

Training Officer, ASBCB

laitanawe@gmail.com

@laitanawe

2 of 12

openseeds

mentoring & training program

What is reproducible code?

Code is reproducible if:

  • the result of an analysis does not depend on the specific computational environment in which data processing and analysis originally took place
  • Workflow will produce the same result when re-run or run on different computing platforms

3 of 12

openseeds

mentoring & training program

Framework for reproducible code

  1. Collect data

  • Develop the pipeline/codes

  • Generate Output

  • Interpret the Output

4 of 12

openseeds

mentoring & training program

Framework (Genomics)

  1. Collect data (Biomedical, Omic Sequences etc.)

  • Develop the pipeline/codes

  • Generate Output

  • Interpret the Output (advance our understanding of biology and health)

5 of 12

openseeds

mentoring & training program

Write Code and Publish it in a findable Repository (GitHub)

  1. Data
  2. Accessions (SRA, GEO, ENA, RefSeq, Genbank)
  3. Figures
  4. Scripts
  5. Docs
  6. Output
  7. Workflow (Step by Step sequence of tasks)
  8. Notebooks for Demonstration
  9. LICENSE (Open license)
  10. README.md

6 of 12

openseeds

mentoring & training program

Workflow Management Systems enable Reproducible Coding

  1. Nextflow (Interoperability, Component Reuse, Re-entrancy, Parallelisation, Allows use of containers, Reproducibility)

  • Snakemake
  • Cromwell (WDL/CWL)
  • Galaxy

7 of 12

openseeds

mentoring & training program

Automate your Pipelines

Language depends on what you’re comfortable with and your application:

  1. Bash
  2. Python
  3. Perl
  4. Java
  5. C/C++ and others …

8 of 12

openseeds

mentoring & training program

Research Standard

Open Science:

  1. Improve the accessibility, quality and efficiency of science
  2. Open Access Articles (APC can be expensive)
  3. Research data, code and pipelines are FAIR:

(Findable, Accessible, Interoperable, Reusable)

Documentation: add comments to your code

9 of 12

openseeds

mentoring & training program

Some Life Science Project Categories

  1. Bulk Transcriptomics, Metagenomics, Human Genomic Variation, Pipeline Development, Biomarker Discovery, Cheminformatics, Clinical Applications, Drug and Vaccine Design, Antimicrobial Resistance, Population Genomics, Genome Wide Association Studies, Polygenic Risk Scores, Mendelian Randomisation, Structural Bioinformatics, Software Development, Epigenomics, Oncology, Plant Genomics and Machine Learning.

10 of 12

openseeds

mentoring & training program

Want to start writing reproducible code?

- You can start practicing by using public data (SRA, GEO, ENA, RefSeq, Genbank)

- Check out codeathon announcements (asbcb.org/events)

11 of 12

openseeds

mentoring & training program

Acknowledgements

ASBCB:

  • Marion N. Nyamari
  • Nouhaila En najih

Support:

  • NIH, ODSS
  • NIH, NCBI

12 of 12

open seeds

mentoring & training program

Thank you!

laitanawe@gmail.com