Skip to main content

In silico multi-antigen sequence typing for Neisseria gonorrhoeae (NG-MAST)

Project description

Tests GitHub release (latest by date) PyPI - License Anaconda-Server Badge Conda Downloads PyPI - Python Version PyPI DOI:10.1099/mgen.0.000076 Tests

ngmaster

In silico multi-antigen sequence typing for Neisseria gonorrhoeae (NG-MAST) and Neisseria gonorrhoeae sequence typing for antimicrobial resistance (NG-STAR).

Synopsis

ngmaster gono.fa
FILE     SCHEME      NG-MAST/NG-STAR  porB_NG-MAST  tbpB  penA  mtrR  porB_NG-STAR  ponA  gyrA  parC  23S  CC
gono.fa  ngmaSTar    4186/231         2569           241   23    42    100           100   10    2     100  231

What's New

  • Version and database version info: ngmaster --version now reports both the tool version and the bundled database version. Note: unauthenticated database automatically means database pre-dating 2025.
  • Clonal complex (CC): output now includes a CC column from the updated NG-STAR database.
  • Duplicate 23S alleles: multiple identical 23S alleles detected in a sample are now collapsed into a single call.
  • Large database fix: requires mlst >= 2.25.0, which fixes alleles going undetected when the BLAST database is large (see mlst v2.25.0).
  • Database licensing notice: the bundled database reflects the last freely redistributable snapshot of PubMLST. The PubMLST database after 2024-12-31 is subject to PubMLST terms and conditions and cannot be redistributed without appropriate licensing. Use --updatedb (with authenticated access) to get the latest data. For authenticated access, ensure you are registered with PubMLST and have an API key to access the database update endpoint: mlstdb connect -d pubmlst.

Dependencies

Installation

PiPy

# mlst must be installed separately via conda
conda install -c bioconda mlst
pip install ngmaster

pixi (fast reproducible environment)

# Install pixi if not already installed
curl -fsSL https://pixi.sh/install.sh | bash

# Clone the repo and set up the environment
git clone https://github.com/MDU-PHL/ngmaster
cd ngmaster
pixi install
pixi run pip install -e .

Brew

# TODO how to integrate mlst dependency
brew install brewsci/bio/ngmaster

Conda/Mamba

conda install -c bioconda ngmaster

Test

Once installed, you can run the following to ensure ngmaster is successfully working:

ngmaster --test

If everything works, you will see the following:

Running ngmaster.py on test example (NG-MAST 4186 / NG-STAR 231) ...
FILE    SCHEME  NG-MAST/NG-STAR porB_NG-MAST    tbpB    penA    mtrR    porB_NG-STAR    ponA    gyrA    parC 23S      CC
test.fa     ngmaSTar        4186/231     2569     241     23      42      100     100     10      2       100     231
... Test successful.

Usage

ngmaster -h

usage:
  ngmaster [OPTIONS] <fasta1> <fasta2> <fasta3> ... <fastaN>

In silico multi-antigen sequence typing for Neisseria gonorrhoeae (NG-MAST)
and Neisseria gonorrhoeae Sequence Typing for Antimicrobial Resistance (NG-STAR)

Please cite as:
  Kwong JC, Goncalves da Silva A, Howden BP and Seemann T.
  NGMASTER: in silico multi-antigen sequence typing for Neisseria gonorrhoeae (NG-MAST)
  GitHub: https://github.com/MDU-PHL/ngmaster

positional arguments:
  FASTA            input FASTA files eg. fasta1, fasta2, fasta3 ... fastaN

optional arguments:
  -h, --help       show this help message and exit
  --db DB          specify custom directory containing allele databases
                   directory must contain database sequence files (.tfa) and allele profile files (ngmast.txt / ngstar.txt)
                   in mlst format (see <https://github.com/tseemann/mlst#adding-a-new-scheme>)
                   default: <path/to/ngmaster/package/db>
  --csv            output comma-separated format (CSV) rather than tab-separated
  --printseq FILE  specify filename to save allele sequences to
  --minid MINID    DNA percent identity of full allele to consider 'similar' [~]
  --mincov MINCOV  DNA percent coverage to report partial allele at [?]
  --updatedb       update NG-MAST and NG-STAR allele databases from <https://rest.pubmlst.org/db/pubmlst_neisseria_seqdef>
  --assumeyes      assume you are certain you wish to update db
  --test           run test example
  --comments       include NG-STAR comments for each allele in output
  --version        show program's version number and exit

Quick start

To perform in silico NG-MAST and NG-STAR typing on FASTA files:

$ ngmaster <fasta1> <fasta2> <fasta3> ... <fastaN>

The NG-MAST and NG-STAR results and allele numbers are printed in tab-separated format to stdout.

  • ngmaster reports alleles according to the same rules that are implemented in mlst.
  • mlst's arguments --minid and --mincov are available directly in ngmaster
  • For each allele n:
Symbol Meaning Length Identity
n exact intact allele 100% 100%
~n novel full length allele similar to n 100% --minid
n? partial match to known allele --mincov --minid
- allele missing < --mincov < --minid
n,m multiple alleles    

To save results to a tab-separated text file, redirect stdout:

$ ngmaster <fasta1> <fasta2> <fasta3> ... <fastaN> > results.txt

To display results in comma-separated format, use the --csv option:

$ ngmaster --csv <fasta1> <fasta2> <fasta3> ... <fastaN>

To save sequences of the alleles to a file (eg. for uploading "new" sequences to PubMLST):

$ ngmaster --printseq [filename] <fasta1> <fasta2> <fasta3> ... <fastaN>

This will create two files:

  1. NGMAST__filename
  2. NGSTAR__filename

Updating the allele databases

To update the allele databases from PubMLST:
Warning: This will overwrite the existing databases so ensure you back them up if you wish to keep them.

$ ngmaster.py --updatedb

A copy of the old database is saved just in case, but is overwritten with each subsequent --updatedb.

To update the allele databases into a different folder (ie. not the /db folder in the ngmaster directory):

$ ngmaster.py --updatedb --db path/to/folder

This will download the database files into the folder path/to/folder. This can then be specified when running ngmaster using the --db path/to/folder option.

Check version and database version:

ngmaster --version

Updating the allele databases

The bundled database is the last freely redistributable snapshot of the PubMLST NG-MAST and NG-STAR schemes. The PubMLST terms and conditions do not permit redistribution of database content after 2024-12-31 without appropriate licensing.

To update to the latest alleles, you need an authenticated PubMLST account and API credentials via mlstdb:

# Register and connect to PubMLST (one-time setup)
mlstdb connect -d pubmlst

# Update the bundled database
ngmaster --updatedb

# Or update into a custom directory
ngmaster --updatedb --db path/to/custom/db

Warning: --updatedb overwrites existing database files. Back up your current db/ directory first if needed.

Creating a custom allele database

To create a custom allele database please follow the instructions for creating a custom mlst database described here. Usually, this should not be necessary, simply run ngmaster --update to update to the latest NG-MAST and NG-STAR schemes from PubMLST.

Citation

Kwong JC, Gonçalves da Silva A, Dyet K, Williamson DA, Stinear TP, Howden BP and Seemann T.
NGMASTER: in silico multi-antigen sequence typing for Neisseria gonorrhoeae Microbial Genomics 2016 Aug 25;2(8):e000076. PMID:28348871 DOI:10.1099/mgen.0.000076

Bugs

Please submit via the GitHub issues page.

Software Licence

GPLv2

References

Authors

  • Jason Kwong (@kwongjc)
  • Anders Gonçalves da Silva (@drandersgs)
  • Mark Schultz (@schultzm)
  • Torsten Seemann (@torstenseemann)
  • Andreas Stroehlein (@stroehleina)

Development

When incrementing version (i.e., minor patch), run the following:

bumpversion --verbose --dry-run --new-version <major.minor.patch> patch
bumpversion --new-version <new.version.number> patch

The same can be done for minor and major numbers.

This will automatically commit and tag the commit with the new version number. It will also update the necessary location in the file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ngmaster-2.0.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ngmaster-2.0.0-py3-none-any.whl (3.0 MB view details)

Uploaded Python 3

File details

Details for the file ngmaster-2.0.0.tar.gz.

File metadata

  • Download URL: ngmaster-2.0.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for ngmaster-2.0.0.tar.gz
Algorithm Hash digest
SHA256 85947d5e7d8bb896dd1dca5beea4f9049c4178192a2ac0234a84f3611e92ab44
MD5 933ad9cb33d57a05cb28db633da27a3c
BLAKE2b-256 6e0a11d76f27748d86eb3ea1e8e966ccc45c0470ace0f83f769efcde9d4501c2

See more details on using hashes here.

File details

Details for the file ngmaster-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: ngmaster-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for ngmaster-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 81561ff92a4a01c992e41064714512870bcd15f0534c54cfb7d69d599e8197b1
MD5 7ce291a0a2087f4323cec21ecbaf28f0
BLAKE2b-256 c8dba34434fdd4e08b0c90188a1b9b4a12a3423ae8ce7a4f69b90c7ed84640f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page