10 Bioinformatics Projects for Your Portfolio (with Free Datasets)
By Dr. Tamanna Anwar, PhD, Founder, Centre of Bioinformatics Research and Technology (CBIRT)
Most bioinformatics job descriptions ask for “hands-on experience with omics data”. For a student or fresher, the fastest way to prove that is not another certificate. It is a finished project on GitHub that an interviewer can open, read and ask you about.
The ten bioinformatics projects below all use free, public datasets, so you need no lab and no budget. They run from beginner to advanced. Pick two or three that match the job you want, finish them properly, and you will have more to talk about in an interview than most applicants.
The 10 projects at a glance
| # | Project | Level | Free dataset | Main tools |
|---|---|---|---|---|
| 1 | Build a FASTA toolkit | Beginner | SARS-CoV-2 reference genome (NC_045512.2) | Python, Biopython |
| 2 | Build a phylogenetic tree | Beginner | Coronavirus spike protein sequences from NCBI Virus | BLAST, MAFFT, IQ-TREE or MEGA |
| 3 | Find genes changed by a drug (bulk RNA-seq) | Intermediate | airway dataset (GEO GSE52778) | R, DESeq2, ggplot2 |
| 4 | Call variants in a bacterial genome | Intermediate | E. coli long-term evolution reads (SRR2584866) | BWA, SAMtools, BCFtools, IGV |
| 5 | Identify cell types in single-cell data | Intermediate | 10x Genomics PBMC 3k | R, Seurat |
| 6 | Dock a ligand into a viral protease | Intermediate | PDB 6LU7 | PyMOL, AutoDock Vina |
| 7 | Survival analysis in breast cancer | Intermediate | TCGA Breast Invasive Carcinoma (PanCancer Atlas) | cBioPortal, R, survival |
| 8 | Profile a microbiome | Intermediate | QIIME 2 “gut-to-soil” tutorial data | QIIME 2 |
| 9 | Map human population structure | Advanced | 1000 Genomes Project Phase 3 | PLINK, R |
| 10 | Classify leukemia with machine learning | Advanced | Golub leukemia data (golubEsets) | R or Python, scikit-learn or caret |
Beginner projects
1. Build a FASTA toolkit in Python
Data: the SARS-CoV-2 reference genome, NC_045512.2 on NCBI.
Steps: write a small Python tool with Biopython that reads a FASTA file and reports length, GC content and base counts; finds open reading frames; and translates them to protein. Add command-line options so others can run it on any FASTA file.
What it shows: clean Python, file handling and a tool other people can reuse.
2. Build a phylogenetic tree of coronavirus spike proteins
Data: spike protein sequences from SARS-CoV-2, SARS-CoV, MERS-CoV and related coronaviruses, downloaded from NCBI Virus.
Steps: run BLAST to find related sequences, align them with MAFFT, build a tree with IQ-TREE or MEGA, and annotate it.
What it shows: sequence databases, alignment and evolutionary interpretation, the foundation of most bioinformatics work.
Intermediate projects
3. Find genes changed by a drug (bulk RNA-seq)
Data: the airway Bioconductor package: gene counts from four human airway smooth muscle cell lines, treated or untreated with the steroid dexamethasone (GEO GSE52778; Himes et al., 2014).
Steps: load the counts in R, run differential expression with DESeq2, make a PCA plot, a volcano plot and a heatmap, then run pathway enrichment on the top genes.
What it shows: statistics on real expression data, which analyst job descriptions regularly ask for. Our R vs Python guide explains why R suits this project.
4. Call variants in a bacterial genome
Data: E. coli reads from a long-term evolution experiment (SRA run SRR2584866) and the REL606 reference genome (CP000819.1), as used in the Galaxy Training Network variant calling tutorial.
Steps: check quality with FastQC, align with BWA-MEM, sort and index with SAMtools, call variants with BCFtools, and view them in IGV. Our NGS data analysis for beginners guide walks through each command.
What it shows: a complete NGS pipeline from raw reads to variants, the core of genomics and diagnostics jobs.
5. Identify cell types in single-cell data
Data: 2,700 peripheral blood mononuclear cells (PBMCs) from 10x Genomics, the dataset used in the Seurat PBMC 3k tutorial.
Steps: filter low-quality cells, normalize, find variable genes, run PCA and UMAP, cluster the cells, and label clusters as T cells, B cells, monocytes and so on using marker genes.
What it shows: single-cell RNA-seq analysis, from raw counts to labeled cell types.
6. Dock a ligand into a viral protease
Data: PDB 6LU7, the SARS-CoV-2 main protease bound to the inhibitor N3 (X-ray, 2.16 Å).
Steps: prepare the protein and ligand, define the binding site around N3, re-dock N3 with AutoDock Vina to check your setup reproduces the crystal pose, then dock a few candidate molecules from PubChem and compare scores. Visualize poses in PyMOL.
What it shows: structural bioinformatics and drug-discovery workflow, including the habit of validating a method before trusting it.
7. Survival analysis in breast cancer
Data: the Breast Invasive Carcinoma (TCGA, PanCancer Atlas) study of 1,084 patients, explorable on cBioPortal.
Steps: explore mutation frequencies in cBioPortal, download clinical and mutation data, then in R compare survival between patients with and without a mutation in a gene such as TP53, using Kaplan–Meier curves and a log-rank test.
What it shows: working with clinical-scale cancer data and survival statistics.
8. Profile a microbiome
Data: the QIIME 2 “gut-to-soil” tutorial data: 16S rRNA (V4) sequences from a study on composting human excrement, comparing human excrement, the finished compost and food compost (Meilander et al., 2024). The tutorial uses one sequencing run, small enough for a laptop.
Steps: denoise paired-end reads with DADA2, assign taxonomy, compare diversity between sample types, plot taxonomic composition, and test which microbes differ between groups with ANCOM-BC2.
What it shows: amplicon analysis, used in microbiome, environmental and food-safety labs.
Advanced projects
9. Map human population structure
Data: variant calls for 2,504 people from 26 populations in the 1000 Genomes Project Phase 3.
Steps: filter variants with PLINK, prune linked variants, run a principal component analysis, and plot individuals colored by population.
What it shows: population genetics and handling large VCF files.
10. Classify leukemia with machine learning
Data: the classic Golub dataset in the golubEsets package: expression of 7,129 genes in 72 leukemia samples (47 ALL, 25 AML), with a ready-made 38/34 train–test split (Golub et al., 1999).
Steps: select informative genes using only the training set, train a classifier (for example, random forest or logistic regression), test it on the held-out samples, and report accuracy and the top genes.
What it shows: machine learning on omics data, done properly: no information from the test set leaks into training.
How to present a project on GitHub
An interviewer will spend about as long on your repository as on your CV, so make the first screen count. Use this README structure for every project:
# Differential expression in dexamethasone-treated airway cells
## Question
Which genes change when airway smooth muscle cells are treated with dexamethasone?
## Data
airway Bioconductor package (GEO GSE52778): 4 cell lines, treated vs untreated.
## Methods
DESeq2 for differential expression; clusterProfiler for pathway enrichment.
## Key results
- 1 sentence with the main finding and a number
- Volcano plot and heatmap (images below)
## How to run
conda env create -f environment.yml
Rscript analysis.R
## What I would do next
1–2 lines on limitations and follow-up analyses.
Before you share the link, check:
- The README answers “what question, what data, what result” in the first screen
- The data source is linked with its accession number
- Code runs from start to finish on a fresh machine (include
environment.ymlorrequirements.txt) - Plots are labeled, with units and a one-line caption
- No large raw data files are committed; scripts download them instead
- You can explain every step in your own words in an interview
Which projects to pick for the job you want
You do not need all ten. Two or three projects that match one role are stronger than ten half-finished ones.
| Target role | Build these | Why |
|---|---|---|
| Bioinformatics Analyst | 1, 3, 4 | Coding, expression statistics and an NGS pipeline cover most analyst job descriptions |
| Genome / Variant Analyst | 4, 7, 9 | Variant calling, clinical cancer data and population variation |
| Research project (Project Associate, JRF, PhD) | 3, 5, plus one in the lab’s own area | Shows you can analyze the data types most labs generate |
| Drug discovery / structural roles | 2, 6 | Sequence-to-structure reasoning and docking |
| Microbiome or environmental labs | 2, 8 | Phylogenetics and amplicon analysis |
| Data science in biotech | 3, 7, 10 | Statistics, clinical data and machine learning |
For more on these roles, pay and who hires, see our guide to bioinformatics jobs for freshers. If you want a mentor while you build, an internship with real data is the next step.
Build your first project with CBIRT
CBIRT runs industry-focused skill development programs in bioinformatics, taught live online by experienced trainers. Each program works on public datasets like the ones above and ends with an assignment or project you can add to your portfolio, plus a certificate on completion. Want to build one project end to end with a mentor? See our project-based internship in bioinformatics.
See upcoming programs, dates and fees →
Frequently asked questions
What are good bioinformatics projects for beginners?
Start with a Python FASTA toolkit and a phylogenetic tree (projects 1 and 2). Both use small public datasets, run on a laptop and teach the basics: files, sequences, alignment and databases.
Where can I get free data for bioinformatics projects?
NCBI (GenBank, SRA, GEO), the Protein Data Bank, TCGA through cBioPortal, the 1000 Genomes Project and Bioconductor data packages are all free. Every project above links to its dataset.
How many projects should I have in my portfolio?
Two or three finished, well-documented projects that match the role you want are enough for most entry-level applications.
Can I do these projects on a laptop?
Projects 1, 2, 3, 5, 6, 7, 8 and 10 run on an ordinary laptop. Projects 4 and 9 run on a laptop with a small subset of the data; full-size versions need more memory.
Should I use R or Python?
Use R for statistics-heavy projects (3, 5, 7) and Python for tools and machine learning (1, 10). Our R vs Python guide explains the choice.
Sources
- NCBI Nucleotide: SARS-CoV-2 reference genome NC_045512.2
- Bioconductor: airway package
- Galaxy Training Network: Variant calling workflow
- Satija Lab: Seurat PBMC 3k tutorial
- RCSB PDB: 6LU7
- MSK Data Catalog: Breast Invasive Carcinoma (TCGA, PanCancer Atlas)
- QIIME 2: Gut-to-soil tutorial
- IGSR: The International Genome Sample Resource (1000 Genomes)
- Bioconductor: golubEsets package
Related reading on CBIRT: Bioinformatics jobs for freshers · NGS data analysis for beginners · R vs Python for bioinformatics · Bioinformatics internship in India
