桥接生物学与GPT - 深入解析scGPT项目
生物学家们花费了多年时间收集单细胞数据,试图在最精细的层面理解人体器官的工作原理。问题在于,现在这类数据太多了,而且它们"说"着不同的语言。想象一下,数百万张记录基因活动的表格,但每个实验室都有自己的一套protocol和格式。手动将这些整合成统一的图景几乎是不可能的。
这就是scGPT的用武之地。bowang-lab的开发者们决定:如果Transformer已经学会了理解人类语言,为什么它们不能学会理解细胞的语言?
这对开发者
通常,生物信息学依赖于Scanpy或Seurat等专业包。这些工具功能强大,但通常需要为每个数据集手动配置。scGPT是创建单细胞生物学基础模型的一次尝试。
这不仅仅是一个用于绘图的脚本。该项目采用GPT架构,并在海量数据上进行训练——超过3300万个人类细胞。因此,该模型开始理解基因之间的内在依赖关系,就像ChatGPT理解句子中单词之间的关系一样。
仓库里有什么
该项目使用Python编写,并积极使用PyTorch。如果你习惯使用HuggingFace,你会在这里感到宾至如归(尽管完整的hub集成仍在进行中)。
主要功能
最实用的功能之一是参考映射。如果你有新数据,你可以在短短一秒钟内将其与3300万个细胞的数据库进行匹配。得益于faiss库,在GPU上对10000个细胞进行索引搜索耗时不到一秒钟。索引大小不到一GB。
另一个重要特性是零样本应用。该模型可用于细胞类型注释或数据集成,无需额外的微调。这节省了大量时间和计算资源。
对于需要特定解决方案的用户,作者发布了整套预训练模型"动物园":
- whole-human:在3300万个细胞上训练的通用选项。
- 大脑、血液、心脏、肺和肾脏的专用模型。
- 泛癌:针对不同类型癌细胞量身定制的模型。
如何运行
通过pip安装是标准方式,但需要注意依赖项的细微差别。它能显著加快工作速度,但对CUDA版本要求严格。作者推荐11.7版本。
pip install scgpt "flash-attn<1.0.5"
顺便说一句,如果你不想处理环境问题,Superbio.ai的人已经为scGPT开发了云应用。你可以直接在浏览器中尝试细胞注释或基因调控网络推理。
技术细节
与经典的文本GPT不同,这个模型使用生成式注意力掩码。这使得模型能够预测基因表达并恢复数据中的缺失值(插补)。
有趣的是,该项目同时支持CPU和GPU。函数被重写,使得权重可以在任何后端上轻松加载。如果你喜欢训练监控,代码中还有原生的wandb支持。
实际应用场景
它的实际用途:
- 批次整合:当你需要将来自十个不同实验室的数据合并成一个一致的数据集时。
- 扰动预测:模型可以估计细胞对特定药物或基因操作的反应。
- 基因网络分析:识别哪些基因"协同工作"。
值得一试吗
如果你从事生物信息学或系统生物学,scGPT是你书签中必备的工具。它是单细胞基础模型领域最活跃的项目之一。
该项目可能不适合的人群:寻找轻量级解决方案且本地笔记本电脑没有独立显卡的用户。尽管进行了各种优化,处理大型表达矩阵仍然需要资源。
我建议你从文件夹开始学习。它包含notebook,清楚地展示了模型如何在没有长时间训练的情况下处理数据。
该项目正在积极开发中:他们最近在单独的分支中添加了HuggingFace支持,并更新了ReadTheDocs上的文档。显然,团队不仅仅是为了一篇论文发布代码——他们正在真正维护这个工具。
相关项目