Forge Tools cancermine

cancermine read

scidex.forge.cancermine

Query CancerMine (bhklab.ca/cancermine) for text-mined evidence of a gene's role in cancer. CancerMine mines PubMed abstracts using machine learning to classify each gene–cancer relationship as oncogene, tumor_suppressor, or driver, backed by citation counts and publication years. Returns citation count, cancer type distribution, and confidence scores for each role. Complements COSMIC (somatic frequency), cBioPortal (mutation profiles), and OncoKB (FDA tiers) with independent literature-based role classification. Input: gene symbol (e.g. 'TP53'), optional cancer_type substring filter, optional role_filter ∈ {'oncogene','tumor_suppressor','driver'}, limit. API: GET https://cancermine.bhklab.org/api/gene — free, no key required.

HTTP: POST /api/scidex/forge/cancermine

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
{
  "additionalProperties": false,
  "description": "Input schema for ``scidex.forge.cancermine``.",
  "properties": {
    "gene": {
      "description": "HGNC Hugo gene symbol to look up (e.g. ``'TP53'``, ``'KRAS'``, ``'BRCA1'``). Case-insensitive; the verb normalises to uppercase.",
      "maxLength": 64,
      "title": "Gene",
      "type": "string"
    },
    "cancer_type": {
      "anyOf": [
        {
          "maxLength": 200,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional cancer type filter. Applied client-side: only entries whose ``cancer_type`` field contains this string (case-insensitive) are returned. Pass ``None`` (default) to return all cancer types.",
      "title": "Cancer Type"
    },
    "role_filter": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional role filter. When set, only entries matching this role are returned. Valid values: ``'oncogene'``, ``'tumor_suppressor'``, ``'driver'``. Pass ``None`` (default) to return all roles.",
      "title": "Role Filter"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of role entries to return. Default 20.",
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "gene"
  ],
  "title": "ForgeCancerMineIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "CancerMineRole": {
      "description": "One gene–cancer role entry from CancerMine.",
      "properties": {
        "role": {
          "description": "Cancer gene role: ``'oncogene'``, ``'tumor_suppressor'``, or ``'driver'``.",
          "title": "Role",
          "type": "string"
        },
        "cancer_type": {
          "default": "",
          "description": "Cancer type associated with this role evidence.",
          "title": "Cancer Type",
          "type": "string"
        },
        "citation_count": {
          "default": 0,
          "description": "Number of PubMed citations supporting this gene–cancer–role triplet.",
          "title": "Citation Count",
          "type": "integer"
        },
        "pub_years": {
          "description": "Publication years of the supporting citations.",
          "items": {
            "type": "integer"
          },
          "title": "Pub Years",
          "type": "array"
        },
        "confidence_score": {
          "default": 0,
          "description": "Confidence score derived from citation count and model scores (higher is more confident; range 0.0–1.0).",
          "title": "Confidence Score",
          "type": "number"
        }
      },
      "required": [
        "role"
      ],
      "title": "CancerMineRole",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.cancermine``.",
  "properties": {
    "gene": {
      "description": "The gene symbol that was queried (normalised to uppercase).",
      "title": "Gene",
      "type": "string"
    },
    "roles": {
      "description": "Gene–cancer–role entries from CancerMine, sorted by citation_count descending, capped at ``limit``.",
      "items": {
        "$ref": "#/$defs/CancerMineRole"
      },
      "title": "Roles",
      "type": "array"
    },
    "total_citations": {
      "default": 0,
      "description": "Sum of citation_count across all returned roles.",
      "title": "Total Citations",
      "type": "integer"
    },
    "not_found": {
      "default": false,
      "description": "True when CancerMine has no literature evidence for this gene (or after filtering, no entries remain).",
      "title": "Not Found",
      "type": "boolean"
    },
    "source": {
      "default": "CancerMine (bhklab.ca/cancermine)",
      "description": "Data source attribution.",
      "title": "Source",
      "type": "string"
    },
    "took_ms": {
      "default": 0,
      "description": "Wall-clock time for the upstream API call in milliseconds.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "required": [
    "gene"
  ],
  "title": "ForgeCancerMineOut",
  "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/cancermine' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{
  "gene": ""
}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.