数据导入与质量评估
拿到一个蛋白质组学项目,我最先做的事情不是跑差异分析,而是先搞清楚手头的数据文件长什么样。你想想看,原始数据都没弄明白,后面的一切分析都是空中楼阁。我个人习惯是先花半小时把数据格式、缺失情况、定量准确度摸清楚。这一步做好了,后面能少踩不少坑。
数据导入:从哪里开始?
我刚开始做蛋白质组学分析时,就被这些乱七八糟的文件格式搞晕过。后来总结下来,最常见的原始定量数据来源主要有三类,我列个表格你一看就明白了:
| 数据来源 | 常见格式 | 关键列 | 处理方式 |
|---|---|---|---|
| MaxQuant | evidence.txt / proteinGroups.txt | Intensity, LFQ intensity, PEP, Score | 读出,按Unique peptides ≥ 1 过滤 |
| Proteome Discoverer | PSM.txt / PeptideGroups.txt / ProteinGroups.txt | Abundance, #PSM, Ratio | 读出,按FDR ≤ 0.01 过滤 |
| 直接输入的强度矩阵 | CSV / TSV / Excel | 样本列, 蛋白ID列, 强度值 | 格式转换,确保不串列 |
说实话,在实际操作中最容易出问题的就是格式转换。我以前有个项目,别人发来的Excel里有合并单元格和空行,我直接用pandas读出来,结果蛋白ID全读串了。后来我养成了一个习惯:先另存为纯文本CSV,再用代码读。
我比较推荐直接读Intensity或LFQ intensity这类原始值。至于Normalized abundance或者Z-score后的值,我建议你自己分析时再做标准化,不要用别人处理过的。
下面是一个我常用的Python导入脚本片段,你注意看注释里的坑:
import pandas as pd
# 我习惯先读 evidence.txt,因为 MaxQuant 的 detail 最多
df = pd.read_csv("evidence.txt", sep="\t")
# 过滤:至少包含 1 个 unique peptide
df = df[df["Unique peptides"] >= 1]
# 取蛋白ID和样本强度列,这里假设样本列名包含 "Intensity "
intensity_cols = [c for c in df.columns if "Intensity " in c]
protein_col = "Protein IDs"
# 构建矩阵
matrix = df.groupby(protein_col)[intensity_cols].sum()
matrix.head()
质量评估:你的数据靠谱吗?
数据导进来了,接下来得看看它靠不靠谱。我一般会从四个维度来评估:
- 蛋白水平的过滤:把那些只靠一条unique peptide鉴定的蛋白踢掉,这玩意儿太不靠谱了。
- 缺失值比例:一个蛋白在超过50%的样本里都没定量值,留着也没啥用。
- 定量重现性:技术重复的样本之间,CV值最好是小于20%。
- 样本相关性:重复样本的相关性应该大于0.9,如果低于0.7,我就要怀疑是不是标签加错了。
嗯,这里要重点说缺失值。蛋白质组学数据里缺失值很常见,但缺失机制不一样。我以前有个项目,数据量超大,但缺失值比例超过60%,分析结果根本不可信。后来我重新检查了样本处理,才发现是某批样本的酶切效率出了问题。
小技巧: 数据导入后,先用 isnull().mean() 看一下每列缺失比例。如果某个样本的缺失率达到70%以上,建议直接剔除,别犹豫。
蛋白水平过滤的具体做法,我用R展示一下:
library(dplyr)
# 过滤:至少2个unique peptide
filtered <- raw_data %>%
filter(Unique.Peptides >= 2)
# 过滤:在至少3个样本中都有定量值
filtered <- filtered %>%
filter(rowSums(!is.na(select(., starts_with("Intensity")))) >= 3)
注意: 过滤条件不要拍脑袋定。我一般根据项目规模来调:如果是小样本量(n ≤ 5),可以放宽到“至少2个样本有值”;如果是大队列(n ≥ 50),那就严格一点,“至少70%样本有值”。
量化指标的检查
我画了一张流程图,帮你理清数据导入与质量评估的完整思路:
你看这张图,左边是三种常见的数据来源,中间是导入和合并的关键步骤,右边就是质量评估的三个维度。我自己在评估时,最看重的是缺失值比例和CV分布,这两个指标能直接反映出实验操作和质谱采集的质量。
质控指标速查表
为了让你在实际操作时快速对照,我把常用的质控指标整理成了表格,你直接照着检查就行:
| 质控指标 | 推荐阈值 | 一句话解释 |
|---|---|---|
| Unique peptides 数 | ≥ 2 | 蛋白鉴定越少,定量噪声越大 |
| 缺失值比例 | < 50% 每个蛋白或样本 | 缺失太多,后续统计力不足 |
| 技术重复 CV | < 20% | 重复样本定量一致性好 |
| 样本间 Pearson r | > 0.9 内 / > 0.7 组间 | 生物学重复要高于处理组间 |
| 鉴定蛋白总数 | 参考数据库预期 | 太少表示实验或数据库有问题 |
核心要点: 数据导入与质量评估的核心就三句话——格式搞清楚,缺失检查好,重复差不缩小。走到这一步,你的数据基本就准备好可以进行差异分析了。