Bioinformatics Toolkit for Microbiology
One-Sentence Definition
A practical inventory of the command-line tools, libraries, and environments used day to day in microbial bioinformatics.
Simple Explanation
The starter kit: what to install, and which tool to reach for at each step.
Tool map by step
| Step | Tools |
|---|---|
| QC | FastQC, MultiQC, fastp |
| Species screen | Kraken2, Mash, GTDB-Tk |
| Assembly | SPAdes, Unicycler, Flye, Shovill |
| Assembly QC | QUAST, CheckM, BUSCO |
| Annotation | Prokka, Bakta, PGAP |
| Mapping / variants | BWA-MEM, minimap2, samtools, bcftools, Snippy |
| Typing | mlst, chewBBACA, Kleborate, SISTR |
| AMR | AMRFinderPlus, ResFinder, RGI (CARD), abriTAMR |
| Plasmids / MGE | PlasmidFinder, MOB-suite, IntegronFinder, geNomad |
| Pangenome | Roary, Panaroo, PPanGGOLiN |
| Phylogenetics | MAFFT, IQ-TREE, Gubbins, TreeTime, BEAST |
| Metagenomics | MetaPhlAn, HUMAnN, metaSPAdes, MetaBAT2 |
| Amplicon | QIIME 2, DADA2 |
| Visualization | iTOL, Microreact, Phandango, Bandage |
| Orchestration | Nextflow/nf-core, Snakemake, Conda, Docker |
Programming layer
Python: Biopython, pysam, scikit-bio, pandas, scikit-learn, PyTorch
R: Bioconductor, phyloseq, DESeq2, ggtree, vegan
from Bio import SeqIO
# quick genome stats from an assembly
lengths = [len(rec.seq) for rec in SeqIO.parse("assembly.fasta", "fasta")]
total = sum(lengths)
gc = sum(str(r.seq).upper().count(b) for r in SeqIO.parse("assembly.fasta", "fasta") for b in "GC")
print(f"contigs={len(lengths)} total={total} GC%={100*gc/total:.1f} longest={max(lengths)}")Learning path
- Command line + file formats (Sequencing Data Formats)
- One full isolate workflow end to end (WGS Bioinformatics Pipeline)
- Scripting the boring parts (Python/R)
- Workflow managers (Reproducible Bioinformatics Workflows)
- Statistics and ML (Machine Learning Basics for Microbiology)