Skip to main content

Tests PyPI version

Primaschema

A toolkit for fetching, validating and interrogating tiled amplicon PCR primer scheme definitions. Provides convenient programmatic access to the PHA4GE primer-schemes repository, a community repository of tiled amplicon primer schemes.

Production install (Python 3.12+)

Recommended:

uv tool install primaschema

Alternatives:

pipx install primaschema
# or
python -m pip install primaschema

Quick start

Download a scheme from the default index and validate it:

primaschema get example-scheme/400/v1.0.0 --output ./schemes
primaschema validate ./schemes/example-scheme/400/v1.0.0/info.json

Show CLI help or version:

primaschema --help
primaschema --show-version

Common commands

  • create: Create a new scheme from a primer.bed and reference.fasta.
  • validate: Validate a single scheme or all schemes under a directory.
  • rebuild: Recompute checksums, regenerate scheme README, and optionally reformat primer.bed.
  • index: Build or update an index.json for a local schemes directory.
  • get: Download schemes from an index (default is the PHA4GE primer-schemes index).
  • modify: Update contributors, vendors, tags, status, license, target organisms, and algorithm fields.

Scheme creation

mkdir -p ./schemes && rm -rf ./schemes/example-scheme
primaschema create \
  --name example-scheme \
  --amplicon-size 400 \
  --version v1.0.0 \
  --contributors "name=Alice Smith,email=alice@example.org" \
  --target-organisms "common_name=Example organism,ncbi_tax_id=000001" \
  --status VALIDATED \
  --bed-path ./example-scheme.primer.bed \
  --reference-path ./example-scheme.reference.fasta \
  --primer-schemes-path ./schemes

The scheme is written to ./schemes/example-scheme/400/v1.0.0/.

Environment

Many commands accept --primer-schemes-path. You can also set it once:

export PRIMER_SCHEMES_PATH=./schemes

Development

git clone https://github.com/pha4ge/primaschema.git
cd primaschema
uv sync --all-extras
uv run primaschema --help
uv run pytest
uv run pre-commit install
uv run pre-commit run --all-files

uv sync --all-extras installs optional dependencies, including the dev extra (e.g. pytest, pre-commit, ruff) defined in pyproject.toml.

The Pydantic model (src/primaschema/schema/info.py) is generated from the LinkML schema (src/primaschema/schema/info.yml). After modifying the schema, regenerate with:

uv run gen-pydantic src/primaschema/schema/info.yml --meta None > src/primaschema/schema/info.py

Download files

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

Source Distribution

primaschema-0.3.0.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

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

primaschema-0.3.0-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file primaschema-0.3.0.tar.gz.

File metadata

  • Download URL: primaschema-0.3.0.tar.gz
  • Upload date:
  • Size: 30.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for primaschema-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8193595cceb18a7874153680b22a71e5754073be6907828db4519ca3fb435496
MD5 1bf7801aad50a45be75b37892f21e1fc
BLAKE2b-256 361affeb464dd77e1a9684482954550e91ef62b9e472cc73216b547edc95bace

See more details on using hashes here.

File details

Details for the file primaschema-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: primaschema-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for primaschema-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 22361a8cc8b0125be3119c7321f42ce03ff0173c1b913fdd2bcab98dcb996f9a
MD5 1085bf91e5d778afff4b0888e2f965bc
BLAKE2b-256 2dd599f2ccdeb179d2b7f543f84eb22698b5bcec8bde58896bb6f55da004b0d3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

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