{
  "about": {
    "generatedBy": "pipeline/sequence-toolkit/primer_walk.py",
    "scriptSha256": "5df62d01a3a231b3c157478077d0f773571fd2e31a61fc0f5e63cde621cc3094",
    "recordedOn": "2026-10-11",
    "oracle": "Biopython 1.88 SeqIO/location extraction and independent Python exhaustive exact PCR enumeration",
    "pins": {
      "Sequence0.5-primer-design": "ce1239c060a57c39399d12362e625221081484a761e367c48bf60cd69983c6ec",
      "exact_matches.py": "d6e68e76d2041367238c4274faafd9a188628c25447618f00cdbadbcd0c2da6d",
      "primer-design-qualification-v2.json": "15bc9c8cb50e4568f42a10cdd3d52eb88121d59826c73dfc9a2a24abbef3dd21"
    },
    "statement": "Predicted from exact primer matches on the supplied template only. Not evidence of amplification or genome-wide specificity.",
    "searchScope": "Capped template-local search; this selected pair is not claimed to be globally optimal."
  },
  "source": {
    "accession": "J01636.1",
    "start": 1,
    "end": 600,
    "fileSha256": "66c2fa738e7b1d56a372b64eed078da4c2f6f91880cfd75d77a043ff55f8e386",
    "templateSha256": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316"
  },
  "input": {
    "templateName": "J01636.1 1..600",
    "template": "GACACCATCGAATGGCGCAAAACCTTTCGCGGTATGGCATGATAGCGCCCGGAAGAGAGTCAATTCAGGGTGGTGAATGTGAAACCAGTAACGTTATACGATGTCGCAGAGTATGCCGGTGTCTCTTATCAGACCGTTTCCCGCGTGGTGAACCAGGCCAGCCACGTTTCTGCGAAAACGCGGGAAAAAGTGGAAGCGGCGATGGCGGAGCTGAATTACATTCCCAACCGCGTGGCACAACAACTGGCGGGCAAACAGTCGTTGCTGATTGGCGTTGCCACCTCCAGTCTGGCCCTGCACGCGCCGTCGCAAATTGTCGCGGCGATTAAATCTCGCGCCGATCAACTGGGTGCCAGCGTGGTGGTGTCGATGGTAGAACGAAGCGGCGTCGAAGCCTGTAAAGCGGCGGTGCACAATCTTCTCGCGCAACGCGTCAGTGGGCTGATCATTAACTATCCGCTGGATGACCAGGATGCCATTGCTGTGGAAGCTGCCTGCACTAATGTTCCGGCGTTATTTCTTGATGTCTCTGACCAGACACCCATCAACAGTATTATTTTCTCCCATGAAGACGGTACGCGACTGGGCGTGGAGCATCTG",
    "topology": "linear",
    "settings": {
      "target": {
        "start": 201,
        "end": 400
      },
      "excluded": [],
      "forwardTail": "",
      "reverseTail": "",
      "conditions": {
        "oligo_nM": 250,
        "na_mM": 50,
        "mg_mM": 0,
        "dntp_mM": 0,
        "model": "primer-excess",
        "saltCorrection": "owczarzy-2004"
      },
      "flank": 50,
      "minLength": 18,
      "maxLength": 26,
      "targetLength": 20,
      "minTm": 55,
      "maxTm": 68,
      "targetTm": 59.95,
      "maxDeltaTm": 3,
      "minGc": 30,
      "maxGc": 70,
      "minProduct": 180,
      "maxProduct": 420
    }
  },
  "expected": {
    "method": "bounded-flanks-v2",
    "historicalNumericalMethod": "bounded-flanks-v1",
    "pairId": "+:158:177|-:428:409",
    "pair": {
      "id": "+:158:177|-:428:409",
      "forward": {
        "annealing": "CCAGCCACGTTTCTGCGAAA",
        "tail": "",
        "start": 158,
        "end": 177,
        "tm": 59.99861335790035,
        "gc": 55.0,
        "penalty": 0.04861335790035071,
        "tmReview": {
          "value": 59.99861335790035,
          "method": "oligo-tm-nearest-neighbour",
          "version": "1.0.0",
          "saltCorrection": "owczarzy-2004",
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "k_mM": 0,
            "tris_mM": 0,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
          "outside": []
        }
      },
      "reverse": {
        "annealing": "TGCGCGAGAAGATTGTGCAC",
        "tail": "",
        "start": 428,
        "end": 409,
        "tm": 59.96600984591282,
        "gc": 55.0,
        "penalty": 0.016009845912819287,
        "tmReview": {
          "value": 59.96600984591282,
          "method": "oligo-tm-nearest-neighbour",
          "version": "1.0.0",
          "saltCorrection": "owczarzy-2004",
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "k_mM": 0,
            "tris_mM": 0,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
          "outside": []
        }
      },
      "product": {
        "id": "+:158:177|-:428:409",
        "sequence": "CCAGCCACGTTTCTGCGAAAACGCGGGAAAAAGTGGAAGCGGCGATGGCGGAGCTGAATTACATTCCCAACCGCGTGGCACAACAACTGGCGGGCAAACAGTCGTTGCTGATTGGCGTTGCCACCTCCAGTCTGGCCCTGCACGCGCCGTCGCAAATTGTCGCGGCGATTAAATCTCGCGCCGATCAACTGGGTGCCAGCGTGGTGGTGTCGATGGTAGAACGAAGCGGCGTCGAAGCCTGTAAAGCGGCGGTGCACAATCTTCTCGCGCA",
        "length": 271,
        "templateLength": 600,
        "templateSpan": 271,
        "orientation": "+",
        "crossesOrigin": false,
        "forward": {
          "strand": "+",
          "start": 158,
          "end": 177,
          "length": 20
        },
        "reverse": {
          "strand": "-",
          "start": 428,
          "end": 409,
          "length": 20
        }
      },
      "ranking": {
        "tmDeviation": 0.06462320381317,
        "lengthDeviation": 0.0,
        "deltaTm": 0.03260351198753142,
        "total": 0.09722671580070141
      },
      "exactSites": {
        "forward": 1,
        "reverse": 1
      },
      "exactProducts": 1
    },
    "counts": {
      "windows": 918,
      "boundary": 0,
      "excluded": 0,
      "gc": 40,
      "tm": 234,
      "validForward": 353,
      "validReverse": 291,
      "productSize": 0,
      "deltaTm": 0,
      "eligiblePairs": 576,
      "exactChecked": 5,
      "exactRefused": 0
    },
    "capped": true,
    "pcrInput": {
      "template": "GACACCATCGAATGGCGCAAAACCTTTCGCGGTATGGCATGATAGCGCCCGGAAGAGAGTCAATTCAGGGTGGTGAATGTGAAACCAGTAACGTTATACGATGTCGCAGAGTATGCCGGTGTCTCTTATCAGACCGTTTCCCGCGTGGTGAACCAGGCCAGCCACGTTTCTGCGAAAACGCGGGAAAAAGTGGAAGCGGCGATGGCGGAGCTGAATTACATTCCCAACCGCGTGGCACAACAACTGGCGGGCAAACAGTCGTTGCTGATTGGCGTTGCCACCTCCAGTCTGGCCCTGCACGCGCCGTCGCAAATTGTCGCGGCGATTAAATCTCGCGCCGATCAACTGGGTGCCAGCGTGGTGGTGTCGATGGTAGAACGAAGCGGCGTCGAAGCCTGTAAAGCGGCGGTGCACAATCTTCTCGCGCAACGCGTCAGTGGGCTGATCATTAACTATCCGCTGGATGACCAGGATGCCATTGCTGTGGAAGCTGCCTGCACTAATGTTCCGGCGTTATTTCTTGATGTCTCTGACCAGACACCCATCAACAGTATTATTTTCTCCCATGAAGACGGTACGCGACTGGGCGTGGAGCATCTG",
      "topology": "linear",
      "forward": {
        "annealing": "CCAGCCACGTTTCTGCGAAA",
        "tail": ""
      },
      "reverse": {
        "annealing": "TGCGCGAGAAGATTGTGCAC",
        "tail": ""
      }
    },
    "product": {
      "id": "+:158:177|-:428:409",
      "sequence": "CCAGCCACGTTTCTGCGAAAACGCGGGAAAAAGTGGAAGCGGCGATGGCGGAGCTGAATTACATTCCCAACCGCGTGGCACAACAACTGGCGGGCAAACAGTCGTTGCTGATTGGCGTTGCCACCTCCAGTCTGGCCCTGCACGCGCCGTCGCAAATTGTCGCGGCGATTAAATCTCGCGCCGATCAACTGGGTGCCAGCGTGGTGGTGTCGATGGTAGAACGAAGCGGCGTCGAAGCCTGTAAAGCGGCGGTGCACAATCTTCTCGCGCA",
      "length": 271,
      "templateLength": 600,
      "templateSpan": 271,
      "orientation": "+",
      "crossesOrigin": false,
      "forward": {
        "strand": "+",
        "start": 158,
        "end": 177,
        "length": 20
      },
      "reverse": {
        "strand": "-",
        "start": 428,
        "end": 409,
        "length": 20
      }
    },
    "productSha256": "bb17ed356454f76c5398c103a0d1e7f761fdd1c9f7521ded6495a245e3c14156",
    "candidateCount": 1,
    "overlappingPairs": 0,
    "features": [
      {
        "key": "primer_bind",
        "direction": "forward",
        "strand": "+",
        "location": "1..20",
        "parts": [
          {
            "start": 1,
            "end": 20
          }
        ],
        "extracted": "CCAGCCACGTTTCTGCGAAA",
        "meaning": "Predicted incorporated primer",
        "templateLocation": "158..177"
      },
      {
        "key": "primer_bind",
        "direction": "reverse",
        "strand": "-",
        "location": "complement(252..271)",
        "parts": [
          {
            "start": 252,
            "end": 271
          }
        ],
        "extracted": "TGCGCGAGAAGATTGTGCAC",
        "meaning": "Predicted incorporated primer",
        "templateLocation": "complement(409..428)"
      }
    ]
  }
}
