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 fieldbioinfomatics 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

aligntrim [OPTIONS] BEDFILE

The tool reads alignment data from either a SAM 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 : Subsample to N coverage per amplicon. Use 0 for no normalisation (default: 0)
  • --min-mapq, -m : Minimum mapping quality to keep an aligned read (default: 20)
  • --primer-match-threshold, -p : Fuzzy match primer positions within this threshold (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

aligntrim primers.bed --bamfile input.bam --output trimmed.bam

Normalize coverage and generate reports

aligntrim primers.bed --bamfile 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 | aligntrim primers.bed --verbose > trimmed.sam 2> verbose.out.txt

Strict full-length read filtering

aligntrim primers.bed --bamfile input.bam --require-full-length \
  --min-mapq 30 --output filtered.bam

Allow mismatched primer pairs with custom threshold

aligntrim primers.bed --bamfile 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.0.2.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.0.2-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: align_trim-1.0.2.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for align_trim-1.0.2.tar.gz
Algorithm Hash digest
SHA256 3083ce66b641c6abd519c82da2f68375d15113744f903f3d0c8c2202c34dfb4b
MD5 e12e711a0b0c6e29c331bd06b02abb78
BLAKE2b-256 8015a1d5a62cfa881219875622a4ada7a40e5cb85693be9d615dd742fc2b4f36

See more details on using hashes here.

File details

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

File metadata

  • Download URL: align_trim-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for align_trim-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e1400a122e7ca04552d5e18df98e075b56a607eb0b90735db2188732e16c9360
MD5 f91a1b463e8ce5e10a550fed271e053b
BLAKE2b-256 aec4553537a5d1302c899560108ec8db15e31cbfce86e991493a00faacfaac60

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