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).
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
No comments yet — be the first.