Software, versions and citations
The programs each method runs and the versions in the current images.
Reference
Every analysis method runs inside its own container image, built from one shared base. This page lists the programs those images contain, the version each pins, which methods call each program, and the citation to use when you report a method. The result package records none of this: the report carries no tool versions, citations, reference-library version or random seeds, so this page and the image are the only record of what ran. See Anatomy of a result package for what the report does contain.
What "unpinned" means
Each image starts from Ubuntu 24.04 ("noble"), pinned to an exact digest. Almost everything on top of it is installed from Ubuntu's package repositories or the Python package index without a version, after a package upgrade, so the version you get is whatever those repositories offered on the day the image was built. Two builds of the same image definition on different days can contain different versions of MAFFT, BLAST+ or WeasyPrint, and nothing in the result says which one ran.
For reproducibility this means:
- A result is reproducible against the image that produced it, not against the image definition. Keep the built image if you need to rerun a job.
- To state a program version, read it from the image at the time of the run. The versions below are what the image definition requests, not confirmed from a built image.
- IQ-TREE is the exception. It is fetched as a specific release and its version is known.
Programs by method
| Program | Version in image | Used by | Citation |
|---|---|---|---|
NCBI BLAST+ (blastn, makeblastdb) |
unpinned | identification; reference database build | Camacho et al. 2009 |
MAFFT (--auto) |
unpinned | barcode-gap, distance-summary, diagnostic-characters, phylogenetic-tree, when MAFFT is chosen |
Katoh and Standley 2013 |
QuickTree (-kimura) |
unpinned | phylogenetic-tree | Howe, Bateman and Durbin 2002 |
FastTree (-gtr -nt -fastest -no2nd) |
unpinned | phylogenetic-tree | Price, Dehal and Arkin 2010 |
RAxML (raxmlHPC -m GTRCAT) |
unpinned | phylogenetic-tree | Stamatakis 2014 |
IQ-TREE 2 (-m GTR+G -fast -alrt 1000) |
2.3.6 | phylogenetic-tree | Minh et al. 2020; SH-aLRT: Guindon et al. 2010 |
njplot (newicktops) |
unpinned | phylogenetic-tree, tree drawing | Perrière and Gouy 1996 |
Ghostscript (ps2pdf, gs) |
unpinned | phylogenetic-tree, PDF assembly | none |
| WeasyPrint | unpinned (pip) | every method that produces a report: PDF rendering | none |
| pandas | unpinned (pip in sequence-composition; Ubuntu package in specimen-data-ingest) | sequence-composition, specimen-data-ingest | McKinney 2010 |
| NumPy | unpinned, as a pandas dependency | as pandas | Harris et al. 2020 |
| Biopython | not installed explicitly; presence unconfirmed | phylogenetic-tree (FASTA to Stockholm conversion for QuickTree) | Cock et al. 2009 |
csvkit (csvformat), gnumeric (ssconvert) |
unpinned | specimen-download | none |
| Python 3, jq | unpinned | all methods | none |
Distance calculations in barcode-gap and distance-summary are in-house Python, not an external program: barcode-gap computes the Kimura two-parameter distance (Kimura 1980) and distance-summary computes uncorrected p-distance. A JC69 function exists in the code but is never called. See each method page for which distance is actually applied.
Good to know: The analysis forms cite MAFFT as "Kotoh and Standley, 2013". The author's name is Katoh; use the citation below.
Good to know:
seqmagickis installed in five images but no method calls it. IQ-TREE runs without a fixed random seed, so two runs of the same input can produce different trees even on the same image.
The public identification service
The public service at barcodeid.biolytica.ca is built and versioned separately. Its decision model is versioned with its library builds, and the Analyst model is available through its API. See How the public identification service decides and Reference libraries and builds.
Citations
- Camacho C, Coulouris G, Avagyan V, Ma N, Papadopoulos J, Bealer K, Madden TL (2009). BLAST+: architecture and applications. BMC Bioinformatics 10:421.
- Cock PJA, Antao T, Chang JT, Chapman BA, Cox CJ, Dalke A, Friedberg I, Hamelryck T, Kauff F, Wilczynski B, de Hoon MJL (2009). Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics 25(11):1422–1423.
- Guindon S, Dufayard JF, Lefort V, Anisimova M, Hordijk W, Gascuel O (2010). New algorithms and methods to estimate maximum-likelihood phylogenies: assessing the performance of PhyML 3.0. Systematic Biology 59(3):307–321.
- Harris CR, Millman KJ, van der Walt SJ, et al. (2020). Array programming with NumPy. Nature 585:357–362.
- Howe K, Bateman A, Durbin R (2002). QuickTree: building huge neighbour-joining trees of protein sequences. Bioinformatics 18(11):1546–1547.
- Katoh K, Standley DM (2013). MAFFT multiple sequence alignment software version 7: improvements in performance and usability. Molecular Biology and Evolution 30(4):772–780.
- Kimura M (1980). A simple method for estimating evolutionary rates of base substitutions through comparative studies of nucleotide sequences. Journal of Molecular Evolution 16:111–120.
- McKinney W (2010). Data structures for statistical computing in Python. Proceedings of the 9th Python in Science Conference, 56–61.
- Minh BQ, Schmidt HA, Chernomor O, Schrempf D, Woodhams MD, von Haeseler A, Lanfear R (2020). IQ-TREE 2: new models and efficient methods for phylogenetic inference in the genomic era. Molecular Biology and Evolution 37(5):1530–1534.
- Perrière G, Gouy M (1996). WWW-Query: an on-line retrieval system for biological sequence banks. Biochimie 78(5):364–369.
- Price MN, Dehal PS, Arkin AP (2010). FastTree 2: approximately maximum-likelihood trees for large alignments. PLoS ONE 5(3):e9490.
- Stamatakis A (2014). RAxML version 8: a tool for phylogenetic analysis and post-analysis of large phylogenies. Bioinformatics 30(9):1312–1313.