Back to Blog

Blog

Adenovirus genome assembly and comparative analysis with Snakemake

This one started with a workflow question more than a biology question: could I make a human adenovirus analysis that felt reproducible from the first FASTQ file to the final comparative figure?

That matters because viral genome projects can become a pile of disconnected steps very quickly. QC happens in one place, assembly in another, reference choice somewhere else, and then the final tree or variability plot appears as if it came from a separate universe.

The Snakemake workflow tries to keep the whole story in one graph. Raw paired-end reads go in, and the outputs are not just assemblies, but consensus sequences, alignments, variability summaries, phylogenetic trees, and QC reports.

Human adenovirus sequence variability plot across genome position
Figure 1. A genome-wide variability view using windowed Shannon entropy across assembled adenovirus sequences.

The pipeline begins with quality control and trimming using fastp. If needed, it can run host decontamination with Bowtie2 and taxonomic screening with Kraken2 before assembly. From there, it moves through SPAdes, RagTag scaffolding, optional Pilon polishing, Mash-based reference selection, BWA-MEM2 alignment, consensus calling, MAFFT alignment, and IQ-TREE phylogenetic inference.

That sounds like a lot of tooling, because it is. The point of using Snakemake is that every step has an input, an output, and a reason to exist. The workflow becomes less of a recipe written in someone’s notes and more of a file-backed contract.

The most useful output for me is the variability plot. It gives a quick way to see where the genome alignment is stable and where the samples diverge. It does not replace careful annotation or typing, but it gives the eye a map before diving into individual regions.

I would not treat this workflow as a finished adenovirus interpretation engine. Assembly quality, coverage, reference choice, and sample representativeness still decide how much biology you can safely claim from the outputs.

What I like about the project is more practical: it gives the analysis a shape. You can see how reads become contigs, how contigs become consensus genomes, how consensus genomes become an alignment, and how that alignment becomes figures a collaborator can actually inspect.

The next thing I would add is a tiny public test dataset plus a CI dry-run. That would make the workflow much easier to trust from a clean checkout.

References and artifacts: the workflow is in the virus genome analysis repository.