CASSIA 中的批处理
CASSIA 支持同时分析多个聚类。本指南解释了如何准备数据并高效运行批量分析。根据您电脑cpu的核心数目,一个20的分群的聚类一般在大约三分钟内可以完成。
选定要使用的模型
如果您使用 OpenRouter 作为提供商,可以自由指定几乎任何大模型,以下是一些模型推荐:
- Claude 3.5 Sonnet (性能最佳)
- 模型 ID:
"anthropic/claude-3.5-sonnet"
- 模型 ID:
- GPT-4o (均衡选项)
- 模型 ID:
"openai/gpt-4o-2024-11-20"
- 模型 ID:
- deepseekv3 (几乎免费且效果接近4o,最推荐)
- 模型 ID:
"deepseek/deepseek-chat-v3-0324"或者 "deepseek/deepseek-chat-v3-0324:free" (这个是免费的!但每天有50次限制,如果充值10🔪放openrouter里,限制提高到1000次每天)
- 模型 ID:
准备标记数据
您有三种提供标记数据的选择:
- 创建包含您的聚类和标记基因的CSV 文件
- 直接使用 Seurat 的
findAllMarkers函数的输出文件 - 使用 CASSIA 的示例标记数据,不需要自己提供数据
# 选项 1:加载您自己的标记数据
markers <- read.csv("path/to/your/markers.csv")
# 选项 2:直接使用 Seurat 的 findAllMarkers 输出
# (假设您已经有一个 Seurat 对象)
markers <- FindAllMarkers(seurat_obj)
# 选项 3:加载示例标记数据
markers <- loadExampleMarkers()
# 预览数据
head(markers)标记数据格式
CASSIA 接受两种格式:
- FindAllMarkers 输出:Seurat 的 FindAllMarkers 函数的标准输出
- 简化格式:一个两列的表格,其中:
- 第一列:聚类的名字
- 第二列:逗号分隔的排序标记基因比如:CD4,CD8,EGFR 这样
运行批量分析
设置参数
# 检测可用的 CPU 核心
available_cores <- parallel::detectCores()
# 计算推荐的工作线程数(可用核心的 75%)
recommended_workers <- floor(available_cores * 0.75)
runCASSIA_batch(
# 必需参数
marker = markers, # 标记数据(数据框或文件路径)
output_name = "my_annotation", # 输出文件的基本名称
model = "gpt-4o", # 要使用的模型
tissue = "brain", # 组织类型
species = "human", # 物种
# 可选参数
max_workers = recommended_workers, # 并行工作线程数
n_genes = 50, # 要使用的顶部标记基因数量
additional_info = "", # 附加上下文
provider = "openai" # API 提供商
)参数详情
-
标记基因选择:
- 默认:每个聚类的前 50 个基因
- 过滤标准:
- 调整后的 p 值 < 0.05
- 平均对数 2 倍变化 > 0.25
- 最小百分比 > 0.1
- 如果通过过滤的基因少于 50 个,则使用所有通过的基因
-
并行处理:
max_workers:控制并行处理线程- 推荐:可用 CPU 核心的 80%
- 示例:对于 16 核机器,设置为 13
-
附加上下文(可选,最好用英文):
- 使用
additional_info提供实验上下文 - 示例:
- 处理条件:"样本经过抗体处理" additional_info = "Sample has been processed by antibody"
- 分析重点:"请仔细区分癌细胞和非癌细胞"
- 使用
输出文件
分析会生成两个文件:
my_annotation_full.csv:完整的对话历史my_annotation_summary.csv:浓缩的结果摘要
获得最佳结果的提示
-
资源管理:
- 在设置
max_workers时监控系统资源 - 从推荐的核心数量的 75% 开始,并根据需要调整
- 在设置
-
标记基因选择:
- 默认的 50 个基因适用于大多数情况
- 对于更复杂的细胞类型,增加数量
- 如果遇到 API 限制,减少数量