Primer Design
K-DenseCommunityCreated by K-Dense Inc.
- Skill
- Tool integration
- Science and research
- MIT
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured, reproducible workflow for the design and specificity assessment of PCR and RT-qPCR primers. It integrates Primer3 for thermodynamic design and local BLAST or exhaustive search tools for off-target amplification screening. The workflow emphasizes rigorous input contracts, explicit thermodynamic assumptions, and the generation of traceable evidence reports, ensuring that all design decisions are documented and verifiable without relying on external web-based services.
What it does
- Designs PCR and RT-qPCR primer pairs based on user-defined templates and thermodynamic constraints.
- Audits existing primer pairs for thermodynamic stability and potential off-target amplification.
- Performs exhaustive local in-silico PCR and BLAST-based specificity screening.
- Supports advanced assay requirements including exon-junction targeting, multiplexing, and cloning tails.
- Generates standardized JSON reports and assay documentation for experimental validation.
- Enforces strict input validation to prevent silent failures or incorrect assumptions.
When to use it
- When you need to design new primers for genomic PCR, RT-qPCR, or cloning applications.
- When you must verify the specificity and thermodynamic properties of existing primer sequences.
- When working in environments requiring local-only processing of sensitive or proprietary sequence data.
- When you need to document the full rationale, assumptions, and evidence for a primer design project.
Advantages
- Ensures reproducibility by requiring explicit configuration, reference versions, and chemistry settings.
- Provides local, offline screening capabilities to maintain data privacy and control.
- Includes robust checks for off-target products and multiplex interactions.
- Facilitates systematic validation by separating computational candidates from experimental requirements.
Usage examples
- “Design a new qPCR primer pair for the target sequence in demo-template.fasta using the qpcr preset.”
- The agent executes the design script with the specified template and configuration, producing a JSON report of candidate pairs and their associated thermodynamic properties.
- “Check the specificity of an existing primer pair against my local reference genome.”
- The agent runs the specificity screening tool against the provided reference, identifying potential off-target binding sites and reporting product lengths and mismatch counts.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/k-dense-ai/primer-design/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip primer-design.zip -d .agents/skills
Documentation by K-Dense Inc.
Primer design and specificity
Produce candidate oligos in 5-prime-to-3-prime orientation, with the exact template, chemistry, intended products, and search scope behind each conclusion. Calculate sequence-dependent quantities with the supplied tools. A familiar gene name, good Primer3 penalty, or a single BLAST alignment cannot establish primer specificity.
Choose the workflow
| Request | Start here |
|---|---|
| New genomic PCR or RT-qPCR pair | Define the assay and reference; design; assess thermodynamics; screen products. |
| Check an existing pair | Prepare pair TSV; assess both full oligos and annealing cores; screen with explicit intended coordinates. |
| Exon junction, transcript isoform, allele discrimination | Read design-workflows.md; supply sequence annotation before imposing constraints. |
| Cloning/adaptor-tailed primers | Design annealing cores, append declared 5-prime tails, reassess full oligos, reconstruct the final product. |
| Multiplex panel | Enable --multiplex in both thermodynamics and specificity tools to assess oligo interactions and cross-pair products. |
| Degenerate, bisulfite, probe, or modified-base assay | Use the specialized workflow in design-workflows.md; the bundled ordinary-DNA model is insufficient. |
The local tooling supports paired primers with unambiguous ACGT cores. Advanced assay types have substantive design and validation guidance, but are not silently reduced to ordinary PCR. This skill designs assays; expression normalization, experimental diagnostic validation, and guide-RNA design are separate tasks.
Establish the assay contract
Obtain what changes the result; use explicit provisional assumptions for an exploratory design, and identify them in the report:
Purpose and template: genomic DNA, cDNA, plasmid, or another defined substrate; target organism, accession with version, assembly/transcript release, strand, desired isoforms, and product-size range. Name wanted and unwanted templates.
Sequence evidence: local FASTA plus source/retrieval date and its SHA-256 hash. A locus excerpt uses local coordinates; record its mapping to the full reference. Include relevant paralogs, pseudogenes, alternate contigs, transcript isoforms, vector backbone, and host sequence in the appropriate screen.
Reaction conditions: polymerase/buffer, monovalent salt, total divalent salt, total dNTP, and oligo concentrations. Primer3 uses mM for salts/dNTP and nM for DNA. Record the initial reaction concentration separately from Primer3's effective annealing-oligo concentration parameter. Engine defaults are assumptions.
Constraints: target interval, allowed/excluded binding regions, junctions, variant exclusions and their source, fixed primers, tails, or multiplex membership. Do not guess exon boundaries or silently substitute another assembly.
Definition of an acceptable result: relevant off-target references, amplicon lengths, mismatch search limits, controls, and experimental validation appropriate to the assay. There is no universal thermodynamic cutoff that validates all PCRs.
Use input-contract.md for file schemas and coordinate examples. Copy assay-report-template.md into the analysis directory to collect evidence. Reference retrieval may be manual or through an established sequence API; preserve accession/version and verify the returned sequence. The supplied scripts use local files and do not submit sequences online.
Install and verify
Set SKILL_DIR to this skill's actual installed directory. Work in a separate analysis
directory so environments, reference databases, and results do not enter the skill.
uv venv --python 3.13 .venv-primer
uv pip install --python .venv-primer/bin/python -r "$SKILL_DIR/assets/requirements.txt"
.venv-primer/bin/python "$SKILL_DIR/scripts/design_primers.py" --helpUse the environment's Scripts/python.exe on Windows. The design/thermodynamic
examples target primer3-py 2.3.1, tested with Python 3.13. For the optional
BLAST engine, install NCBI BLAST+ from its official distribution and check:
blastn -version
makeblastdb -versionLocal integration checks also exercise BLAST+ 2.17.0; other releases require checking their output and search behavior before claiming equivalent coverage.
Read sources.md when updating dependencies or API assumptions. The scripts record engine versions and effective settings in their JSON reports.
1. Design candidates
For an initial functional demonstration, use the bundled synthetic sequence. It is nonbiological example input, not an experimentally validated assay:
.venv-primer/bin/python "$SKILL_DIR/scripts/design_primers.py" \
--template "$SKILL_DIR/assets/demo-template.fasta" \
--preset qpcr --config "$SKILL_DIR/assets/qpcr-config.json" \
--output design.json --pairs-out pairs.tsv --expected-out expected.tsvFor actual work, substitute the reviewed target FASTA and constraints. A multi-record
FASTA requires --record with its exact ID. The pcr preset requests 100–1000 bp;
qpcr requests 70–200 bp. Override these starting ranges in the configuration.
The example overrides its range to 90–180 bp and includes a specific target interval.
Multiple SEQUENCE_TARGET intervals are alternatives: Primer3 flanks at least one.
To require coverage of every interval, supply one enclosing target and verify the
returned product; separate assays require separate design runs.
The tool:
Passes validated
sequence_argsandglobal_argsto Primer3. Unsupported or misspelled tags fail rather than silently changing the task.Converts ambiguous template positions to
Nand forbids ambiguous primer bases. It does not interpret lowercase sequence as a repeat mask; use explicit exclusions.Optionally imports
--mask-bedexclusions in the supplied template's coordinates. Use BED intervals for variant/repeat masking only after validating the reference mapping; it does not infer allele frequencies or convert arbitrary VCFs.Verifies returned forward and reverse sequences against the template and checks product lengths. Primer3's right-primer position is converted into a half-open binding interval; the reverse primer is already in ordering orientation.
Optionally appends
--forward-tailand--reverse-tailto cores. The design score and core Tm do not include those tails; step 2 checks complete oligos.
Inspect engine_explanations when no candidates are found. Change a biologically
justified constraint and rerun; do not silently relax all constraints or return an
invented sequence. Preserve previous reports when comparing parameter choices.
expected.tsv describes intended products on the design template. If screening
another reference, map these coordinates to its exact record IDs and orientation.
A cDNA product cannot be relabeled as a genomic interval across introns.
2. Assess thermodynamics
Use the same chemistry as the design. The following explicit values match the bundled design defaults; replace them together when the actual conditions differ:
.venv-primer/bin/python "$SKILL_DIR/scripts/check_thermodynamics.py" \
--pairs pairs.tsv --mv-conc 50 --dv-conc 1.5 --dntp-conc 0.6 \
--dna-conc 50 --temp-c 37 --output thermodynamics.jsonThe report contains core Tm, core and full-oligo hairpins/homodimers, full-oligo
heterodimers, self 3-prime end stability, and both directional inter-oligo 3-prime
end-stability calculations. Delta-G and
delta-H are reported in kcal/mol; delta-S in cal/(mol K). --temp-c controls the
temperature for delta-G, not a recommended PCR annealing temperature.
If design used different Tm/salt models, also set --tm-method and
--salt-corrections-method to match; see the mapping in the input contract.
For a panel, add --multiplex to examine all unordered oligo combinations, including
forward/forward and reverse/reverse between different pairs. Distinguish a panel to
be combined from alternative candidates that will be tested separately.
Read thermodynamics.md before interpreting these values. Full oligos longer than 60 bases are reported as unresolved; they are never silently truncated. Modified bases and degenerate mixtures require a suitable model. Thermodynamic predictions support ranking and experimental planning, not a blanket claim of primer quality. Nonfinite Tm or a Tm at/below absolute zero is rejected as a calculation/input failure; such a result must not be ranked as an ordinary low-Tm primer.
3. Screen amplification products
Read specificity.md before making a specificity claim. Search each primer on both strands and pair inward-facing binding sites. A binding hit alone is not an amplicon; absence of a reported hit is not proof of absence.
Exhaustive bounded local search
.venv-primer/bin/python "$SKILL_DIR/scripts/screen_specificity.py" \
--pairs pairs.tsv --reference "$SKILL_DIR/assets/demo-template.fasta" \
--expected expected.tsv --engine exhaustive \
--min-product 40 --max-product 1000 --max-mismatches 2 \
--three-prime-bases 5 --max-three-prime-mismatches 0 \
--output specificity.jsonThis enumerates full-length, ungapped binding sites in a bounded local reference and checks F/R, R/F, F/F, and R/R products for each pair. Reference ambiguity is treated conservatively as unresolved sequence; it cannot establish a clean result. The mismatch limits are a search model, not a validated polymerase discrimination rule. Tight 3-prime thresholds can exclude amplifiable mismatched sites; broaden the search when evaluating that uncertainty.
Use --circular RECORD_ID for a circular molecule. Wrapped products use canonical
start coordinates and unwrapped ends greater than the reference length; only
products spanning at most one molecule are considered. Caps on comparisons, hits,
and products prevent unbounded work; hitting a cap makes the result incomplete.
BLAST-assisted local search
.venv-primer/bin/python "$SKILL_DIR/scripts/screen_specificity.py" \
--pairs pairs.tsv --reference "$SKILL_DIR/assets/demo-template.fasta" \
--expected expected.tsv --engine blast \
--min-product 40 --max-product 1000 --max-mismatches 2 \
--three-prime-bases 5 --max-three-prime-mismatches 0 \
--output specificity-blast.jsonThe script builds a temporary local BLAST database, runs short-query alignment, rechecks complete primer-length candidate sites, and records commands and versions. It checks configured hit limits and tool failures. BLAST discovery is heuristic: successful execution and unsaturated limits do not establish exhaustive coverage. The reference is loaded in memory; plan memory and search bounds for large genomes. The small example verifies execution, not human-genome sensitivity or scalability.
For broader public-reference screening, follow the official NCBI Primer-BLAST workflow in specificity.md, choosing the organism, database, intended templates, maximum product length, and mismatch policy deliberately. Submitting a sequence sends it to NCBI; keep local-only work local. Primer-BLAST is not a documented REST API implemented by these scripts.
Interpret the result
potential_off_target: inspect every unexpected product, including its orientation, length, mismatch positions, and reference identity; redesign or justify its relevance.intended_target_not_found: resolve mapping, reference, sequence, and search problems before drawing specificity conclusions.no_expected_target: results are a product inventory, without a target-specific conclusion. Supply all intended product intervals for the assay.incomplete: reference uncertainty, resource limits, or failed computation leaves the conclusion unresolved. Inspect the reported reason and repeat appropriately.no_off_target_found_within_search_scope: state the exact reference and search model. Check the report's exhaustive/heuristic flags; this is not empirical validation.
For a multiplex reaction, add --multiplex to the specificity command as well as
the thermodynamics command. The specificity tool then searches every cross-pair
oligo combination, retaining the original oligo identities and tails. It treats
cross-pair products as unintended; intentionally shared-primer designs require
explicit standalone combinations with reviewed expected products. The
--max-panel-combinations cap defaults to 10,000 and is checked before expansion.
Thermodynamic --multiplex checks structures; specificity --multiplex checks
reference products. Both are necessary for this panel assessment.
4. Validate the assay and deliver evidence
Select candidates using assay purpose, coverage, specificity evidence, and chemistry, not just the lowest Primer3 penalty. Preserve multiple candidates when uncertainty remains. Follow design-workflows.md for the relevant experimental checks: expected product identity/size, negative and no-template controls, genomic contamination controls for RT-qPCR, and efficiency/dynamic-range assessment when quantification is intended. A single melt peak alone does not prove identity.
Deliver the completed report template, pair TSV, design/thermodynamic/specificity JSON, and source manifest. Include:
Exact ordering sequences, separated annealing cores and tails, primer lengths, intended product coordinates/size, and any relevant transcript/junction mapping.
Chemistry and model settings; engine versions; reference accession/release, source, retrieval date, and file hashes; explicit exclusions and rationale.
Intended and potential unintended products; uncertainty from unknown bases, incomplete references, heuristic searches, caps, and unsupported assay chemistry.
Experimental evidence actually obtained, outstanding validation, and the reason for each recommended candidate. Label untested candidates accurately.
Validation and limits of this implementation
The repository suite at tests/primer-design/ exercises actual Primer3 calculations,
orientation and coordinate reconstruction, masking, tails, concentration handling,
off-target product geometry, mismatch/ambiguity behavior, failure states, and local
BLAST integration when its executables are installed. Synthetic fixtures establish
software behavior; they do not validate a biological assay or prove genome-wide recall.
Tools return 0 when their computation completes, 1 for a completed design with no candidates or incomplete long-oligo thermodynamics, and 2 for invalid input or tool failure. Read the JSON scientific status even after exit 0: finding an off-target is a successfully completed calculation. See the input contract for screen-specific exits.
Citing Scientific Agent Skills
If used in published work, cite the upstream methods in sources.md and Scientific Agent Skills. Report the software versions and assay-specific settings required to reproduce the actual analysis.
Files
- ATTRIBUTION.mdAdded by AutoGineer925 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md16.0 KiB
- assets/assay-report-template.md2.4 KiB
- assets/demo-template.fasta577 B
- assets/qpcr-config.json233 B
- assets/requirements.txt18 B
- references/design-workflows.md10.3 KiB
- references/input-contract.md11.6 KiB
- references/sources.md4.4 KiB
- references/specificity.md10.3 KiB
- references/thermodynamics.md7.0 KiB
- scripts/_common.pyScript5.5 KiB
- scripts/_specificity.pyScript20.1 KiB
- scripts/check_thermodynamics.pyScript8.5 KiB
- scripts/design_primers.pyScript15.3 KiB
- scripts/screen_specificity.pyScript10.7 KiB
references/specificity.md
Reference specificity and amplicon geometry
Documentation checked: 2026-10-01. Specificity is a claim about named sequences, search settings, and assay conditions. A favorable thermodynamic score or a clean search of an incomplete reference does not establish a unique biological product.
Select the reference universe
Create a manifest before screening. Include reference source, accession/version or assembly release, annotation release if relevant, date retrieved, checksums, record IDs, lengths, topology, and which intended/expected background molecules it covers.
| Assay | References to consider |
|---|---|
| Genomic locus | Appropriate assembly; alternate/unplaced sequences and relevant haplotypes when required |
| Transcript assay | Intended and excluded isoforms; related genes/pseudogenes; genomic DNA as a separate check |
| Plasmid or cloning | Complete construct, parental vector, inserts, and plausible host background |
| Family-wide detection | Explicit intended sequence collection and near-neighbor negatives |
| Mixed sample | Target plus likely host and other background relevant to interpretation |
Document omitted components. Do not silently reduce a reference to the design window to make screening faster. Preserve distinct sequence identifiers; duplicated records and multiple genomic loci are different issues. Several loci with the same amplicon sequence remain several loci.
What the bundled local methods establish
screen_specificity.py supports two local search strategies. Their guarantees are
different; retain the method and all settings in the report.
Exhaustive ungapped search: evaluate complete primer-length windows on both strands under the configured total and 3′ mismatch rules. Completeness is only for the supplied reference, implemented geometry, and bounded mismatch model. Insertions/deletions, longer permissible products, absent haplotypes, and unknown bases cannot be dismissed from biological consideration.
BLAST discovery with full-length verification: use short-query alignment to locate candidate binding windows, then verify the full primer sequence at those windows. This avoids treating a short favorable local alignment as a complete primer match. BLAST remains a heuristic: realignment cannot recover sites that discovery never returned.
Inspect the script's current options and emitted limitations for size, hit, and product caps and for supported topology. A cap reached during screening means the analysis is incomplete. Missing expected amplification, unsupported input, or truncated enumeration is not a specificity pass.
The exhaustive method is useful for constructs and bounded references. For large genomes, use scalable search or Primer-BLAST, retain limitations, and avoid treating the Python scanner as a whole-genome performance guarantee.
Binding orientation and coordinates
Store oligos in synthesized 5′→3′ orientation. Relative to the supplied reference:
A primer equal to the plus-strand window has a plus-direction binding hit and extends toward increasing reference coordinates.
A primer equal to the reverse complement of that window has a minus-direction hit and extends toward decreasing reference coordinates.
“Forward” and “reverse” are design labels; either oligo can find hits in either orientation elsewhere. For linear reference intervals, a plus-direction binding site upstream and a minus-direction site downstream may form an inward-facing product. The product extends from the upstream primer's outer 5′ boundary to the downstream primer's outer 5′ boundary and includes both primers.
Enumerate the two-oligo reaction's F/R, F/F, and R/R possibilities, not just the intended F/R orientation. For multiplex reactions, additionally evaluate cross-assay pairs. Primer-BLAST checks same-primer as well as mixed-primer products; this avoids overlooking inverted-repeat products. Primer-BLAST publication.
The bundled specificity CLI's --multiplex mode generates all cross-pair oligo
combinations under a declared cap and preserves their source identities. All
cross-pair products are classified as unintended in that mode. Assess intentional
shared-primer designs using explicit standalone combinations and expected intervals.
For circular templates, wrapped products cross coordinate zero. Use an explicitly supported circular search and a documented maximum product length; preserve original record length and wrapped coordinates. Doubling a reference without deduplication and length constraints can create misleading duplicate or multi-circumference products. Linear screening cannot clear origin-spanning risk.
Expected versus unintended products
Supply intended record and coordinate intervals, not just a record-name allowlist. A chromosome can contain the intended site and many unintended sites. If several loci or isoforms are acceptable, list each explicitly with its rationale.
Classify every predicted product against that specification. Report binding coordinates, primer identities, product length, total mismatches, and mismatch positions counted from the synthesized primer's 3′ end. Review expected products that are missing or mismatched separately from additional products.
For a whole-reference reverse-complement transformation, [start, end) becomes
[L-end, L-start) and the direction flips. This simple identity is useful for
testing coordinate handling. An oligo's last base is its 3′ end on either strand;
using the genomic window's last base unconditionally is wrong.
Interpreting mismatch settings
A mismatch budget is a screening model, not a polymerase law. Mismatch identity, position, reaction conditions, and template abundance affect whether amplification occurs. Review especially plausible competing products even if they lie just outside a chosen bound. Compare total mismatch counts with the positions near each primer's 3′ end; do not summarize both as a single identity percentage.
Use a stricter discovery model only when justified by the assay. Raising required 3′ mismatches or decreasing a total-mismatch budget may reduce predicted products by definition; it does not improve the oligo. Keep settings constant when ranking candidates, or report the difference clearly.
Ambiguous reference bases represent unknown or multiple possibilities. A sequence
containing N should not be treated as strong evidence of an impossible binding
site. Retain ambiguity warnings or resolve the sequence. Indel-containing primer
alignments require an appropriate alignment method beyond a substitution-only
screen.
NCBI Primer-BLAST review workflow
Use the official interface to review candidate primers when public-reference searching is appropriate.
Supply a versioned target record where available and both predesigned primers in synthesized orientation. Specify the intended organism and suitable database.
Set the maximum searched product length based on plausible competing products, not merely the desired product range.
Review specificity stringency, short-query sensitivity, and result/search caps. Save the actual settings rather than assuming current web defaults.
Review intended-target assignments and similar sequence matches manually. Do not accept an off-target solely because its description shares a gene symbol.
Save the complete report, retrieval date, database description, settings, and result interpretation. A transient job URL is insufficient provenance.
Current database help distinguishes core_nt (excludes assembled eukaryotic
chromosomes), RefSeq reference genomes (includes applicable alternate loci), and
selected-organism primary assemblies (excludes alternate loci). core_nt alone
cannot establish genome-wide eukaryotic specificity. In Custom mode, the
organism field is ignored; the supplied references determine scope. Verify the
current field help when choosing an assembly or database.
Primer-BLAST's minimum mismatches required for an unintended target to be accepted as discriminated is different from the local CLI's maximum mismatches retained as potential binding. Do not copy the same number between these controls and assume equivalent sensitivity. Its separate ignore-target threshold excludes a target when at least one primer reaches that total mismatch count.
NCBI distinguishes the cap on database sequences searched from output display limits. Larger searches may reveal additional products. Exact reference accessions help distinguish intended targets from redundant records. NCBI search tips.
Do not invent a supported Primer-BLAST API or substitute the general BLAST URL API for its pair-specific workflow. Any remote submission sends the submitted sequence to that service; use a local reference workflow when sequences must stay local. The linked Primer-BLAST URL returns an interactive HTML form/report workflow, not a documented JSON job-submission or pagination contract. No remote submission is implemented or required by the bundled scripts.
Local BLAST review
The BLAST+ blastn-short task is optimized for short nucleotide queries; its
documented word size is seven. Query masking, scoring, E-value, subject/result
limits, and database composition affect retrieval. Record them alongside the
executable version and database metadata.
BLAST+ options.
For each discovery hit, retain the query ID, subject ID, orientation, query and subject alignment endpoints, gaps, and aligned strings or an equivalent trace. Recover the full-length window in the subject and check its complete alignment, including the 3′ end. Pair verified hits using reference geometry. A BLAST table of high-scoring single-primer matches is not an amplicon report.
Separate these statements in the final interpretation:
No unintended products were found by this search.
The search completed within its declared model and caps.
The supplied references represent the required biological background.
Wet-lab evidence supports specificity under tested conditions.
Only make the statements for which evidence exists. Even all four together apply to the stated assay and sample universe, not every possible biological sequence.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
The author says: Requires Python 3.11+ and primer3-py 2.3.1 for design and thermodynamics. Local exhaustive screening uses the standard library; BLAST screening additionally needs blastn and makeblastdb on PATH. Network access is needed only for installation, reference retrieval, or external Primer-BLAST.
Security
What our scanner noticed· Low risk
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- K-Dense Inc.
- Publisher
- K-Dense (Community)
- Source
- K-Dense-AI/scientific-agent-skills · skills/primer-design · commit a25cf9e
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE.md)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by K-Dense Inc. or K-Dense.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download primer-design.zip