Forge Tools pcr_simulate

pcr_simulate read

scidex.forge.pcr_simulate

Predict PCR amplicons from primer + target. Closes Biomni-parity port of `pcr_simple` (SPEC-195 §1 molecular_biology row 6; iter 22).

HTTP: POST /api/scidex/forge/pcr_simulate

Invoke

Calls scidex.tool.invoke on the substrate with this tool name. Edit the JSON below — it must match the input schema. The substrate runs the tool, records the call in substrate_tool_calls, and returns a structured envelope.

Sign in to invoke this tool. Schema and curl snippet are visible to anyone.

Schemas

Input schema
{
  "properties": {
    "target": {
      "description": "DNA template sequence (ACGT). Length capped at 100,000 bases.",
      "maxLength": 100000,
      "minLength": 1,
      "title": "Target",
      "type": "string"
    },
    "forward_primer": {
      "description": "Forward primer (5'→3'). Typically 18-30 nt.",
      "maxLength": 60,
      "minLength": 8,
      "title": "Forward Primer",
      "type": "string"
    },
    "reverse_primer": {
      "description": "Reverse primer (5'→3', as you'd order it). The verb takes its reverse complement internally to locate the binding site on the forward strand.",
      "maxLength": 60,
      "minLength": 8,
      "title": "Reverse Primer",
      "type": "string"
    },
    "max_mismatches": {
      "default": 0,
      "description": "Allowed Hamming-distance mismatches per primer site. 0 = exact match only. Higher values cost O(N×P) per primer per call.",
      "maximum": 5,
      "minimum": 0,
      "title": "Max Mismatches",
      "type": "integer"
    },
    "min_amplicon_length": {
      "default": 50,
      "description": "Minimum predicted amplicon length (nt) to report.",
      "maximum": 100000,
      "minimum": 1,
      "title": "Min Amplicon Length",
      "type": "integer"
    },
    "max_amplicon_length": {
      "default": 10000,
      "description": "Maximum predicted amplicon length (nt) to report.",
      "maximum": 100000,
      "minimum": 1,
      "title": "Max Amplicon Length",
      "type": "integer"
    }
  },
  "required": [
    "target",
    "forward_primer",
    "reverse_primer"
  ],
  "title": "PcrSimulateIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "Amplicon": {
      "properties": {
        "forward_start": {
          "description": "1-indexed start of forward primer binding site on the target.",
          "title": "Forward Start",
          "type": "integer"
        },
        "reverse_end": {
          "description": "1-indexed end of reverse primer binding site (3' end of reverse-complement match on target's forward strand).",
          "title": "Reverse End",
          "type": "integer"
        },
        "length": {
          "description": "Amplicon length in nucleotides.",
          "title": "Length",
          "type": "integer"
        },
        "sequence": {
          "description": "Predicted amplicon sequence (5'→3' on top strand).",
          "title": "Sequence",
          "type": "string"
        }
      },
      "required": [
        "forward_start",
        "reverse_end",
        "length",
        "sequence"
      ],
      "title": "Amplicon",
      "type": "object"
    }
  },
  "properties": {
    "target_length": {
      "description": "Validated target length (nt).",
      "title": "Target Length",
      "type": "integer"
    },
    "forward_primer_sites": {
      "description": "1-indexed start positions of forward primer matches on target.",
      "items": {
        "type": "integer"
      },
      "title": "Forward Primer Sites",
      "type": "array"
    },
    "reverse_primer_sites": {
      "description": "1-indexed start positions of reverse primer's reverse-complement matches on the target's forward strand.",
      "items": {
        "type": "integer"
      },
      "title": "Reverse Primer Sites",
      "type": "array"
    },
    "amplicons": {
      "description": "Predicted amplicons (any valid forward/reverse site pair within amplicon-length bounds). Multiple products possible from degenerate primer matches.",
      "items": {
        "$ref": "#/$defs/Amplicon"
      },
      "title": "Amplicons",
      "type": "array"
    },
    "amplicon_count": {
      "description": "Convenience: len(amplicons).",
      "title": "Amplicon Count",
      "type": "integer"
    }
  },
  "required": [
    "target_length",
    "forward_primer_sites",
    "reverse_primer_sites",
    "amplicons",
    "amplicon_count"
  ],
  "title": "PcrSimulateOut",
  "type": "object"
}

curl snippet

Replace $SCIDEX_JWT with a valid bearer token. Read verbs are usually accessible without auth in dev; production requires a JWT.

curl -sS -X POST '/api/scidex/forge/pcr_simulate' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{
  "target": "",
  "forward_primer": "",
  "reverse_primer": ""
}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.