I have a number of sequences and a reference genome.

I used snippy to align each individual sequence with the reference genome. I then used snippy-core on the *.aln files from snippy which produced a new *.aln file, and a *.full.aln. It is my understanding that the new *.aln file contains a core SNP alignment with only bases shared by all of my sequences, and that the *.full.aln file contains the core genome alignment with all bases of each sequence aligned to the reference genome - regardless of variation between sequences. Is my understanding correct? If not where am I going wrong?

Further, the program snp-sites uses both the new *.aln and *.full.aln file to produce a file which can be run through FastTree to produce a phylogenetic tree. Does this just process the files to give the phylogenetic distance between each of my sequences? I don't really understand what this step achieves at all...


1 Answer 1


snippy-core is a tool that processes the snippy_outdir_{1..n} folders and produces the following files:

  1. core.aln – a fasta format file that contains only the polymorphic sites (of {'A', 'C', 'T' and 'G'}) in your input set, whose length tends to decrease asymptotically as more isolates are added

  2. core.full.aln – a fasta format file that contains all the core sites and base calls at any site where the reference has a site. The reference is not padded but the sequences mapped to it may be padded with gaps and 'N's to match the length of the reference. The alignment length does not change as more isolates are added.

snippy{-core} was written by Torsten Seemann et al. snp-sites was written by Andrew Page et al. snp-sites will reduce any alignment to the core polymorphic sites (columns) and will still output a fasta. Therefore the output of a core.aln processed through snp-sites should be the identical the input. All fasta alignments can then be processed downstream using your tree inference package of choice (e.g., FastTree, IQ-Tree, MrBayes, BEAST ...). If you want a distance matrix output from a fasta alignment, use something like snp-dists, also written by Torsten Seemann, or the APE package in R. Be sure to consider how gaps and Ns are treated during this step.

  • $\begingroup$ Thank you so much for this. Was breaking my head for a long time. Its working now. $\endgroup$ Feb 23, 2022 at 5:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.