用自然语言描述分析需求
跟完这篇,您能把一个模糊的「帮我分析一下」,改写成一句让对方(同事、生信工程师,或 AI 智能体)一次就懂的需求:说清数据、分组、目的和您已知的背景,少走来回、少踩返工。
「把需求说清楚」是一项和平台无关的通用能力。无论您是口头交代给合作者、写进论文的方法学,还是打字给 AI,一份好需求的骨架都一样——交代四件事:数据、分组、目的、您已知的。这四件事说全了,对方就不用靠猜;缺一件,就多一轮来回确认。这篇给您一套可照着填的写法和模板。
一句好需求,先看反例和正例
同一份数据、同一个问题,两种说法,得到的结果天差地别。
反例(对方只能靠猜):
这是我的测序数据,帮我分析一下,看看有没有什么发现。
问题在哪?没说数据是什么形态、样本怎么分组、您到底想回答什么问题。对方要么反复追问,要么按自己的理解跑一版,多半不是您要的。
正例(一次就懂):
这是一份人的 bulk 转录组原始 count 矩阵,24 个样本,分 tumor 和 normal 两组
(分组信息在附带的分组表里)。请以 normal 为对照,找出 tumor 里显著变化的
差异基因,再对上调基因做 GO / KEGG 富集。物种是人,阈值先用常规默认。
差别不在字多,而在把该交代的交代全了。下面拆开讲这四件事各要说什么。
第一件:交代数据
对方拿到您的需求,第一反应是「这是什么数据、能不能直接算」。把下面几点说清,就省掉大半追问。
| 要说的 | 说清什么 | 例子 |
|---|---|---|
| 数据类型 | bulk 转录组 / 单细胞 / 蛋白 / 临床表 …… | 「bulk RNA-seq」 |
| 数值形态 | 原始 count、还是 TPM / FPKM、还是已标准化 | 「原始 count 矩阵」 |
| 规模 | 几个样本、大概几行(基因数) | 「24 个样本,约 2 万基因」 |
| 来源 | 自测、公共数据(GEO / TCGA)、几批合并 | 「GEO,两个数据集合并」 |
| 物种 | 人 / 鼠 / 其他 | 「人」 |
其中数值形态最容易被忽略,却最影响方法选择。举个高频例子:差异表达的负二项模型(DESeq2、edgeR)需要原始整数 count,不能喂 TPM / FPKM;如果您手上是标准化后的值,一定要讲明,否则对方可能用错方法。数据形态与整理规范见 表达矩阵与分组表整理规范。
如果数据来自公共库,把编号说出来(如
GSE12345、某个 TCGA 项目),对方能直接定位、少问一轮。怎么找见 GEO 数据检索。
第二件:说清分组与比较
这是最容易说岔、也最容易出错的一件。差异分析、组间比较、生存比较,全都依赖「谁跟谁比、谁是基准」。
要说清三点:
- 分组依据:样本按什么分组?分组信息在哪(哪一列、哪张表)?用文件里真实的组名,分组表写的是
tumor就说tumor,别换成「肿瘤组」,免得对不上。 - 比较方向:谁当对照(基准)、谁和它比。「tumor vs normal」和「normal vs tumor」方向相反,上调下调会整个反过来——务必说明哪个是参照。
- 配对与混杂:是不是配对设计(如同一批对象用药前后)?有没有批次、性别、年龄等需要一并考虑的混杂因素?有就一起交代,别等结果出来才想起。
一句可照抄的写法:
按分组表里的 group 列分组,以 normal 为对照,比较 tumor vs normal;
样本来自两个批次,batch 列已标注,请把批次作为混杂因素一起考虑。
混杂因素(如批次)会影响结论,说清了对方才能在模型里校正。批次问题的处理思路见 批次效应怎么处理。选比较方法本身犯难时,见 统计方法怎么选。
第三件:讲明目的
「目的」要分两层说清:回答什么问题,以及想要什么形式的结果。
回答什么问题——用一句「谁比谁、看什么」概括,别只说「做个分析」:
- 找出两组之间显著变化的基因;
- 看某个基因表达高低和生存时间有没有关系;
- 把细胞分群、标注出有哪些细胞类型;
- 看差异基因富集在哪些通路上。
想要什么形式的结果——把交付物说明白,对方才知道做到哪一步停:
| 您要的 | 说法示例 |
|---|---|
| 一个结论 | 「告诉我这两组差异大不大、主要差在哪」 |
| 一张图 | 「画一张火山图,标出前 10 个基因」 |
| 一份结果表 | 「导出差异基因列表,含 log2FC 和 padj」 |
| 可复现代码 | 「附上跑这份结果的 R 代码」 |
一次聚焦一个主目标即可。先把差异分析跑出来,富集、画图这些可以后面接着追问,不必一口气全塞进一句话——反而容易说乱。相关下游教程见 差异分析(DESeq2)、富集分析怎么做、火山图怎么画怎么读。
第四件:补上您已知的
您对自己的数据和研究,往往知道一些对方不知道的关键信息。主动说出来,能少踩很多坑,也能让结果更贴近您的预期。
值得交代的「已知」包括:
- 物种与注释:人还是鼠,基因用的是 Ensembl ID 还是 Symbol(影响富集时的物种数据库和 ID 转换)。ID 问题见 基因 ID 转换。
- 阈值偏好:有没有想用的显著性标准。没有就说「用常规默认」。常用惯例是
padj < 0.05且|log2FC| > 1(约 2 倍变化)——这是领域内常用惯例、不是铁律,样本量、噪声、差异基因多少都会影响取舍,按数据调即可。 - 已知的问题:比如「有两个样本质量偏低」「知道存在批次」「某组样本量偏小」。提前说,对方能针对性处理。
- 预期方向:如果您预期某基因在处理组升高,说出来能帮对方核对结果方向对不对(但别把预期当成结论去凑)。
- 硬约束:必须用某个方法、要对齐某篇文献的做法、物种数据库指定哪个——有要求就直说。
一句示例:
基因是 Ensembl ID,物种人;阈值用常规默认即可;已知样本来自两批、有批次效应;
其中 S07、S18 质量偏低,可先保留、在质控图里帮我看看要不要剔除。
照着改就能用的模板
把上面四件事套进一个固定骨架,遇到新任务照着填空即可。这个模板对同事、对 AI 都通用:
【数据】<类型 + 数值形态 + 样本数 + 来源 + 物种>
【分组】<分组列 + 真实组名 + 谁 vs 谁(谁是对照)+ 是否配对 / 有无混杂>
【目的】<要回答的问题 + 想要的结果形式:结论 / 图 / 表 / 代码>
【已知】<阈值偏好 + 已知问题 + 硬约束等,没有就写「按常规默认」>
三个填好的例子,照着改成您自己的:
差异表达 + 富集(bulk 转录组)
【数据】人 bulk RNA-seq 原始 count 矩阵,24 样本,自测。
【分组】按 group 列分 tumor / normal,以 normal 为对照,无配对,样本来自两批(batch 列)。
【目的】找出 tumor 里的差异基因,对上调基因做 GO / KEGG 富集;要结果表 + 火山图 + 代码。
【已知】Ensembl ID;阈值按常规默认(padj<0.05、|log2FC|>1);把批次作为混杂一起考虑。
生存分析
【数据】某队列临床表 + 一个目标基因的表达值,300 例,含随访时间与结局。
【分组】按该基因表达中位数分高 / 低表达两组。
【目的】看高低表达组的总生存有没有差异;要一张 KM 曲线 + Log-rank 的 p 值。
【已知】time 列是月,status 里 1=死亡、0=删失;先只做单变量,暂不校正其他因素。
单细胞分群
【数据】人外周血单细胞 10x 数据,3 个样本,原始表达矩阵。
【分组】暂不比较分组,先把三样本整合到一起看。
【目的】做质控、聚类、注释出主要细胞类型,给一张 UMAP。
【已知】按常规默认走质控(线粒体比例、基因数上下限按数据定);物种人。
单细胞的整体流程见 单细胞分析全流程。
描述前的自查清单
把需求发出去之前,对着这张表过一遍,四件事都打上勾,基本就不会来回返工:
| 检查项 | 打勾标准 |
|---|---|
| 数据 | 说清了类型、数值形态(count / TPM / 已标准化)、样本数、物种 |
| 分组 | 用了真实组名、讲明了谁是对照、交代了配对与混杂 |
| 目的 | 一句话说清要回答什么,也说清要什么形式的结果 |
| 已知 | 交代了 ID 类型、阈值偏好、已知问题与硬约束 |
| 聚焦 | 一次只提一个主目标,其余留到后面追问 |
还有两条通用习惯:能给例子就给例子(贴一小段数据的表头,胜过一大段描述);不确定的地方如实说不确定,别为了显得专业而编一个自己也没把握的阈值或方法——把判断留给对方或后续讨论,反而更稳。
在平台上跑一遍
上面这套「说清四件事」,在百沐一下就是您在对话框里打的那句话——不写代码,把数据、分组、目的、已知说清楚,组学智能体 会把它拆成分析步骤,在分组、比较方向、阈值这些关键处回头跟您确认,最后交回结论、图、表和可复现代码;说得不够全也没关系,缺的部分它会主动追问。
👉 打开 https://app.baimuyixia.com,进【数据分析 → 组学智能体】,把这篇的模板照着填一句发出去即可。
相关
- 教程:组学智能体:一句话跑通转录组 —— 把一句需求跑成完整结果的完整走法
- 教程:表达矩阵与分组表整理规范 —— 交代数据前,先把数据整理对
- 教程:统计方法怎么选 —— 讲明目的时,顺便定位该用哪种方法
- 帮助:组学智能体使用指南 —— 平台上的完整操作说明