digest_sequence read
scidex.forge.digest_sequence
Simulate restriction enzyme digestion → return resulting fragments. Closes Biomni-parity port of `digest_sequence` (SPEC-195 §1 molecular_biology row 7; iter 25). Pairs with iter-21's `scidex.forge.restriction_sites`.
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": {
"sequence": {
"description": "DNA sequence (ACGT). Length capped at 200,000 bases.",
"maxLength": 200000,
"minLength": 1,
"title": "Sequence",
"type": "string"
},
"enzymes": {
"description": "Restriction enzyme names (e.g. ['EcoRI', 'BamHI']). Must be from the catalog used by `scidex.forge.restriction_sites`.",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Enzymes",
"type": "array"
},
"circular": {
"default": false,
"description": "If true, treat the sequence as circular (plasmid). The first and last fragments are joined through the origin.",
"title": "Circular",
"type": "boolean"
}
},
"required": [
"sequence",
"enzymes"
],
"title": "DigestSequenceIn",
"type": "object"
}Output schema
{
"$defs": {
"CutSite": {
"properties": {
"position": {
"description": "1-indexed cut position (where the top strand is cut).",
"title": "Position",
"type": "integer"
},
"enzyme": {
"description": "Enzyme name that cuts here.",
"title": "Enzyme",
"type": "string"
}
},
"required": [
"position",
"enzyme"
],
"title": "CutSite",
"type": "object"
},
"Fragment": {
"properties": {
"start": {
"description": "1-indexed start position in the original sequence.",
"title": "Start",
"type": "integer"
},
"end": {
"description": "1-indexed inclusive end position in the original sequence.",
"title": "End",
"type": "integer"
},
"length": {
"description": "Fragment length in nucleotides.",
"title": "Length",
"type": "integer"
},
"sequence": {
"description": "The fragment's DNA sequence.",
"title": "Sequence",
"type": "string"
},
"left_enzyme": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Enzyme that bounded this fragment on the 5' side; None for linear-DNA's first fragment.",
"title": "Left Enzyme"
},
"right_enzyme": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Enzyme that bounded this fragment on the 3' side; None for linear-DNA's last fragment.",
"title": "Right Enzyme"
}
},
"required": [
"start",
"end",
"length",
"sequence"
],
"title": "Fragment",
"type": "object"
}
},
"properties": {
"sequence_length": {
"description": "Length of input sequence (nt).",
"title": "Sequence Length",
"type": "integer"
},
"circular": {
"description": "Whether the digest was performed on circular DNA.",
"title": "Circular",
"type": "boolean"
},
"cut_sites": {
"description": "Ordered list of cut sites (by position).",
"items": {
"$ref": "#/$defs/CutSite"
},
"title": "Cut Sites",
"type": "array"
},
"fragments": {
"description": "Resulting fragments, ordered 5'→3'.",
"items": {
"$ref": "#/$defs/Fragment"
},
"title": "Fragments",
"type": "array"
},
"fragment_count": {
"description": "Convenience: len(fragments).",
"title": "Fragment Count",
"type": "integer"
}
},
"required": [
"sequence_length",
"circular",
"cut_sites",
"fragments",
"fragment_count"
],
"title": "DigestSequenceOut",
"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/digest_sequence' \
-H 'authorization: Bearer $SCIDEX_JWT' \
-H 'content-type: application/json' \
-d '{
"sequence": "",
"enzymes": []
}'Discussion
No comments yet — be the first.