Skip to main content

A Python package to update and manage the MLST database for the MLST tool.

Project description

mlstdb

PyPI - Version PyPI - Python Version

mlstdb is a Python package to update and manage the MLST database for the mlst tool using the PubMLST and BIGSdb Pasteur APIs. It is written to handle the OAuth2 authentication process that's required to access up-to-date MLST schemes available on these databases. This tool allows user to fetch MLST schemes, filter the schemes, and update the MLST database for the mlst tool.


Table of Contents

Prerequisites

Should install mlst for the use of this tool.

Installation

From bioconda:

conda install -c bioconda mlstdb

From PyPI:

pip install mlstdb

Usage

mlstdb uses a simple two step process to update the MLST database for the mlst tool. It has two main subcommands: fetch and update.

  1. Fetch MLST schemes
mlstdb fetch --help
Usage: mlstdb fetch [OPTIONS]

  BIGSdb Scheme Fetcher Tool

  This tool downloads MLST scheme information from BIGSdb databases. It will
  automatically handle authentication and save the results.

Options:
  -h, --help                  Show this message and exit.
  -d, --db [pubmlst|pasteur]  Database to use (pubmlst or pasteur)
  -e, --exclude TEXT          Scheme name must not include provided term
                              (default: cgMLST)
  -m, --match TEXT            Scheme name must include provided term (default:
                              MLST)
  -s, --scheme-uris TEXT      Optional: Path to custom scheme_uris.tab file
  -f, --filter TEXT           Filter species or schemes using a wildcard
                              pattern
  -r, --resume                Resume processing from where it stopped
  -v, --verbose               Enable verbose logging for debugging

Use the fetch command to download MLST schemes from the BIGSdb databases. The --db argument specifies the database to use, which can be either pubmlst or pasteur. The --exclude and --match arguments can be used to filter the schemes based on the scheme name. The --scheme-uris argument can be used to provide a custom scheme URIs file. The --filter argument can be used to filter species or schemes using a wildcard pattern. The --resume flag can be used to resume processing from where it stopped. The --verbose flag can be used to enable verbose logging for debugging. This will create a mlst_schemes_<db>.txt file with the MLST schemes.

We can just use mlstdb fetch to download the MLST schemes from the BIGSdb databases. If the registration is not done, it will prompt the user to register the client credentials. This will save the client credentials to the ~/.config/mlstdb directory.

In cases where the tool does not find an appropriate scheme name, it will prompt the user to either set the missing schemes as 'missing' or auto-generate them. The user can choose the appropriate option.

Auto extraction of scheme?🤔

First, the script automatically tries to extract the scheme names from the dbases.sh file. If the scheme name is not found, it will prompt the user to either print missing in the output file or automatically create a scheme name based on the URL. For eg, for URL https://rest.pubmlst.org/db/pubmlst_borrelia_seqdef/schemes/1, the scheme name will be borrelia. If there are multiple schemes, it will append a number to the scheme name. For eg, for URLs https://rest.pubmlst.org/db/pubmlst_chlamydiales_seqdef/schemes/38 and https://rest.pubmlst.org/db/pubmlst_chlamydiales_seqdef/schemes/41, the scheme names will be chlamydiales_38 and chlamydiales_41 respectively.

The script offers feature to filter for particular species/schemes. It is recommended to run with filter option and thus, download only the required schemes so as not to tamper with the existing DBs and schemes.

📝Important: mlst tool is designed for typing bacterial species only. Please make sure to filter the non-bacterial schemes from your schemes file.

  1. Update MLST database
mlstdb update --help
Usage: mlstdb update [OPTIONS]

  Update MLST schemes and create BLAST database.

  Downloads MLST schemes from the specified input file and creates a BLAST
  database from the downloaded sequences. Authentication tokens should be set
  up using fetch.py.

Options:
  -h, --help                  Show this message and exit.
  -i, --input TEXT            Path to mlst_schemes_<db>.txt containing MLST
                              scheme URLs  [required]
  -d, --directory TEXT        Directory to save the downloaded MLST schemes
                              (default: pubmlst)
  -b, --blast-directory TEXT  Directory for BLAST database (default: relative
                              to directory as ../blast)
  -v, --verbose               Enable verbose logging for debugging

Use the update command to update the MLST database and create a BLAST database. The --input argument specifies the path to the mlst_schemes_<db>.txt file containing MLST scheme URLs. The --directory argument specifies the directory to save the downloaded MLST schemes. The --blast-directory argument specifies the directory for the BLAST database. The --verbose flag can be used to enable verbose logging for debugging.

We can prepare a custom mlst_schemes_<db>.txt file and use mlstdb update to update the MLST database for select species and schemes. This will automatically create a BLAST database from the downloaded sequences.

Final Steps

After running all scripts, verify the database setup by running the mlst tool with the updated database:

mlst --blastdb <path_to_blast/mlst.fa> --datadir <path_to_pubmlst_dir>

License

mlstdb is distributed under the terms of the MIT license.

For additional support, please raise an issue.

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

mlstdb-0.1.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

mlstdb-0.1.1-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file mlstdb-0.1.1.tar.gz.

File metadata

  • Download URL: mlstdb-0.1.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for mlstdb-0.1.1.tar.gz
Algorithm Hash digest
SHA256 343a56b0bd8f999b5055740fe661306d0ad5b8a7459cfac88e4e2b816ba02dfb
MD5 45fe9c80dcaaaf43f60d68c0caa06b4c
BLAKE2b-256 cc66d21bf93dbb52b2ca4498d2748ce5df35137f26a5c0afec78658a3d98ae57

See more details on using hashes here.

File details

Details for the file mlstdb-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mlstdb-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for mlstdb-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 84451313cbf574c55e2f41c6ca68c8d1438a8cb43d4ce854d5183eb8213161c9
MD5 7dae94ff246dd794ba1d0eeba205d9d0
BLAKE2b-256 353badecc8a77f30f4a884606c27d03f5beba5043105d1dceacaf18bf5a5ab88

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