Skip to main content

Soft-clip primer sites for SAM/BAM files generated from amplicon sequencing runs

Project description

align_trim

Stand alone version of ARTIC's fieldbioinformatics align_trim.py

Installation

From conda

conda install bioconda::align_trim 

from pypi

pip install align_trim

from source

git clone https://github.com/artic-network/align_trim.git
cd align_trim
uv sync
uv run align_trim --help

Command Line Interface

Basic Usage

align_trim [OPTIONS] BEDFILE

The tool reads alignment data from either a SAM/BAM file or stdin and outputs trimmed alignments to stdout in SAM format by default.

Required Arguments

  • BEDFILE: BED file containing the amplicon primer scheme in v3 format.

Optional Arguments

Input/Output Options

  • --samfile, -s : Sorted SAM/BAM file containing the aligned reads, if this is not provided (or '-') then 'align_trim' will read from stdin.
  • --output, -o : Output file path. Format determined by extension (.sam/.bam). If not provided or '-', writes SAM to stdout

Processing Options

  • --normalise, -n : Normalise to target depth N per amplicon using a greedy per-read algorithm. Each read is kept only if it brings the amplicon depth closer to the target. Use 0 for no normalisation (default: 0)
  • --min-mapq, -m : Minimum mapping quality to keep an aligned read (default: 20)
  • --primer-match-threshold, -p : Add this many bases of padding to the 5' end of primer coordinates to allow fuzzy matching for reads with barcodes/adapters (default: 35)

Primer and Read Handling

  • --no-trim-primers : Do not trim primers from reads (by default, primers are trimmed)
  • --allow-incorrect-pairs : Allow reads to be assigned to amplicons even if primers are not correctly paired
  • --require-full-length : Require all reads to start and stop in primer sites (do not use with rapid barcoding)

Output and Reporting

  • --report, -r : Output detailed report TSV to specified filepath
  • --amp-depth-report, -a : Output mean depth for each amplicon as TSV to specified filepath
  • --no-read-groups : Do not divide reads into pool-based read groups in SAM/BAM output

General Options

  • --verbose, -v : Enable debug mode with detailed logging to stderr
  • --version : Show version information
  • --help : Show help message

Examples

Basic trimming with primer removal

align_trim primers.bed --samfile input.bam --output trimmed.bam

Normalize coverage and generate reports

align_trim primers.bed --samfile input.bam --normalise 100 \
  --report alignment_report.tsv --amp-depth-report depth_report.tsv \
  --output normalized.bam

Process from stdin with verbose output

samtools view -h input.bam | align_trim primers.bed --verbose > trimmed.sam 2> verbose.out.txt

Strict full-length read filtering

align_trim primers.bed --samfile input.bam --require-full-length \
  --min-mapq 30 --output filtered.bam

Allow mismatched primer pairs with custom threshold

align_trim primers.bed --samfile input.bam --allow-incorrect-pairs \
  --primer-match-threshold 50 --output relaxed.bam

Output Formats

The tool supports multiple output formats based on file extension:

  • .sam - SAM format (text)
  • .bam - BAM format (binary, compressed)
  • No extension or - - SAM format to stdout

Report Files

When using --report, a tab-separated file is generated with the following columns:

  • chrom: Reference chromosome/contig
  • QueryName: Read name
  • ReferenceStart/ReferenceEnd: Alignment coordinates
  • PrimerPair: Primer pair assignment
  • Primer1/Primer2: Individual primer information
  • CorrectlyPaired: Boolean indicating proper primer pairing
  • Additional alignment metrics

The --amp-depth-report generates a summary of coverage depth per amplicon.

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

align_trim-1.1.0.tar.gz (6.7 MB view details)

Uploaded Source

Built Distribution

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

align_trim-1.1.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file align_trim-1.1.0.tar.gz.

File metadata

  • Download URL: align_trim-1.1.0.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for align_trim-1.1.0.tar.gz
Algorithm Hash digest
SHA256 2bbed7703abee40310a7a8e36ca464abf5c333d1c09ef8440b10bf9977e29e28
MD5 5425cbde3f2d4dc2e6526e656b912411
BLAKE2b-256 e0e57c50dda607cc2874faa6ba01315c66894a9db1e9037c318d5f3fd3bc72a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for align_trim-1.1.0.tar.gz:

Publisher: python-publish.yml on artic-network/align_trim

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

File details

Details for the file align_trim-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: align_trim-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for align_trim-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ecae98614f906c569bc72f54f5f229ba9edb351ca364d06804a59b6b7f27b553
MD5 e74b2177f1cbd9dab7d75e6d3bebe970
BLAKE2b-256 1dc2934333e5131cd00df9d4a73613038dd9219a0df1813995f06604a4ed9f39

See more details on using hashes here.

Provenance

The following attestation bundles were made for align_trim-1.1.0-py3-none-any.whl:

Publisher: python-publish.yml on artic-network/align_trim

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