Skip to main content
v0.4.0 - Check compatibility of primer sets for multiplex PCR

Overview

PrimerLab’s Multiplex Analysis feature evaluates whether multiple primer pairs can be used together in a single PCR reaction by checking for cross-dimer formation, Tm uniformity, and GC content consistency.

Key Features

FeatureDescription
Cross-Dimer DetectionIdentifies problematic primer-dimer interactions between all primer combinations
Compatibility Scoring0-100 score with A-F grading based on dimer ΔG, Tm spread, and GC uniformity
Validation EngineConfigurable thresholds with strict/standard/relaxed presets
Export FormatsJSON, Markdown, Excel (with matrix), IDT plate ordering format

Quick Start

Standalone Analysis

# Basic analysis
primerlab multiplex --primers my_primers.json --output results/

# With custom config
primerlab multiplex --primers primers.json --config my_config.yaml

Integrated with Workflow

# Run PCR design with multiplex check
primerlab run pcr --config design.yaml --check-multiplex

Input Format

Create a JSON file with your primer pairs:
[
  {
    "name": "GAPDH",
    "fwd": "ATGGGGAAGGTGAAGGTCGG",
    "rev": "GGATCTCGCTCCTGGAAGATG",
    "tm_fwd": 60.5,
    "tm_rev": 61.2,
    "gc_fwd": 60.0,
    "gc_rev": 57.0
  },
  {
    "name": "ACTB",
    "fwd": "CATGTACGTTGCTATCCAGGC",
    "rev": "CTCCTTAATGTCACGCACGAT",
    "tm_fwd": 59.8,
    "tm_rev": 58.9,
    "gc_fwd": 52.0,
    "gc_rev": 48.0
  }
]

Output Reports

FormatFileDescription
Markdownmultiplex_report.mdHuman-readable summary with score, issues, recommendations
JSONmultiplex_analysis.jsonComplete data for programmatic use
Excelmultiplex_analysis.xlsxSummary + Primer Details + Compatibility Matrix sheets
IDT Plateidt_plate_order.csvReady for IDT plate ordering

Scoring System

Grade Thresholds

ScoreGradeInterpretation
85-100AExcellent compatibility
70-84BGood, minor considerations
55-69CAcceptable, some issues
40-54DProblematic, redesign recommended
0-39FIncompatible, redesign required

Component Weights (Standard Mode)

ComponentWeightDescription
Dimer Score40%Based on cross-dimer ΔG values
Tm Uniformity25%Penalty for Tm spread across primers
GC Uniformity15%Penalty for GC content variation
Count Penalty20%Penalty for large primer sets (>2 pairs)

Configuration

Preset Modes

multiplex:
  mode: standard  # Options: strict, standard, relaxed
ModeDimer ΔG ThresholdTm Spread MaxUse Case
strict-5.0 kcal/mol1.5°CHigh-throughput, critical applications
standard-6.0 kcal/mol2.0°CGeneral multiplex PCR
relaxed-9.0 kcal/mol3.0°CExploratory, non-critical

Custom Thresholds

multiplex:
  mode: standard
  dimer_dg_threshold: -7.0  # Override specific values
  tm_diff_max: 2.5
  
  scoring:
    dimer_weight: 0.45
    tm_weight: 0.25
    gc_weight: 0.15
    count_weight: 0.15

API Usage

from primerlab.api import check_multiplex_compatibility

primers = [
    {"name": "GAPDH", "fwd": "ATGC...", "rev": "GCTA...", "tm_fwd": 60.0, "tm_rev": 60.0},
    {"name": "ACTB", "fwd": "TTTT...", "rev": "AAAA...", "tm_fwd": 59.0, "tm_rev": 59.0},
]

result = check_multiplex_compatibility(primers)

print(f"Score: {result['score']}/100 (Grade {result['grade']})")
print(f"Compatible: {result['is_valid']}")
print(f"Warnings: {result['warnings']}")

Troubleshooting

Common Issues

IssueCauseSolution
Score drops with more pairsCount penalty + more dimer combinationsSplit into smaller multiplex groups
Low Tm uniformity scoreLarge Tm spread across primersRedesign outlier primers
Problematic dimersStrong cross-dimer formationAvoid complementary 3’ ends

Recommendations

  1. Optimal set size: 2-5 primer pairs per multiplex
  2. Tm target: Keep all primers within 2°C of each other
  3. GC content: Aim for 40-60% for all primers
  4. 3’ end design: Avoid complementary sequences at 3’ ends

See Also