批量处理

概述

批量处理允许您一次性注释单细胞数据集中的所有簇。CASSIA 并行处理多个簇,为每个簇生成带有详细推理的细胞类型预测。


快速开始

runCASSIA_batch(
    marker = markers,
    output_name = "my_annotation",
    model = "anthropic/claude-sonnet-4.6",
    tissue = "brain",
    species = "human",
    provider = "openrouter"
)
R

输入

标记数据格式

CASSIA 接受三种输入格式:

1. Seurat FindAllMarkers 输出(推荐)

Seurat 的 FindAllMarkers 函数的标准输出,包含差异表达统计信息:

p_valavg_log2FCpct.1pct.2p_val_adjclustergene
03.020.9730.15200CD79A
02.740.9380.12500MS4A1
02.540.9350.13800CD79B
01.890.8120.08901IL7R
01.760.7560.11201CCR7

2. Scanpy rank_genes_groups 输出

Scanpy 的 sc.tl.rank_genes_groups() 函数的输出,通常使用 sc.get.rank_genes_groups_df() 导出:

groupnamesscorespvalspvals_adjlogfoldchanges
0CD79A28.53003.02
0MS4A125.41002.74
0CD79B24.89002.54
1IL7R22.15001.89
1CCR720.87001.76

3. 简化格式

包含簇 ID 和逗号分隔标记基因的两列数据框:

clustermarker_genes
0CD79A,MS4A1,CD79B,HLA-DRA,TCL1A
1IL7R,CCR7,LEF1,TCF7,FHIT,MAL
2CD8A,CD8B,GZMK,CCL5,NKG7

加载标记数据

# 选项1:直接使用 Seurat 的 FindAllMarkers 输出(推荐)
#(假设您已经有一个 Seurat 对象)
markers <- FindAllMarkers(seurat_obj)

# 选项2:加载 Scanpy rank_genes_groups 输出(导出为 CSV)
markers <- read.csv("scanpy_markers.csv")

# 选项3:加载您自己的简化格式标记数据
markers <- read.csv("path/to/your/markers.csv")

# 加载示例标记数据进行测试
markers <- loadExampleMarkers()

# 预览数据
head(markers)
R

参数

必需参数

参数描述
marker标记数据(数据框或文件路径)
output_name输出文件的基本名称
modelLLM 模型 ID(见下方模型选择)
tissue组织类型(例如 "brain""blood"
species物种(例如 "human""mouse"
providerAPI 提供商("openrouter""openai""anthropic")或自定义 base URL

可选参数

参数默认值描述
max_workers4并行工作进程数。建议使用约 75% 的 CPU 核心。
n_genes50每个簇使用的顶部标记基因数
additional_infoNULL额外的实验上下文(见下方)
temperature0输出随机性(0=确定性,1=创造性)。保持为 0 以获得可重复的结果。
validator_involvement"v1"验证强度:"v1"(中等)或 "v0"(高,较慢)
reasoningNULL仅适用于通过 OpenRouter 使用的 GPT-5 系列模型的推理深度:"low""medium""high"
ranking_method"avg_log2FC"基因排序:"avg_log2FC""p_val_adj""pct_diff""Score"
ascendingNULL排序方向(使用方法默认值)
celltype_columnNULL簇 ID 的列名
gene_column_nameNULL基因符号的列名
max_retries1失败 API 调用的最大重试次数

参数详情

模型选择

  • 默认为 anthropic/claude-sonnet-4.6 以获得最佳性能
  • 使用 google/gemini-3-flash-preview 进行更快的初步分析
  • 详细的模型推荐请参阅 如何选择模型和提供商

标记基因选择

  • 默认:每个簇的前 50 个基因
  • ranking_method 控制标记基因的排序和选择方式:
    • "avg_log2FC"(默认):按平均 log2 倍数变化排序
    • "p_val_adj":按调整后的 p 值排序
    • "pct_diff":按表达百分比差异排序
    • "Score":按自定义分数排序
  • 筛选标准:调整后的 p 值 < 0.05,avg_log2FC > 0.25,最小百分比 > 0.1
  • 如果通过筛选的基因少于 50 个,则使用所有通过的基因

附加上下文

  • 使用 additional_info 提供实验上下文
  • 示例:
    • 处理条件:"Samples were antibody-treated"
    • 分析重点:"Please carefully distinguish between cancer and non-cancer cells"
  • 提示:比较有无附加上下文的结果

输出

生成的文件

文件描述
{output_name}_summary.csv包含细胞类型、标记和元数据的注释结果
{output_name}_conversations.json用于调试的完整对话历史
{output_name}_report.html带有可视化的交互式 HTML 报告

将结果添加回 Seurat 对象

您可以使用 add_cassia_to_seurat 轻松将注释结果添加回您的 Seurat 对象。此函数根据簇标识符将 CASSIA 结果映射到您的 Seurat 对象。

seurat_obj <- add_cassia_to_seurat(
    seurat_obj = seurat_obj,
    cassia_results_path = "my_annotation_summary.csv",
    cluster_col = "seurat_clusters",
    cassia_cluster_col = "Cluster"
)
R

这将向您的 Seurat 对象添加以下列:

  • Cluster ID:簇标识符
  • Predicted General Cell Type:一般细胞类型类别
  • Predicted Detailed Cell Type:具体细胞类型预测
  • Possible Mixed Cell Types:关于潜在混合群体的信息
  • Marker List:用于注释的标记基因
  • 其他元数据列:IterationsModelProviderTissueSpecies