A small reproducible data-analysis workflow demonstrating introductory use of Python, pandas, SQL, Conda, Snakemake and Docker.
- Python 3.12
- pandas
- SQLite
- SQL
- Conda
- Snakemake
- Docker
This project was developed as a practical exercise to explore reproducible workflow engineering techniques commonly used in bioinformatics and data science. It demonstrates how Python, SQL, Conda, Snakemake and Docker can be combined to create a portable and reproducible analysis pipeline.
This project analyses a small synthetic patient-infection dataset. It:
- reads and validates a CSV file;
- loads the data into a SQLite database;
- runs SQL queries to summarise pathogen counts and select patients over 50;
- exports reproducible result files;
- automates the workflow with Snakemake;
- provides both Conda and Docker execution options.
This repository contains synthetic demonstration data only. It does not contain real patient information or restricted research data.
flowchart TD
A[patients.csv] --> B[Python & pandas<br/>Load and validate data]
B --> C[SQLite database]
C --> D[SQL queries]
D --> E[Generate output files]
E --> F[Workflow automation with Snakemake]
F --> G[Optional containerised execution with Docker]
bioinformatics-workflow-practice/
├── data/
│ └── patients.csv
├── scripts/
│ └── analyse.py
├── sql/
│ └── queries.sql
├── results/
├── Dockerfile
├── environment.yml
├── requirements.txt
├── Snakefile
└── README.md
- Python 3.12
- Conda (Miniconda or Anaconda)
- Snakemake
- Docker (optional)
conda env create -f environment.yml
conda activate bioinformatics-workflow-practice
python scripts/analyse.pysnakemake --cores 1To preview the workflow without executing commands:
snakemake --dry-rundocker build -t bioinformatics-workflow-practice .
docker run --rm -v "$(pwd)/results:/app/results" bioinformatics-workflow-practice:latestThe workflow generates the following outputs:
results/pathogen_summary.csv– summary of pathogen frequenciesresults/patients_over_50.csv– filtered patient records (age > 50)results/summary.md– analysis summaryresults/patients.db– SQLite database generated during analysis
- Python
- pandas
- SQL
- SQLite
- Conda
- Docker
- Snakemake
- Reproducible workflow development
Through this project I gained introductory practical experience with:
- Creating reproducible environments using Conda
- Writing and executing SQL queries
- Managing workflow automation using Snakemake
- Containerising applications using Docker
- Organising reproducible bioinformatics projects
Potential future improvements include:
- Integration of publicly available biological datasets
- Automated testing using
pytest - Continuous integration with GitHub Actions
- Interactive data visualisation dashboards
- Workflow extension for larger-scale bioinformatics datasets
This repository is intended solely for educational and portfolio purposes.
All datasets are synthetic and do not contain real patient information or restricted research data.
Prithvi A. J.
MSc Bioinformatics
University of Birmingham
This repository forms part of my personal portfolio for learning reproducible bioinformatics workflows and software engineering practices.
This project is released under the MIT License.