Forge Tools restriction_sites

restriction_sites read

scidex.forge.restriction_sites

Find restriction-enzyme recognition sites in a DNA sequence. Closes Biomni-parity port of `find_restriction_sites` + `find_restriction_enzymes` (SPEC-195 §1 molecular_biology rows 7-9; iter 21).

HTTP: POST /api/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 in standard one-letter code (ACGT). Length capped at 100,000 bases. Case-insensitive; whitespace stripped.",
      "maxLength": 100000,
      "minLength": 1,
      "title": "Sequence",
      "type": "string"
    },
    "enzymes": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional subset of enzyme names to scan. When None, all ~37 enzymes in the standard set are scanned. Names are matched case-sensitively (e.g. 'EcoRI', not 'ecori').",
      "title": "Enzymes"
    },
    "palindromic_only": {
      "default": false,
      "description": "If true, skip enzymes whose recognition sequence is not palindromic. The vast majority of common restriction sites are palindromic; setting this true is mostly a quality filter.",
      "title": "Palindromic Only",
      "type": "boolean"
    }
  },
  "required": [
    "sequence"
  ],
  "title": "RestrictionSitesIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "RestrictionHit": {
      "properties": {
        "enzyme": {
          "description": "Enzyme name (e.g. 'EcoRI').",
          "title": "Enzyme",
          "type": "string"
        },
        "recognition_sequence": {
          "description": "The enzyme's recognition site (e.g. 'GAATTC').",
          "title": "Recognition Sequence",
          "type": "string"
        },
        "position": {
          "description": "1-indexed start position of the recognition site on the top strand.",
          "title": "Position",
          "type": "integer"
        },
        "strand": {
          "description": "'+' = match on input sequence; '-' = match on reverse complement.",
          "title": "Strand",
          "type": "string"
        }
      },
      "required": [
        "enzyme",
        "recognition_sequence",
        "position",
        "strand"
      ],
      "title": "RestrictionHit",
      "type": "object"
    }
  },
  "properties": {
    "sequence_length": {
      "description": "Validated input sequence length (nt).",
      "title": "Sequence Length",
      "type": "integer"
    },
    "enzymes_scanned": {
      "description": "Number of enzymes scanned.",
      "title": "Enzymes Scanned",
      "type": "integer"
    },
    "hits": {
      "description": "Hits across all scanned enzymes.",
      "items": {
        "$ref": "#/$defs/RestrictionHit"
      },
      "title": "Hits",
      "type": "array"
    },
    "hits_by_enzyme": {
      "additionalProperties": {
        "type": "integer"
      },
      "description": "Per-enzyme hit count (sum of + and - strand matches).",
      "title": "Hits By Enzyme",
      "type": "object"
    },
    "total_hits": {
      "description": "Convenience: len(hits).",
      "title": "Total Hits",
      "type": "integer"
    }
  },
  "required": [
    "sequence_length",
    "enzymes_scanned",
    "hits",
    "hits_by_enzyme",
    "total_hits"
  ],
  "title": "RestrictionSitesOut",
  "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/restriction_sites' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{
  "sequence": ""
}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.