APHL 2026 Annual Conference
Bioinformatics Hackathon, hosted by the APHL Bioinformatics Leadership Program 2025-2026 Cohort
Group 2: David Schaeper, Spencer Bruce, Janis Doss, Satya Kumar, Preethi Kumaran, and James Martinez
Francisella tularensis is the causative agent of tularemia (rabbit fever). It is zoonotic, being transmitted by numerous vectors such as mosquitoes and ticks. It can also be transmitted by contact with contaminated animal carcasses, water, food, or soil, and can survive on fomites for several weeks. Reservoir hosts include rabbits, rodents, birds, and deer. F. tularensis is known for its high virulence, low infectious dose, ability to infect through multiple exposure routes, and ability to evade the immune system.
It is critically important that public health laboratories are able to efficiently perform bioinformatics analysis for F. tularensis due to its importance as a human pathogen for its potential use in bioterrorism. Its highly clonal nature creates a challenge for taxonomy and phylogeny, requiring whole genome sequencing to effectively differentiate F. tularensis from closely related species, identify subspecies, track outbreaks, identify AMR genes, and develop vaccines.
A.F.T.G.E.R (A Francisella tularensis Genome Exploration Resource) is a bioinformatics pipeline for the analysis of whole genome sequencing data of Francisella tularensis isolates from short-read whole genome sequencing data. It accepts paired fastq files and will perform pre-processing, de-novo assembly, QC metrics, identification of AMR genes, SNP typing, and data visualization.
- FastQC - QC metrics (reads)
- Shovill - de-novo assembly
- Quast - QC metrics (assembly)
- CheckM - QC metrics (assembly)
- CanSNPer2 - SNP typing
- AMRFinder+ - AMR gene identification
- Prokka - annotation
- Panaroo - core genome alignment
- MultiQC - QC summary
- SNP-sites - core SNP extraction
- FastTree - phylogenetic tree
- MicroReact - data visualization
Before running for the first time, the environments need to be set up. To set the them up, simply run:
conda env create -f environment.yml
conda env create -f environment-amr.yml
conda env create -f environment-cansnper.yml
conda env create -f environment-checkm.yml
Aftger takes a samplesheet as input that consists of 3 columns without headers, the sample id, the path to read1, and the path to read2.
samplesheet.csv:
sample1,sample1_R1.fastq.gz,sample1_R2.fastq.gz
sample2,sample2_R2.fastq.gz,sample2_R2.fastq.gz
Launching the aftger pipeline is one simple bash command.
aftger samplesheet.csv
Sample-specific data is stored within a sample subdirectory. Output is collected and symbolic links are created in a single directory.
results
├── multiqc
│ ├── multiqc_data
│ └── multiqc_report.html # combined QC report
├── fasttree
│ └── snp_tree.nwk # newick tree of passed QC assemblies
├── snp-sites
│ └── core_snps.aln # alignment filtered to SNPs
├── panaroo
│ ├── core_gene_alignment.aln # panaroo core genome
│ ├── ...
├── passed_assemblies # all QC passed assemblies
│ ├── SAMPLE1
│ ├── SAMPLE1
├── prokka_gffs # gff for all QC passsed assemblies
│ ├── SAMPLE1.gff
│ ├── SAMPLE2.gff
├── prokka
│ ├── SAMPLE1 # prokka annotation of each QC passed samples
│ │ ├── ...
│ ├── SAMPLE2
│ │ ├── ...
├── combined_cansnper
│ └── combined_results.tsv # all samples sequence type
├── cansnper_results # individual sequence typing results of passed samples
│ ├── SAMPLE1_not_called.txt
│ ├── SAMPLE1_snps.txt
│ ├── SAMPLE2_not_called.txt
│ ├── SAMPLE2_snps.txt
├── sample_status.tsv # Each sample's QC status
├── SAMPLE1 # individual sample outputs
│ ├── amrfinderplus
│ ├── checkm
│ ├── fastqc
│ ├── quast
│ └── shovill
├── SAMPLE2 # individual sample outputs
│ ├── amrfinderplus
│ ├── checkm
│ ├── fastqc
│ ├── quast
│ └── shovill