
简介单细胞转录组数据查找指南项目代码包面向从事单细胞转录组学研究的科研人员与生物信息初学者重点解决公共数据库检索效率低、数据下载不规范等常见问题。压缩包内共3个文件包含可交互的HTML页面、inscode配置代码及gitignore文件整体仅9KB便于快速查看与复用。页面细致梳理了GEO、Single Cell Portal、Human Cell Atlas等主流数据库的适用场景并演示了GEO中利用布尔逻辑运算符构建精确查询、结合分类功能细化检索结果的方法同时涵盖单细胞数据格式识别、质量检查、下载链接核实以及许可协议与引用规范等实践要点帮助读者避开常见坑点。目前已有124人学习浏览适合希望系统掌握单细胞数据获取全流程并希望获得可直接运行参考代码的用户。 做单细胞转录组分析很多人第一反应是跑cellranger、跑Seurat但实际上最卡人的环节往往是第一步怎么把公开数据找到并顺利下载下来。一篇论文的GSE号就摆在眼前打开GEO网页却全是缩写和压缩包Supplementary files下面躺着十几个gz文件完全不知道要下哪个。更麻烦的是有的数据在GEO有的在阵列Express有的只在作者GitHub里放了个分析代码。项目代码这个关键词在很多单细胞公共数据项目里就是破局的关键因为代码里往往写着数据怎么处理、文件怎么组织、参数怎么设。这篇文章是给两类人写的一类是刚开始做单细胞公共数据重分析的学生另一类是已经跑通基础流程但经常在数据查找和下载环节浪费时间的从业者。我会从数据仓库选择、检索策略、下载实操、项目代码获取四个角度完整梳理一遍单细胞转录组数据的查找链路最后附上我踩过的一些坑和排查思路。1. 单细胞转录组公共数据去哪儿找1.1 主力数据仓库是GEO但别把它当唯一来源NCBI的GEOGene Expression Omnibus是目前收录单细胞转录组数据最全的数据库几乎每篇相关论文的原始数据或处理后矩阵都会在这里归档。GEO的好处是检索规则灵活、覆盖范围广坏处是网页结构对新手不友好。一个GSE条目下面可能同时挂着原始测序文件、处理后的表达矩阵、平台注释文件甚至作者上传的分析代码需要花点时间才能搞清楚。GEO收录的数据主要分三个层级GSESeries代表整个研究项目GSMSample代表单个样本GPLPlatform代表测序或芯片平台。绝大多数情况下论文里引用的都是GSE号这是最常用的入口。但要注意有些大型单细胞项目会把不同样本拆成多个GSE比如GSE123456和GSE123457分别对应两个批次这时候只看单个GSE就会漏掉一部分样本。1.2 容易忽略的高质量数据源除了GEO还有几个对单细胞数据查找特别有帮助的地方数据源定位适合场景CZ CELLxGENE Discover单细胞数据交互式浏览和下载想直接拿已注释好的表达矩阵Human Cell AtlasHCA大规模人类细胞图谱项目按组织类型浏览人体各器官数据ArrayExpressEMBL-EBI下的功能基因组数据库查找欧洲团队发表的数据10x Genomics官网官方提供的demo数据集和公开数据集学习和测试流程用SRASequence Read Archive保存原始测序FASTQ需要自己重新定量比对时其中CELxGENE Discover近几年的体验越来越好支持按物种、组织、疾病、细胞数量筛选可以直接下载h5ad格式的注释矩阵省去了GEO下载后还要自己整理的步骤。对于只需要表达矩阵做差异分析或者拟时序分析的场景我会优先考虑它。1.3 从论文里定位数据存放位置的三个线索拿到一篇文献不要急着乱搜先看三个地方Methods部分的Data availability或Accession numbers小节一般会写明数据存放在哪个数据库、GSE号是多少。正文或补充材料里的表格有些数据会挂在补充表里比如细胞注释信息、样本处理信息。作者的个人主页或实验室网站有些组喜欢先把数据挂在自己搭的小站上等文章正式发表后再入库。如果Methods写的是data available from the authors upon reasonable request这通常意味着数据没有进入公共数据库需要写邮件去要能不能拿到全看作者意愿。这类数据在查找时尽量往后排优先使用有公共数据集的项目。2. 搜索策略与关键词技巧2.1 关键词构造的实操套路在GEO里搜索单细胞数据直接搜single-cell往往会返回海量结果但只要稍加组合就能准确很多。我常用的关键词组合是物种组织/疾病单细胞技术名词比如human lung scRNA-seqmouse pancreas 10x GenomicsPBMC single-cell transcriptometumor microenvironment single-cell RNAGEO的搜索语法支持布尔运算用AND、OR、NOT配合括号分组例如(pbmc OR peripheral blood) AND single-cell AND human。这个用法在结果过少或过多时特别管用。搜索时还能限定entry type为Series、限定组织或平台进一步缩小范围。2.2 区分GSE、GSM和GPL避免下错东西单细胞数据查找中最常出问题的是搞混GSE和GSM。论文里给你的是GSE你想看某个样本的详细信息就得点进GSM。但GSM下挂的Supplementary files往往是单个样本的原始文件或矩阵如果你只是想做个整体分析不用一个样本一个样本地手动下载直接在GSE页面找整合好的文件更方便。GPL则是指平台信息在单细胞领域对应的是10x Genomics Chromium、BD Rhapsody、Smart-seq2这类平台。搜索时加上GPL号可以快速过滤出同一个技术平台的比较适合做集成的数据但这个方式依赖你对平台编号熟悉用得不多。2.3 通过GSM字段筛选目标样本一个GSE里可能包含几十甚至上百个GSM样本不是所有样本都值得下载。点开样本页面的title、source name、characteristics三个字段能看出样本的分组、处理条件和细胞数量。比如标题里经常有Ctrl-1、Tumor-3这样的分组信息characteristics里会写组织来源和疾病状态。这个步骤尤其重要有些论文做了多种条件、多个时间点的单细胞测序但你只需要其中有疾病处理的样本。直接下载全部样本既浪费时间又占磁盘空间还可能带来不必要的批次效应。2.4 用文件名快速判断数据形式单细胞数据文件有一套相对固定的命名规则认对了能省不少事barcodes.tsv.gz、features.tsv.gz、matrix.mtx.gz10x Genomics的标准输出格式read10x函数可以直接读取。filtered_feature_bc_matrix.tar.gzcellranger处理后的整合压缩包解压后就是上面三个文件。counts.csv.gz 或 表达矩阵.csv作者自己整理的count矩阵可以直接读入R。.h5adscanpy的注释矩阵格式里面有完整表达矩阵和metadata。.RDSSeurat对象加载后可以直接用但要注意R版本和Seurat版本的兼容性。3. 实操流程从GEO检索到拿到表达矩阵3.1 先看系列描述再决定下载策略拿到一个GSE号我的习惯是先打开GEO页面把Summary和Overall design读一遍确认几个核心信息技术平台是10x还是Smart-seq2样本种类是人还是小鼠数据是否已经做过细胞分型。这些信息决定后面该下载什么文件、用什么工具处理。接着看页面下方的Supplementary file列表。这里容易踩的坑是很多初学者一股脑把所有文件都下载下来结果某个文件有十几个G解压后占了几百G空间。实际上如果只是想复现分析或者做差异表达直接找作者处理好的count矩阵就够了。只有需要重新走比对定量流程时才需要下载原始FASTQ。3.2 用R读取10x标准格式假设你下载到了标准的10x文件顺序是barcodes.tsx.gz、features.ts.gz、matrix.mtx.gz放进一个目录下R里只需要library(Seurat) pbmc.data - Read10X(data.dir filtered_feature_bc_matrix/) pbmc - CreateSeuratObject(counts pbmc.data, min.cells 3, min.features 200)Read10X会自动读入三个文件并组装成稀疏矩阵。这里有个细节如果是cellranger 3.0以上的版本features.tsx.gz的第三列会标出gene expression、antibody capture等类别Read10X默认只保留gene expression的部分。如果你下载的是feature barcode矩阵想保留所有类别需要设置gene.column1。否则后续分析会莫名少掉一部分数据。3.3 需要原始FASTQ时的下载方案如果数据在GEO页面里没有处理好的矩阵或者你打算自己走一遍cellranger定量流程就得下载原始FASTQ。GEO页面通常会在SRA链接处跳转到对应项目到SRA项目页面后可以看到Run信息表里面有SRR号ID是SRR随机数字。下载SRA的常用方式是# 先prefetch拿到sra文件 prefetch SRR12345678 # 再转成fastq fasterq-dump --split-3 SRR12345678prefetch会先下载一个比较小的sra压缩文件fasterq-dump再把它解压成fastq。单细胞10x数据转出来的fastq每一条read会带UMI和barcode信息但不会自动拆分成三个文件需要后续用细胞条形码来区分样本。这个过程耗时很长建议先用少量样本测试链路确认无误后再铺开。3.4 拿到矩阵后的第一步检查无论从哪个渠道拿到表达矩阵我都会先做一次完整性检查避免数据有缺失还不自知。检查项包括矩阵维度细胞数是否和论文里报告的数量接近。基因数是否和对应物种的基因数量级一致。稀疏程度单细胞矩阵大部分是稀疏矩阵非零元素占比通常在5%以下。metadata信息是否有样本分组、细胞类型注释等列。R里简单的检查dim(pbmc) pbmc[1:5, 1:5] table(pbmcmeta.data$orig.ident)如果发现细胞数量比论文少了几倍很有可能是作者只提供了部分样本的矩阵或者你下载的文件版本不对。4. 项目代码比Methods更详细的分析说明书4.1 怎么找到数据集配套的项目代码单细胞数据项目通常不只有数据文件还会配套分析代码。这些代码的价值非常高因为Methods段落写的是we performed clustering and differential expression analysis代码才是真正用来实现这些分析的载体。找项目代码的思路有三个一是看论文的Data and code availability部分二是直接在GitHub搜索GSE号很多作者会用GSE号命名代码仓库三是去European PMC看数据可用性描述有时会有直接的GitHub链接。比如GitHub上搜GSE123456经常能搜到作者本人的分析仓库其中可能包括Seurat的聚类代码、细胞类型注释脚本、差异分析流程。这类代码是复现论文的最佳参考。4.2 从代码里反推数据处理细节代码里藏着Methods不会写的细节。我见过最常见的几个场景过滤阈值论文写的是quality control was performed代码里才会明确低质量细胞的过滤标准比如nFeature_RNA200、percent.mt10。批次处理代码里用了Harmony还是CCA来整合不同批次的样本对下游分析影响很大。细胞类型注释marker基因列表和注释逻辑在代码里比补充表格更直观。比较组设计差异分析的具体分组方式和contrast设定只有代码能完整复现。所以当我在GEO附件里没有找到完整矩阵或者感觉数据质量异常时第一反应就是去作者代码仓库里找线索看是否对数据做过额外筛选。4.3 把外部代码按自己的项目结构重新组织拿到别人的代码后不建议直接在自己项目目录里跑。我会做一轮项目结构整理把代码里可复用的部分剥离出来。特别是当作者把数据处理、分析、绘图都堆在同一个脚本里时直接改会非常痛苦。我习惯把项目分成四个目录data/ raw/ # 原始下载文件 processed/ # 清洗后的矩阵 scripts/ 01_preprocessing.R 02_clustering.R 03_markers.R output/ figures/ tables/ docs/ README.md把作者的代码按这个结构拆分后替换成我们自己的数据路径比在原作者的大脚本里硬改要稳得多。这个整理动作还有个额外价值不同项目之间的代码风格统一了后续维护项目时不用分别适应别人的写法。5. 常见问题与排查实录5.1 多文件下载总中断下载大文件或者多个文件时经常遇到中断。我的解决方法是尽量用命令行下载工具而不是浏览器。wget比浏览器稳得多还能断点续传。批量下载时可以利用GEO提供的AccList文件配合循环下载但注意控制并发数太快会被服务器限流。wget -c ftp://.../GSE123456_RAW.tar如果服务器限流就手动降低并发数加个sleep间隔。5.2 tar.gz解压报错下载的压缩包损坏是常见问题。解压报错时重新下载通常能解决。但有一种情况要留意有些压缩包是tar格式但扩展名写的是.gz或者反过来实际是gzip压缩但没正确使用tar。可以先运行file命令查看真实格式再选择对应的解压命令。file GSE123456_RAW.tar.gz tar -tzf GSE123456_RAW.tar.gz | head5.3 Read10x提示找不到特征文件有时明明有features.tsx.gz存在但Read10X还是报错。这是因为10x不同版本的文件名有差异早期版本是genes.tsv后来才改成features.tsx.gz。解决方法是把genes.tsv改成features.tsx.gz或者手动构造目录结构。别看这是小问题单细胞数据查找时很多时间就消耗在这种细节上。5.4 找不到细胞类型注释信息GEO里很多单细胞数据只有原始表达矩阵没有细胞类型注释。需要自己用marker基因做注释或者去作者代码仓库找是否有对应的注释文件。如果代码里也没有可以用SingleR、CellTypist这类工具做自动注释。这个步骤虽然不是查找的直接范畴但数据查找时发现缺注释信息就得有心理准备。5.5 下载下来的是BAM文件而非count矩阵有的数据库只收了cellranger输出的BAM文件能在GEO页面看到BAM下载链接。这种情况确实比较麻烦。如果你只需要表达矩阵可以用cellranger count直接对BAM重新定量但前提是有对应的参考基因组和原始barcode信息。另一个思路是用STARsolo或alevin这类工具直接对BAM计数相比重新跑cellranger会快一些。我在实际项目里遇到过几次这种状况最终都是通过下载作者的processed matrix来解决的所以每次查找数据时我会先看有没有处理好的矩阵文件实在没有才考虑从BAM或FASTQ自己构建。最后说几句单细胞转录组数据的查找过程其实一直在检验两件事一是对数据格式和数据库结构的熟悉程度二是从论文和代码中提取线索的能力。我自己从刚开始面对一组tar.gz束手无策到现在能快速判断该下载哪个文件、该参考哪段代码靠的就是一次次踩坑和整理。单细胞分析是个长链路数据查找只是第一步但这第一步走得顺不顺直接决定后面整个项目推进的速度。希望这篇实操梳理能让你少走一些弯路。本文还有配套的精品资源点击获取