EzClermont: The E. coli Clermont PCR phylotyping tool
Description
This is a tool for using the Clermont 2013 PCR typing method for in silico analysis of E. coli whole genomes or assembled contigs.
Changelog
- bump to version 1.0 in May 2026; modernize install, tests, imports
- bump to version 0.7 in Nov 2021; add option for logfile instead of stderr messages for workflow compatibility
- bump to version 0.4 in May 2018; improved handling of partial matches
- made a webapp on April 19th, 2018 after requests from several to make the tool more user friendly.
- updated on August 2, 2017 to add reactions that differentiate A/C, D/E/cryptic, and to add more robust tests.
- released Dec. 2016
Usage
EzClermont can either read in a file or read from stdin.
Try:
ezclermont tests/refs/CP004009.1.fasta
or
cat tests/refs/CP004009.1.fasta | ezclermont - -e "APEC_O78"
or from docker:
docker run -v $PWD:$PWD --entrypoint python nickp60/ezclermont /usr/local/bin/ezclermont $PWD/tests/refs/AE005174.2.fasta
usage: ezclermont [-m MIN_LENGTH] [-e EXPERIMENT_NAME] [-n]
[--logfile LOGFILE] [-h] [--version]
contigs
run a 'PCR' to get Clermont 2013 phylotypes; version 1.0.0
positional arguments:
contigs FASTA formatted genome or set of contigs. If reading
from stdin, use '-'
optional arguments:
-m MIN_LENGTH, --min_length MIN_LENGTH
minimum contig length to consider.default: 500
-e EXPERIMENT_NAME, --experiment_name EXPERIMENT_NAME
name of experiment; defaults to file name without
extension. If reading from stdin, uses the first
contig's ID
-n, --no_partial If scanning contigs, breaks between contigs could
potentially contain your sequence of interest. if
--no_partial, these plausible partial matches will NOT
be reported; default behaviour is to consider partial
hits if the assembly has more than 4 sequnces(ie, no
partial matches for complete genomes, allowing for 1
chromasome and several plasmids)
--logfile LOGFILE send log messages to logfile instead stderr
-h, --help Displays this help message
--version show program's version number and exit
It prints out the presense or absence of the PCR product to stderr, and the resulting phylotype and experiment name to stdout. It checks the length, accepting fragments that are within 20bp of the expected size. When using --partial, if a single primer has a hit but the contig starts/ends within the length of the expected product size, we call it a hit.
A minimal filename.fasta ClermontType output table can be generated by piping to a results file using a bash loop:
for i in strain1 strain2 strain3;
do
ezclermont ${i} >> results.txt
done
or, using GNU parallel, and saving a log file:
ls ./folder/with/assemblies/*.fa | parallel "ezclermont {} 1>> results.txt 2>> results.log"
Run the webapp
docker run -p 5000:5000 nickp60/ezclermont
Have fun!
Installation
From Pypi
conda create -n ezclermont_env ezclermont
conda activate ezclermont_env
development
conda create -n ez biopython
conda activate ezclermont
git clone https://github.com/nickp60/ezclermont && cd ezclermont
pip install --editable .
Testing
pytest
Requirements
commandline tool
Biopython
webapp
flask biopython
Acknowledgements
Thanks to Dave Gamache for Skeleton, the webapp CSS theme.
Name note
The name of this repo (and pypi package) was changed on April 21 from ClermontPCR to EzClermont.
Release files for ezclermont 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ezclermont-1.0.0.tar.gz | 15.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ezclermont-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.7 kB
Release files / ezclermont-1.0.0.tar.gz
| Download URL | ezclermont-1.0.0.tar.gz |
|---|---|
| Size | 15.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7497ef728dd2395ec3bb3f81413a047b54bbfd1fbd1f3347b7cf3dad4d703d6
|
|
BLAKE2b-256 checksum How to use checksums |
d633ed3692d0e2b8d727dd2499665a37cef4d6397e3349f4a54bbcee10983e02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 5, 2026.
Transparency logRelease files / ezclermont-1.0.0-py3-none-any.whl
| Download URL | ezclermont-1.0.0-py3-none-any.whl |
|---|---|
| Size | 17.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5432c0d9527604f63f94f0a112f8553db47ebfba4f50fcfdf4adf551b10d8cf4
|
|
BLAKE2b-256 checksum How to use checksums |
cb5c05b87f10f6e2e8b1d829c705d15523ceec3548e56676ae913acbf1320423
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 5, 2026.
Transparency log