资讯动态

从scRNA-seq到CODEX原位验证:TaoToken如何串联溃疡性结肠炎细胞群线索?

发布时间:2026/10/4 11:13:18 来源:尧图企业网站定制
1. 从scRNA-seq到CODEX溃疡性结肠炎细胞群线索为什么需要原位验证单细胞转录组测序scRNA-seq和CITE-seq能告诉你组织里有哪些细胞、它们处于什么转录状态、不同分组之间哪些细胞群比例发生了变化。但这类技术有一个绕不开的硬伤组织需要先消化成单细胞悬液细胞在黏膜组织中的原始空间位置信息在这个过程中丢失了。对于溃疡性结肠炎UC这类组织结构高度相关的研究仅仅知道MNP、成纤维细胞、T细胞或上皮细胞的比例变化是不够的——你还需要知道这些细胞分布在黏膜的哪个位置、靠近谁、是否位于炎症区域或修复相关区域。这就是CODEXPhenoCycler Fusion简称PCF和MIBI这类空间蛋白组技术要承接的工作。PCF的本质是把单细胞测序给出的“细胞清单”重新放回组织结构中单细胞分析提示activated fibroblast与TIMP1、MMP1、MMP3、AREG、CD10等特征相关MNP与CD1C、CD11c、FcεR1α或炎症相关基因表达有关——PCF可以围绕这些蛋白标志物设计抗体Panel在FFPE组织切片中观察相应细胞是否位于同一炎症区域、是否靠近上皮损伤区域、是否与血管或基质结构相关。整个链路可以概括为scRNA-seq/CITE-seq负责发现细胞群和候选markerCODEX/MIBI负责将这些线索放回真实组织结构中进行蛋白层验证。本文面向做单细胞与空间组学交叉研究的同学交付可复制的PCF配置片段、CODEX抗体Panel对照表以及从聚类结果到原位信号的验证动作清单。如果你正在用TaoToken做生信分析流程的模型调用和代码辅助这套链路同样适用。2. TaoToken前置准备API Key、Base URL与模型ID三件套在开始写分析代码之前先把TaoToken的接入信息准备好。不管你是用Python脚本做scRNA-seq聚类还是用Claude Code辅助写CODEX Panel设计逻辑都需要这三样东西Base URL、API Key、Model ID。2.1 获取API Key与确认Base URL访问TaoToken控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite在API Keys页面创建一个新的Key。创建时建议按项目命名比如uc-scrna-codex方便后续排查是哪个环节的调用出了问题。Base URL统一使用https://taotoken.net/api注意这个地址后面不加UTM参数直接作为API请求的根地址。如果你用的是OpenAI兼容的SDK把base_url设成这个值即可。2.2 模型ID选择TaoToken支持多种模型做生信代码辅助时我一般用claude-sonnet-4-20250514或gpt-4o。模型ID在请求体的model字段里指定。如果你不确定当前可用的模型列表可以访问模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite查看。2.3 环境变量配置为了避免Key硬编码在脚本里建议用环境变量export TAOTOKEN_API_KEYsk-your-key-here export TAOTOKEN_BASE_URLhttps://taotoken.net/api然后在Python里这样读取import os from openai import OpenAI client OpenAI( api_keyos.environ[TAOTOKEN_API_KEY], base_urlos.environ[TAOTOKEN_BASE_URL] )如果你用的是Claude Code需要在settings.json里配置。路径通常是~/.claude/settings.json{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-your-key-here, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }这三件套Base URL Key Model ID配好之后后面的分析代码和Panel设计辅助都能直接调用。3. 可复制配置PCF Panel设计片段与CODEX抗体对照表这一节直接给可复制的配置。PCF的Panel设计通常以CSV或JSON格式提交给PhenoCycler系统下面是一个针对UC研究的示例配置。3.1 PCF Panel配置JSON片段假设你的scRNA-seq分析已经产出了候选marker列表比如activated fibroblast的CD10、TIMP1、MMP1MNP的CD1C、CD11c、FcεR1αTreg的FOXP3、CD25内皮细胞的CD146、CD49a等。下面是一个Panel配置片段{ panel_name: UC_scrna_to_codex_v1, tissue_type: FFPE, markers: [ {target: CD10, clone: 56C6, channel: B1, role: activated_fibroblast}, {target: TIMP1, clone: polyclonal, channel: B2, role: fibroblast_remodeling}, {target: MMP1, clone: EPR18356, channel: B3, role: matrix_degradation}, {target: CD1C, clone: EPR1344, channel: B4, role: MNP_dc}, {target: CD11c, clone: EP1347Y, channel: B5, role: myeloid}, {target: FcεR1α, clone: AER-37, channel: B6, role: mast_basophil}, {target: FOXP3, clone: 236A/E7, channel: B7, role: Treg}, {target: CD25, clone: 4C9, channel: B8, role: Treg_activation}, {target: CD146, clone: EPR3208, channel: B9, role: endothelial}, {target: CD49a, clone: TS2/7, channel: B10, role: stromal_adhesion}, {target: PanCK, clone: AE1/AE3, channel: B11, role: epithelial}, {target: CD45, clone: 2B11PD7/26, channel: B12, role: immune_common}, {target: CD3, clone: SP7, channel: B13, role: T_cell}, {target: CD20, clone: L26, channel: B14, role: B_cell}, {target: CD68, clone: KP1, channel: B15, role: macrophage}, {target: αSMA, clone: 1A4, channel: B16, role: myofibroblast} ], nuclear_stain: DAPI, cycles: 8 }这个配置里每个marker都标注了对应的细胞群角色方便后续在分析时直接按role分组统计空间邻域关系。3.2 CODEX抗体Panel对照表下面这张表把scRNA-seq发现的细胞群、候选marker、对应的CODEX抗体克隆号和预期空间分布列在一起方便你在设计Panel时对照细胞群scRNA-seq候选MarkerCODEX抗体克隆预期空间分布验证重点Activated fibroblastCD10, TIMP1, MMP156C6, polyclonal, EPR18356黏膜下层基质是否靠近上皮损伤区MNPCD1C, CD11c, FcεR1αEPR1344, EP1347Y, AER-37固有层炎症区与成纤维细胞邻近距离TregFOXP3, CD25236A/E7, 4C9固有层淋巴聚集区是否位于炎症生态位EndothelialCD146, CD49aEPR3208, TS2/7血管周围与免疫细胞空间关系EpithelialPanCKAE1/AE3黏膜表层/隐窝损伤与修复区域MyeloidCD68, CD11cKP1, EP1347Y固有层与MNP共定位T cellCD3, CD45SP7, 2B11PD7/26固有层/淋巴滤泡与Treg空间关系B cellCD20L26淋巴滤泡聚集区结构这张表可以直接作为Panel设计的输入也可以作为后续空间分析的注释参考。3.3 用TaoToken辅助生成Panel配置如果你不想手写JSON可以用TaoToken的模型对话功能把scRNA-seq的marker列表贴进去让模型帮你生成Panel配置草稿。比如prompt 我有以下scRNA-seq候选marker列表请帮我生成一个CODEX Panel配置JSON 包含target、clone、channel、role字段。marker列表 CD10, TIMP1, MMP1, CD1C, CD11c, FcεR1α, FOXP3, CD25, CD146, CD49a, PanCK, CD45, CD3, CD20, CD68, αSMA response client.chat.completions.create( modelclaude-sonnet-4-20250514, messages[{role: user, content: prompt}] ) print(response.choices[0].message.content)这样能快速得到一个可编辑的草稿再根据实验室实际可用的抗体克隆号做调整。4. 验证请求与成功结果从聚类到原位信号的完整动作清单配置写好之后需要验证整条链路是否跑通。这一节给出从scRNA-seq聚类结果到MIBI/CODEX原位信号的验证动作清单。4.1 验证API调用是否正常先跑一个最小的请求确认TaoToken的API Key和Base URL配置正确import os from openai import OpenAI client OpenAI( api_keyos.environ[TAOTOKEN_API_KEY], base_urlos.environ[TAOTOKEN_BASE_URL] ) response client.chat.completions.create( modelclaude-sonnet-4-20250514, messages[{role: user, content: 回复OK}], max_tokens10 ) print(response.choices[0].message.content)如果返回OK说明三件套配置正确。如果报401检查Key是否过期或复制时多了空格。4.2 scRNA-seq聚类结果导出假设你已经用Seurat或Scanpy完成了聚类需要导出每个cluster的marker基因列表和细胞比例import scanpy as sc import pandas as pd adata sc.read_h5ad(uc_colon_scRNA.h5ad) sc.tl.rank_genes_groups(adata, leiden, methodwilcoxon) marker_df sc.get.rank_genes_groups_df(adata, groupNone) marker_df marker_df[marker_df[pvals_adj] 0.05] marker_df.to_csv(cluster_markers.csv, indexFalse) cluster_counts adata.obs[leiden].value_counts() cluster_counts.to_csv(cluster_proportions.csv)导出的cluster_markers.csv就是Panel设计的输入。4.3 CODEX/MIBI图像分割与信号提取PCF或MIBI跑完之后你会得到多通道图像。用codEX或MCMICRO流程做细胞分割和信号提取# 以MCMICRO为例 nextflow run labsyspharm/mcmicro \ -profile docker \ --in ./raw_images \ --out ./mcmicro_output \ --start-at registration分割完成后每个细胞会有一个表达矩阵行是细胞列是marker通道。这个矩阵就是原位验证的核心数据。4.4 空间邻域分析验证把scRNA-seq的cluster标签和CODEX的细胞表型做映射然后计算空间邻域关系import squidpy as sq import anndata as ad adata_codex ad.read_h5ad(codex_cells.h5ad) sq.gr.spatial_neighbors(adata_codex, coord_typegeneric, n_neighs10) sq.gr.nhood_enrichment(adata_codex, cluster_keycell_type) sq.pl.nhood_enrichment(adata_codex, cluster_keycell_type)如果scRNA-seq提示MNP与activated fibroblast存在共变趋势那么在CODEX数据里应该能看到这两类细胞在空间邻域富集分析中呈现显著邻近。这就是原位验证的核心动作。4.5 成功结果的判断标准验证成功的标志不是某一个指标而是一组一致性scRNA-seq中MNP比例升高的分组在CODEX切片中对应区域CD1CCD11c细胞密度也升高activated fibroblast的markerCD10、TIMP1在空间上与上皮损伤区域距离更近TregFOXP3CD25在炎症区域形成聚集而不是均匀分布内皮细胞CD146与免疫细胞的空间邻近距离在炎症组中缩短。这些结果不需要全部显著但方向一致就说明链路跑通了。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节对照真实报错给出排查路径。5.1 401 Unauthorized最常见的原因是API Key错误。检查步骤echo $TAOTOKEN_API_KEY确认输出的是完整的Key没有换行或空格。如果用的是Claude Code检查~/.claude/settings.json里的ANTHROPIC_API_KEY字段是否和Console里的一致。另外注意Base URL不要写成https://taotoken.net/api/末尾多斜杠有些SDK会因此拼接出错误路径。5.2 local proxy failed这个报错通常出现在网络环境配置了本地代理但代理未启动时。检查env | grep -i proxy如果有HTTP_PROXY或HTTPS_PROXY变量确认代理服务是否在运行。如果不需要代理直接unsetunset HTTP_PROXY HTTPS_PROXY然后重新跑请求。5.3 reading choices 报错这个错误一般出现在流式响应解析时响应体格式不符合预期。检查请求参数里stream是否设成了True但客户端没有正确处理SSE。如果你不需要流式设成Falseresponse client.chat.completions.create( modelclaude-sonnet-4-20250514, messages[{role: user, content: test}], streamFalse )如果必须用流式确保用for chunk in response:逐块读取而不是直接取response.choices。5.4 OAuth相关报错如果你用的是Claude Code的OAuth登录方式但同时又配置了API Key可能会冲突。检查~/.claude/settings.json里是否同时存在ANTHROPIC_API_KEY和OAuth token。建议二选一用API Key就删掉OAuth相关字段反之亦然。5.5 Codex auth.json配置如果你用Codex CLI认证信息在~/.codex/auth.json。确保里面的base_url指向https://taotoken.net/apiapi_key字段填TaoToken的Key。三件套Base URL Key Model ID缺一不可{ base_url: https://taotoken.net/api, api_key: sk-your-key-here, model: claude-sonnet-4-20250514 }改完之后重启Codex CLI再跑一个简单请求验证。6. 接入文档与后续动作整条链路跑通之后你可以把scRNA-seq的cluster marker列表、CODEX Panel配置、空间邻域分析脚本都固化下来形成可复用的分析模板。后续如果换一个疾病模型只需要替换marker列表和Panel配置分析框架不用大改。接入相关的文档和Key管理可以访问API Keys管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite模型对话验证https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite如果你需要长期跑编码和Agent任务比如自动生成Panel配置、批量处理空间数据可以看看Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite最后提醒一句PCF和MIBI的Panel设计一定要结合实验室实际可用的抗体克隆号不要直接照搬文献里的克隆号不同厂家的抗体在FFPE组织上的表现差异很大。先跑一个小规模测试切片确认信号特异性和背景水平再上正式样本。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑