Skip to main content

A PrIMEr infereNce TOolkit to facilitate large-scale calling of metabarcoding amplicon sequence variants

Project description

PIMENTO

A PrIMEr infereNce TOolkit to facilitate large-scale calling of metabarcoding amplicon sequence variants.

How PIMENTO works

PIMENTO’s employs a dual primer inference strategy, which are:

  • Standard primer search: based on fuzzy regex search queries to a library of curated standard primer sequences.
  • Primer cutoff prediction: based on the identification of the primer cutoff point from analysis of patterns of base-conservation at the beginning (and end, for single-end libraries) of reads. Consensus sequences are then generated as inferred primers using the predicted cutoff.

PIMENTO also implements an "are there primers?" function to predict the presence of primers in sequencing reads in case no standard primer was found. This method is helpful in cases where it isn't known whether primer sequences are still present in the reads, and checking manually would not be trivial, i.e. for large-scale analysis pipelines.

How to install

PIMENTO is available on PyPi. To install it from PyPi with pip just run:

pip install mi-pimento

PIMENTO is also available on bioconda and can be installed like this with conda/mamba:

conda install -c bioconda mi-pimento

How to run

PrimerInferenceWorkflow

You can run either PIMENTO strategy with a single command. The tool will look for primers on either end, so both strategies will work on paired-end, single-end, or merged paired-end sequencing reads (though you would have to run it twice unmerged paired-end sequencing reads, one for each end).

pimento --help
Usage: pimento [OPTIONS] COMMAND [ARGS]...

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  are_there_primers     Predict whether primers are present in the input reads
  auto                  Perform the primer cutoff strategy for primer
                        inference
  choose_primer_cutoff  Choose the optimal primer cutoff point.
  find_cutoffs          Find potential cutoffs using a BCV output.
  gen_bcv               Generate the base-conservation vector(s) (BCV)
  std                   Perform the standard primer strategy for primer
                        inference

Standard primer matching

To run the standard primer strategy:

pimento std -i <fastq/fastq.gz> -p <primers_dir> -o <output_prefix>

Inputs

-i <fastq/fastq.gz>: the input FASTQ reads file.

-p <primers_dir>: the path to the standard primers library to be used, with the default being PIMENTO's library. You can use your own library, or extend PIMENTO's. If using a different library than the default, make sure the primer FASTA files have this format:

>341F
CCTACGGGNGGCWGCAG
>338F
ACTCCTACGGGAGGCAGCA
>805R
GACTACHVGGGTATCTAATCC
>785R
CTACCAGGGTATCTAATCC

Where forward strand primers have the character F as the final character, and vice versa R for reverse strand primers.

-o <output_prefix>: the prefix to be used on output files.

Outputs

<output_prefix>_std_primers.fasta: FASTA file containing the best found single or pairs of primers. Empty if none were found.

<output_prefix>_std_primer_out.txt: Text file containing the read proportions of the best found primers.

all_standard_primer_proportions.txt: Text file logging all the read proportions for every single searched primer.

Primer cutoff prediction

To run the primer cutoff strategy:

pimento auto -i <fastq/fastq.gz> -st [FR/F/R] -o <output_prefix>

NB: Running pimento auto executes the three subcommands generate_bcv, find_cutoffs, choose_primer_cutoff sequentially. You can therefore run each step of this workflow individually if you wish.

Inputs

-i <fastq/fastq.gz>: the input FASTQ reads file.

-st [FR/F/R]: the selection of strands to perform primer inference for - F for forward, R for reverse, FR for both.

-o <output_prefix>: the prefix to be used on output files.

Outputs

<output_prefix>_auto_primers.fasta: FASTA file containing the inferred primer sequences using the predicted optimal cutoffs.

Are there primers?

To run the "are there primers?" utility:

pimento are_there_primers -i <fastq/fastq.gz> -o <output_prefix>

Inputs

-i <fastq/fastq.gz>: the input FASTQ reads file.

-o <output_prefix>: the prefix to be used on output files.

Outputs

<output_prefix>_general_primer_out.txt: Text file containing a 1 or 0 depending on if a primer was found on the forward strand (first line) and the reverse strand (second line).

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

mi_pimento-1.0.2.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

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

mi_pimento-1.0.2-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

Details for the file mi_pimento-1.0.2.tar.gz.

File metadata

  • Download URL: mi_pimento-1.0.2.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mi_pimento-1.0.2.tar.gz
Algorithm Hash digest
SHA256 5562e4bd859a0485fadcdb7df05a830bbd76335d4cb4d370c40e8ac777c258bf
MD5 54369f988c95d0f34843ff9b5b2a6969
BLAKE2b-256 d518692f24beb3af5f69edc786633264b8c36e78afad68626569ca88de6b4a0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mi_pimento-1.0.2.tar.gz:

Publisher: python-publish.yml on EBI-Metagenomics/PIMENTO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mi_pimento-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: mi_pimento-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 32.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mi_pimento-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 81aaf29a7bb9236f07147425da3840a639d891e834c397b33d14c78e59af95d2
MD5 8cb4ebb0ab67ed8713ac7cf3f74c275e
BLAKE2b-256 24a3220dd5e65e7975b8a064f2606666f10036e77ca4e6d0f7830fdf48dd1844

See more details on using hashes here.

Provenance

The following attestation bundles were made for mi_pimento-1.0.2-py3-none-any.whl:

Publisher: python-publish.yml on EBI-Metagenomics/PIMENTO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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