scBaseCamp是Tahoe-100M:最大规模的单细胞扰动数据集的后续
构建虚拟细胞是人工智能与生物学交叉领域的新兴前沿方向,单细胞RNA测序数据的快速增长为这一领域提供了助力。通过整合数百项研究中数百万个细胞的基因表达谱,单细胞图谱为训练由 AI 驱动的细胞模型奠定了基础。然而,仅仅依赖预先处理的counts数据集限制了其规模和多样性,并且将下游模型训练局限于为不同目的整理的数据。由于比对工具、基因组参考和计数策略的选择不同,这会引入分析的可变性。
scBaseCamp是一个不断更新的单细胞RNA测序数据库,它采用统一的由AI代理驱动的分层工作流程,实现数据发现、元数据提取和标准化数据处理的自动化。scBaseCamp通过直接挖掘和处理所有可公开获取的10X Genomics单细胞RNA测序读数构建而成,目前是最大的单细胞数据公共存储库,(截至目前)包含来自21种生物体和72个组织的超过 2.3 亿个细胞。此外,scBaseCamp证明了跨数据集的统一处理有助于减少因不一致的数据处理选择而引入的分析假象。这种标准化方法为构建更精确的虚拟细胞模型奠定了基础,也为广泛的生物学和生物医学应用提供了支撑。
来自:scBaseCamp: an AI agent-curated, uniformly processed, and continually expanding single cell data repository
目录
- 背景概述
- scBaseCamp
- 基于SRAgent的自动细胞数据发现与注释
- 使用scBaseCamp
背景概述
精确测量单细胞转录组状态的能力彻底改变了细胞生物学的研究。scRNA-seq揭示了细胞在跨物种和组织环境中参与各种过程和功能时的异质性状态,展现了以往通过bulk研究方法无法触及的细胞身份和行为的细微细节。这些发现对从发育生物学到癌症研究等众多领域产生了重大影响。更重要的是,这些单细胞数据集规模不断扩大,推动了构建细胞计算机模型的工作—— AI 模型旨在捕捉依赖于环境背景的细胞功能和行为,并预测细胞对干扰的反应。在许多方面,构建 “虚拟细胞” 模型已成为人工智能在生物学应用中的一个主要前沿领域。
在过去十年中,跨机构和实验室整合单细胞数据集的兴趣显著增长。一些引人注目的项目,如人类细胞图谱计划和CZ CELLxGENE数据集(陈 - 扎克伯格生物中心细胞科学项目团队),在扩大经过整理的单细胞RNA测序(scRNA-seq)数据集的可获取性方面取得了重大进展。事实证明,这些努力有助于推动我们对细胞身份、分化轨迹和疾病机制的理解,同时也为基于 AI 的细胞状态建模提供了宝贵的训练数据。然而,这些项目主要依赖于贡献的数据集,而这只是通过美国国立卫生研究院(NIH)主办的序列读数档案库(SRA)可获取的公开数据的一个子集。SRA是最大的原始单细胞测序数据存储库。虽然目前的这种方法能够进行更深入的、专家级别的数据集整理和注释,但它也限制了可用于分析的数据规模和多样性,尤其是对于通常不依赖细胞标记的人工智能模型而言。这凸显了对单细胞基因组学数据整理采用新方法的必要性,这种新方法应达到人工智能模型训练所需的规模,并且不受手动数据集注释的限制。
现有单细胞数据存储库面临的另一个挑战是,由于比对工具、参考基因组和读数计数策略的差异,来自不同来源的数据集聚合会引入批次效应。在bulk RNA测序领域,像Recount计划这样的大规模重新分析工作此前已证明了标准化流程在最小化批次效应方面的作用。通过对bulk RNA测序数据进行统一的重新处理,Recount为研究人员提供了一种资源,在这个资源中,生物变异不会受到数据处理流程不一致的影响。借鉴这些经验,人们才认识到需要一个类似的单细胞基因组学数据存储库,它应涵盖广泛的物种和组织,同时遵循一致的处理标准。这样的资源应能实现更可靠的跨研究整合,从而更好地支持旨在模拟不同生物背景下细胞行为的人工智能驱动的研究。
在此,scBaseCamp是一个单细胞基因组学数据存储库,代表了迄今为止规模最大的数据后处理工作成果。随着SRA上不断有新数据出现,这项工作还将持续拓展。scBaseCamp借助人工智能驱动的智能体构建而成,该智能体实现了存储库识别和元数据统一的自动化,能够持续发现、注释原始单细胞RNA测序数据,并对其进行标准化处理。因此,scBaseCamp不仅为基于人工智能的建模和综合元分析提供了一个经过整合的大规模资源,而且还具有动态性,会随着公开可用单细胞数据的不断扩展而同步增长。
scBaseCamp
scBaseCamp是首个综合性单细胞数据库,它通过直接挖掘序列读数档案库(SRA)中所有可公开获取的10X Genomics单细胞RNA测序数据,并采用标准化处理流程来提高数据的一致性而构建。利用人工智能驱动的SRAgent系统,系统且持续地识别存储库,统一来自不同来源的元数据,为原始单细胞RNA测序数据的发现、注释和再处理提供便利。
截至目前,SRAgent已识别出63,892个SRA实验(即SRX条目),其中43,587个被标记为10X Genomics测序文库。也纳入了目前属于CZ CELLxGENE 的6,059个额外样本。
目前,scBaseCamp包含超过2.3亿个细胞。与其他大型单细胞数据存储库相比,如CZ CELLxGENE(1.07亿个细胞)和人类细胞图谱(6500万个细胞),scBaseCamp已是最大的公开单细胞数据集集合。scBaseCamp的数据来自21种生物和72种组织,与目前最大的存储库CZ CELLxGENE相比,它能提供更广泛的实验背景。
- 图1:scBaseCamp-最大的跨物种和组织的单细胞基因表达数据集公共存储库。A) 对scBaseCamp中随机抽取的细胞进行UMAP可视化,按组织类型着色。每个面板代表不同的物种:Homo(人类;N = 243,807)、鼠(小鼠;N = 249,008)、斑马鱼(N = 501,041)和黑腹果蝇(果蝇;N = 500,877)。B) scBaseCamp与CZ CELLxGENE中细胞跨物种分布的比较,突出显示scBaseCamp中物种代表性更广泛。C) scBaseCamp和CZ CELLxGENE(人类和小鼠)中排名前30的组织(所有哺乳动物)的细胞分布比较,说明scBaseCamp中组织多样性和代表性有所增加。(D) 将scBaseCamp中SRAgent的自动组织注释与CZ CELLxGENE的组织标签进行比较的混淆矩阵,表明在大多数情况下两者一致性较高。
除了识别数据集,SRAgent还尝试为每个SRX提取关键元数据,包括10X测序化学方法、细胞与细胞核悬浮液类型,以及相关疾病和组织信息。例如,在将SRAgent的自动组织注释与CZ CELLxGENE中的组织标签进行比较时,在大多数情况下,SRAgent能够准确提取正确的组织标签(图1D)。这一观察结果与近期一些研究相符,这些研究证明了大语言模型在细胞类型注释方面的有效性。虽然细胞状态的人工智能模型在训练过程中并不依赖这些标签,但SRAgent可靠的组织标记能力增强了人们对其数据整理工作的信心。
基于SRAgent的自动细胞数据发现与注释
为了系统地识别和整合单细胞RNA测序数据集,开发了SRAgent,这是一种分层代理工作流程,它利用LangGraph围绕大语言模型(LLMs)以及用于查询序列读数档案库(SRA)的专用工具构建而成。具体而言,SRAgent采用了ReAct代理的分层工作流程,该流程可以异步访问eSearch、eSummary、eFetch、eLink、NCBI网页抓取工具、SRA BigQuery、sra-stat和fastq-dump。此工作流程持续挖掘可公开获取的10X Genomics数据集,检索关键元数据(例如,生物体、组织、疾病、扰动因素),并将这些注释存储在关系数据库中(图2A)。这种自动化方法能够快速发现新的研究,同时确保元数据管理保持一致且具有可扩展性。
SRAgent部署在谷歌云平台(GCP)的Cloud Run上,每个任务使用2个CPU和2GB内存。为避免超过美国国立生物技术信息中心(NCBI)的API速率限制,任务每1 - 5分钟触发一次,每次运行处理3 - 5个数据集,最高峰值速率可达每小时处理300个数据集。SRAgent总共处理了63892个数据集,其中43587个被识别为10X Genomics测序文库。作为研究成果发表的一部分,SRAgent的代码已经公开。
- 图2:A) SRAgent工作流程:一种由人工智能驱动的分层流程,用于从序列读数档案库(SRA)自动发现数据集并整理元数据。SRAgent系统地查询美国国立生物技术信息中心(NCBI)的工具(如eSearch、eFetch),以识别10X Genomics数据集,检索元数据(如组织类型、文库制备化学方法),并将结构化注释存储在谷歌云平台(GCP)的SQL数据库中。
- B) scRecounter流程:一种基于Nextflow的工作流程,用于将原始单细胞测序读数处理为基因表达计数矩阵。scRecounter使用STARsolo下载并比对测序读数,自动检测最佳条形码参数,并生成以h5ad格式存储的标准化表达矩阵。流程追踪通过托管在GCP上的PostgreSQL数据库进行管理。
- C) scRecounter采用多种特征注释和多重比对策略,生成各种细胞×基因计数表。用户可以选择最适合其应用的选项。
使用scBaseCamp
scBaseCamp环境与Tahoe-100M一致。数据托管地址也在gcs:
import os
import pandas as pd
import scanpy as sc
import pyarrow.dataset as ds
import gcsfs
# initialize GCS file system for reading data from GCS
fs = gcsfs.GCSFileSystem()
# GCS bucket path
gcs_base_path = "gs://arc-ctc-scbasecamp/2025-02-25/"
如图2C中所示,用户可以选择指定的特征类型:
# STARsolo feature type
feature_type = "GeneFull_Ex50pAS"
为了后续数据加载,这里引入一个函数:
# helper function to list files
def get_file_table(gcs_base_path: str, target: str=None, endswith: str=None):
files = fs.glob(os.path.join(gcs_base_path, "**"))
if target:
files = [f for f in files if os.path.basename(f) == target]
else:
files = [f for f in files if f.endswith(endswith)]
file_list = []
for f in files:
file_list.append(f.split("/")[-2:-1] + [f])
return pd.DataFrame(file_list, columns=["organism", "file_path"])
现在,准备获取元数据:
# set the path to the metadata files
gcs_path = os.path.join(gcs_base_path, "metadata", feature_type)
获取样本的元数据:
# list files
sample_pq_files = get_file_table(gcs_path, "sample_metadata.parquet")
print(sample_pq_files.shape)
sample_pq_files.head()
可以看到覆盖了21个物种。更多细节参考:https://github.com/ArcInstitute/arc-virtual-cell-atlas/blob/main/scBaseCamp/tutorial-py.ipynb