CellFM#
⚠️ 状态: 部分支持 | 版本: v1.0
概述#
基于 MLP 架构(非 Transformer),在约 1.26 亿个细胞上训练(训练集规模最大)
!!! tip “何时选择 CellFM”
适用于明确需要 MLP(而非 Transformer)模型,或需要最大预训练规模(约 1.26 亿个细胞)的场景
规格参数#
属性 |
值 |
|---|---|
模型 |
CellFM |
版本 |
v1.0 |
任务 |
|
模态 |
RNA |
物种 |
human |
基因 ID |
symbol |
嵌入维度 |
512 |
需要 GPU |
是 |
最低显存 |
16 GB |
推荐显存 |
32 GB |
CPU 回退 |
否 |
适配器状态 |
⚠️ 部分支持 |
快速开始#
import omicverse as ov
# 1. 查看模型规格
info = ov.fm.describe_model("cellfm")
# 2. 分析您的数据
profile = ov.fm.profile_data("your_data.h5ad")
# 3. 验证兼容性
check = ov.fm.preprocess_validate("your_data.h5ad", "cellfm", "embed")
# 4. 运行推理
result = ov.fm.run(
task="embed",
model_name="cellfm",
adata_path="your_data.h5ad",
output_path="output_cellfm.h5ad",
device="auto",
)
# 5. 解读结果
metrics = ov.fm.interpret_results("output_cellfm.h5ad", task="embed")
输入要求#
要求 |
详情 |
|---|---|
基因 ID 方案 |
symbol |
预处理 |
标准预处理。模型使用 MLP 层替代注意力机制。 |
数据格式 |
AnnData ( |
批次键 |
用于批次整合的 |
输出键#
运行 ov.fm.run() 后,结果存储在 AnnData 对象中:
键 |
位置 |
描述 |
|---|---|---|
|
|
细胞嵌入向量(512 维) |
import scanpy as sc
adata = sc.read_h5ad("output_cellfm.h5ad")
embeddings = adata.obsm["X_cellfm"] # shape: (n_cells, 512)
# 下游分析
sc.pp.neighbors(adata, use_rep="X_cellfm")
sc.tl.umap(adata)
sc.tl.leiden(adata, resolution=0.5)
sc.pl.umap(adata, color=["leiden"])
参考资源#
仓库 / 检查点: cellverse/CellFM
许可证: 请查阅上游 LICENSE
动手教程#
如需包含代码的逐步演练,请参阅 CellFM 教程笔记本。