{
  "ok": true,
  "resource": {
    "id": "RES_52BB51696897",
    "resource_type": "skill",
    "canonical_url": "https://github.com/K-Dense-AI/scientific-agent-skills/tree/1e5eeffbdad3749125afe7ab48a39694e27f181c/skills/deepspot-m",
    "name": "deepspot-m",
    "summary_en": "Generate transcriptome-wide virtual spatial transcriptomics from H&E histology with DeepSpot-M. Use when you need spatial gene expression in log1p-CPM for 224x224 tiles at about 20x, want to query protein-coding genes by symbol instead of a fixed panel, or want to run prediction across a whole slide after tiling with histolab.",
    "summary_zh": "使用DeepSpot-M从H&E组织学生成全转录组虚拟空间转录组学。当您需要224x224切片约20倍放大下的log1p-CPM空间基因表达、希望按符号而非固定面板查询蛋白编码基因，或希望在使用histolab切片后跨整个载玻片运行预测时使用。",
    "description_en": "DeepSpot-M is a multimodal foundation model that maps a 224x224 H&E histology tile to spatial gene expression in log1p-CPM. The output is virtual spatial transcriptomics: one value per queried gene per tile, laid out on the grid the tiles came from. A LoRA-adapted pathology foundation backbone (Midnight) tokenises the tile. A cross-attention gene decoder lets each gene query attend to the patch tokens, and a gene router hypernetwork builds gene-specific projections from frozen biological embeddings (Evo 2, Orthrus, ProtT5, scGPT, Apertus). Genes enter the model as queryable embeddings rather than fixed output slots, so the released model covers a ~19k protein-coding gene panel including genes unseen in training. The panel ships with the weights as `tokens.csv` and is exposed as `model.gene_names`; genes outside it cannot be queried in this release. Applied to TCGA, the model produced a virtual spatial transcriptomics atlas of 28,664 slides across 32 cancer types. The code is PolyForm Noncommercial 1.0.0 and the weights are CC-BY-NC-SA-4.0. Use it for noncommercial research and check both licences before redistributing outputs. Installation: `uv pip install deepspotm==1.0.0`. Version 1.0.0 targets Python 3.10 to 3.13 and pulls in PyTorch. The weights are gated: request access at https://huggingface.co/ratschlab/DeepSpotM and authenticate with `huggingface-cli login`. Quick start: `from deepspotm import DeepSpotM; model, image_processor = DeepSpotM.from_pretrained(\"ratschlab/DeepSpotM\", source=\"scgpt\"); vals = model.predict_genes(image_processor(pil_tile).unsqueeze(0), [\"EPCAM\", \"CD3D\"])`. Tiles must be 224x224 RGB at roughly 20x magnification (about 0.5 microns per pixel). The `source` parameter selects which frozen gene embedding the router builds projections from: `evo2`, `orthrus`, `prott5`, `scgpt`, or `apertus`. Whole slide workflow: extract 224x224 tiles on a grid with the `histolab` skill, keeping each tile's coordinates; process and stack tiles into batches with `torch.stack`; call `predict_genes` once per batch with the same gene list; concatenate the batches into a tiles-by-genes matrix and attach the coordinates. That matrix is the virtual spatial transcriptomics map for the slide, and it drops straight into `AnnData` for downstream spatial analysis. Common use cases: spatial expression maps for marker genes across a tumour section; transcriptome-wide prediction over a slide cohort with no matching assay run; querying any of the ~19k panel genes by symbol, including genes unseen in training; adding an expression channel to a morphology-only histology pipeline; building a slide-level cohort atlas, as done for TCGA. Detailed references: `references/api.md` and `references/whole_slide.md`. Primary sources: paper at https://doi.org/10.64898/2026.06.19.26356060 (medRxiv, posted 22 June 2026); code at https://github.com/ratschlab/DeepSpotM; weights at https://huggingface.co/ratschlab/DeepSpotM; PyPI at https://pypi.org/project/deepspotm/.",
    "description_zh": "DeepSpot-M是一个多模态基础模型，将224x224的H&E组织学切片映射为log1p-CPM格式的空间基因表达。输出是虚拟空间转录组学：每个查询基因在每个切片上有一个值，按切片来源的网格排列。一个LoRA适应的病理基础骨干（Midnight）对切片进行标记化。交叉注意力基因解码器允许每个基因查询关注补丁标记，基因路由器超网络从冻结的生物嵌入（Evo 2、Orthrus、ProtT5、scGPT、Apertus）构建基因特异性投影。基因以可查询嵌入而非固定输出槽的形式进入模型，因此发布的模型覆盖约19k个蛋白编码基因面板，包括训练中未见过的基因。该面板随权重以`tokens.csv`形式提供，并作为`model.gene_names`暴露；此版本中无法查询面板之外的基因。应用于TCGA时，该模型生成了涵盖32种癌症类型的28,664张切片的虚拟空间转录组学图谱。代码采用PolyForm非商业1.0.0许可证，权重采用CC-BY-NC-SA-4.0许可证。仅用于非商业研究，并在重新分发输出前检查这两个许可证。安装：`uv pip install deepspotm==1.0.0`。1.0.0版本面向Python 3.10至3.13，并引入PyTorch。权重受门控：在https://huggingface.co/ratschlab/DeepSpotM请求访问，并使用`huggingface-cli login`进行身份验证。快速开始：`from deepspotm import DeepSpotM; model, image_processor = DeepSpotM.from_pretrained(\"ratschlab/DeepSpotM\", source=\"scgpt\"); vals = model.predict_genes(image_processor(pil_tile).unsqueeze(0), [\"EPCAM\", \"CD3D\"])`。切片必须为224x224 RGB，大约20倍放大（约0.5微米/像素）。`source`参数选择路由器构建投影所用的冻结基因嵌入：`evo2`、`orthrus`、`prott5`、`scgpt`或`apertus`。全切片工作流程：使用`histolab`技能在网格上提取224x224切片，保留每个切片的坐标；使用`torch.stack`处理并堆叠切片成批次；对每个批次使用相同基因列表调用`predict_genes`；将批次连接成切片×基因矩阵并附加坐标。该矩阵是切片的虚拟空间转录组学图谱，可直接放入`AnnData`进行下游空间分析。常见用例：肿瘤切片中标记基因的空间表达图谱；无匹配检测实验的切片队列的全转录组预测；按符号查询约19k面板基因中的任意基因，包括训练中未见过的基因；向仅形态学的组织学流程添加表达通道；构建切片级队列图谱，如TCGA所做。详细参考：`references/api.md`和`references/whole_slide.md`。主要来源：论文https://doi.org/10.64898/2026.06.19.26356060（medRxiv，2026年6月22日发布）；代码https://github.com/ratschlab/DeepSpotM；权重https://huggingface.co/ratschlab/DeepSpotM；PyPI https://pypi.org/project/deepspotm/。",
    "provider_name": "K-Dense-AI",
    "homepage_url": "https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/deepspot-m",
    "endpoint_url": null,
    "source_url": "https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/1e5eeffbdad3749125afe7ab48a39694e27f181c/skills/deepspot-m/SKILL.md",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "data.analyze",
      "data.generate",
      "data.transform",
      "research.analyze",
      "research.generate"
    ],
    "categories": [
      "research",
      "data",
      "developer-tools"
    ],
    "industries": [
      "health",
      "general",
      "software"
    ],
    "protocols": [
      "agent-skills"
    ],
    "auth": {
      "type": "none",
      "required": false
    },
    "pricing": {
      "model": "free"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "license": {
        "spdx_id": "MIT",
        "source": "https://github.com/K-Dense-AI/scientific-agent-skills/blob/1e5eeffbdad3749125afe7ab48a39694e27f181c/LICENSE"
      },
      "github": {
        "repository": "K-Dense-AI/scientific-agent-skills",
        "owner": "K-Dense-AI",
        "path": "skills/deepspot-m/SKILL.md",
        "commit": "1e5eeffbdad3749125afe7ab48a39694e27f181c",
        "stars": 42124,
        "forks": 3870,
        "updated_at": "2026-09-03T02:47:03Z"
      },
      "skill": {
        "compatibility": "Needs deepspotm 1.0.0 from PyPI (Python 3.10 to 3.13) plus PyTorch. Weights at ratschlab/DeepSpotM on Hugging Face are gated and licensed CC-BY-NC-SA-4.0, so request access on the model page and then run huggingface-cli login. A CUDA GPU speeds up batched inference.",
        "allowed_tools": "Read Write Edit Bash",
        "content_hash": "854cad4fea6fcdab967809052ffd4216c489fa957a4a023b95ece2f565a273c6",
        "line_count": 176
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-03T06:19:06.010Z"
      }
    },
    "latest_version": "1e5eeffbdad3",
    "status": "listed",
    "health_status": "unknown",
    "source_kind": "imported",
    "source_agent": "aiworkshub-skill-reviewer",
    "trust": {
      "signal": "none",
      "reason": "No suspicious or malicious evidence.",
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v2",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "high",
      "operational_transparency": "strong",
      "evidence_strength": "source_inspected",
      "use_readiness": "conditional",
      "reviewed_at": "2026-09-03T06:19:06.923Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:50:32.666Z",
    "last_seen_at": "2026-09-03T06:19:06.258Z",
    "published_at": "2026-09-03T06:19:06.258Z",
    "created_at": "2026-09-03T02:50:32.666Z",
    "updated_at": "2026-09-03T06:19:06.923Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_52BB51696897",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_52BB51696897/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_52BB51696897",
    "distribution": {
      "canonical_identity": "https://github.com/K-Dense-AI/scientific-agent-skills/tree/1e5eeffbdad3749125afe7ab48a39694e27f181c/skills/deepspot-m",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://github.com/",
          "upstream_resource_id": "K-Dense-AI/scientific-agent-skills:skills/deepspot-m/SKILL.md",
          "upstream_record_url": "https://github.com/K-Dense-AI/scientific-agent-skills/tree/1e5eeffbdad3749125afe7ab48a39694e27f181c/skills/deepspot-m",
          "relation": "syndicated",
          "metadata": {
            "source": "github-skill-import"
          },
          "first_seen_at": "2026-09-03T02:50:32.666Z",
          "last_seen_at": "2026-09-03T06:19:06.258Z"
        }
      ]
    },
    "tools": [],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v2",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "unknown",
        "contract": "strong",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "high",
        "operational_transparency": "strong",
        "evidence_strength": "source_inspected",
        "use_readiness": "conditional"
      },
      "profile": {
        "capabilities": [
          {
            "id": "data.analyze",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "source-inspection"
            ]
          },
          {
            "id": "data.generate",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "source-inspection"
            ]
          },
          {
            "id": "data.transform",
            "weight": 80,
            "confidence": 80,
            "evidence_ids": [
              "source-record",
              "source-inspection"
            ]
          },
          {
            "id": "research.analyze",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "source-inspection"
            ]
          },
          {
            "id": "research.generate",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "source-inspection"
            ]
          }
        ],
        "domains": [
          {
            "id": "health",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "source-inspection"
            ]
          },
          {
            "id": "research",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "source-inspection"
            ]
          },
          {
            "id": "software",
            "weight": 60,
            "confidence": 60,
            "evidence_ids": [
              "source-record"
            ]
          }
        ],
        "workflow_roles": [
          "analyze",
          "generate",
          "transform"
        ]
      },
      "capability_units": [
        {
          "id": "skill:deepspot-m",
          "kind": "skill_action",
          "capability_id": "data.generate",
          "effect": "compute",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "natural_language",
          "output_contract": "natural_language",
          "accepts": [
            "task context"
          ],
          "produces": [
            "task result"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "source-inspection"
          ],
          "metadata": {}
        }
      ],
      "access": {
        "distribution_license": {
          "spdx_id": "PolyForm-Noncommercial-1.0.0",
          "source": "https://github.com/K-Dense-AI/scientific-agent-skills/blob/1e5eeffbdad3749125afe7ab48a39694e27f181c/LICENSE"
        },
        "runtime_auth": {
          "type": "huggingface",
          "required": true,
          "details": "Gated weights at ratschlab/DeepSpotM require requesting access and huggingface-cli login."
        },
        "runtime_pricing": {
          "model": "free",
          "details": "No cost for the skill itself, but weights are gated and require acceptance of CC-BY-NC-SA-4.0."
        },
        "dependencies": [
          "deepspotm==1.0.0",
          "PyTorch",
          "histolab (for whole slide workflow)"
        ]
      },
      "operational_flags": [
        "requires_gated_access",
        "noncommercial_license"
      ],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": "No suspicious or malicious evidence."
      },
      "fit": {
        "good_for": [
          "Generating virtual spatial transcriptomics from H&E histology",
          "Querying gene expression by symbol for ~19k protein-coding genes",
          "Whole slide prediction when tiled with histolab",
          "Noncommercial research applications"
        ],
        "not_for": [
          "Commercial use (license restrictions)",
          "Querying genes outside the released panel",
          "Tiles not at 224x224 or not at ~20x magnification"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "source_record",
          "source": "https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/1e5eeffbdad3749125afe7ab48a39694e27f181c/skills/deepspot-m/SKILL.md",
          "observation": "Submitted Skill record for deepspot-m; declared license MIT.",
          "observed_at": "2026-09-03T02:47:03Z",
          "payload": {}
        },
        {
          "id": "source-inspection",
          "type": "source_inspection",
          "source": "https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/1e5eeffbdad3749125afe7ab48a39694e27f181c/skills/deepspot-m/SKILL.md",
          "observation": "The Skill source was fetched and inspected (7367 bytes; SHA-256 854cad4fea6fcdab967809052ffd4216c489fa957a4a023b95ece2f565a273c6).",
          "observed_at": "2026-09-03T06:18:50.372Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Actual runtime behavior not tested",
        "Real-world usage not observed",
        "Connectivity to external services (Hugging Face, PyPI) not verified",
        "Exact performance characteristics (speed, accuracy) not independently verified"
      ],
      "id": "REV_0DC7E39B4367",
      "resource_id": "RES_52BB51696897",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "source-inspected-skill",
      "created_at": "2026-09-03T06:19:06.923Z"
    }
  }
}