4. 数据准备
说实话,刚开始用MaxQuant的人,很容易被它吐出来的一大堆文件吓到。 我第一次跑完一个定量蛋白质组项目,打开输出文件夹时,足足愣了几秒。 txt文件夹里躺着十几个文件,名字长得差不多,有的几MB,有的几百MB。 哪个是核心?哪个是中间产物?哪个可以直接扔?
这章我就带你把这些文件理清楚。 你只要抓住两个关键文件——evidence.txt和peptides.txt,就能搞定PTXQC的输入。
4.1 理解MaxQuant的输出目录
不管你是用Andromeda内置搜索引擎,还是接了其他搜库工具,MaxQuant最终都会在combined/txt目录下产出结果。
我个人习惯是先不看别的,直接进这个txt目录,因为它就是质控报告的原料仓库。
你想想看,一个典型的定量组学项目,原始raw文件可能有几十个。 MaxQuant跑完后,txt目录里会有一堆tabular分隔的文本文件。 它们分成几个层次:
- PSM(肽谱匹配)级别 — evidence.txt,这是最底层的原始记录。每个MS/MS谱图匹配到一个肽段,就是一行证据。
- 肽段级别 — peptides.txt。同一个肽段如果被多次鉴定到,这里会合并成一行。
- 蛋白质级别 — proteinGroups.txt。多个肽段归属到同一个蛋白组,在这里汇总。
- 其他辅助文件 — 如msms.txt、allPeptides.txt、summary.txt等,提供补充信息。
关键点:PTXQC主要读取evidence.txt和peptides.txt。 proteinGroups.txt是可选的,但有了它可以做更丰富的蛋白层面统计。 其他文件——不是必须的。至少在我参与的项目里,从没遇到因为少了msms.txt就报错的情况。
4.2 evidence.txt — 质控报告的核心燃料
这个文件有多重要?我直接说吧,PTXQC 80%以上的质控指标都来自evidence.txt。 它记录的是每个PSM的鉴定和定量信息。行数通常非常庞大,一个10个样品的TMT实验,几十万行是常态。
4.2.1 关键列字段
evidence.txt的列数很多,但PTXQC真正用的不多。我挑几个必须了解的:
| 列名 | 含义 | PTXQC用途 |
|---|---|---|
| Sequence | 肽段序列(不带修饰) | 鉴定计数、长度分布 |
| Modified sequence | 修饰后的序列 | 修饰位点统计 |
| Proteins | 匹配到的蛋白ID | 蛋白鉴定数、唯一性判断 |
| Retention time | 保留时间(分钟) | RT分布、iRT校准 |
| PEP | 后验错误概率 | PEP分布、过滤阈值 |
| Score | Andromeda打分 | 得分分布 |
| Intensity | 原始强度 | 定量强度分布(关键!) |
| Charge | 电荷态 | 电荷态分布 |
| MS/MS count | 二级谱图数 | 鉴定效率 |
| Raw file | 原始文件名 | 按样品分组 |
我建议你用Python的pandas看一眼这个文件的结构,很快就能摸清楚。
import pandas as pd
ev = pd.read_csv("evidence.txt", sep="\t", low_memory=False)
print(ev.columns.tolist())
print(ev.shape)
4.2.2 避坑指南
我曾经遇到过两次常见的坑,这里提一下:
- Intensity列是0吗? 如果是空值或0,说明没有定量值。PTXQC在计算定量覆盖度时会把这些样品标记为缺失。这通常是正常的,但如果缺失太多,检查一下MaxQuant的定量设置。
- Modified sequence里的括号标注:MaxQuant用括号加质量偏移表示修饰。比如
_(Acetyl (N-term))。PTXQC能识别标准修饰,但自定义修饰要注意格式一致性。
4.3 peptides.txt — 肽段中心的汇总视图
peptides.txt是evidence.txt的去重汇总版本。 同一个肽段(相同的Modified sequence + 相同的电荷态)被多次鉴定时,这里只保留一行。 它的行数远少于evidence.txt,但包含了每个肽段的汇总统计。
4.3.1 与evidence.txt的核心区别
| 维度 | evidence.txt | peptides.txt |
|---|---|---|
| 粒度 | 每个PSM一行 | 每个唯一肽段一行 |
| 定量列 | Intensity(单次定量) | Intensity(汇总值,如中位数) |
| 保留时间 | 单次RT | 平均/中位数RT |
| 行数 | 很大(几十万~百万) | 较小(几万~十万) |
4.3.2 PTXQC用肽段表做什么?
PTXQC会同时读取两个文件,但在某些指标上有明确分工:
- 肽段长度分布 — 直接从peptides.txt的Sequence列算。为什么要用肽段表而不是证据表?你想想看,如果一个肽段被鉴定100次,用证据表算长度分布就会把它重复计数100次,这实际上夸大了短肽的权重。用去重后的肽段表更合理。
- 肽段鉴定数统计 — 从peptides.txt的行数得到唯一肽段数,从evidence.txt得到总PSM数。两者对比可以评估鉴定冗余度。
- 修饰分布 — 肽段表也会包含修饰信息,但通常不如证据表细致。
我的经验:写PTXQC的输入检查函数时,我习惯先判断peptides.txt中的唯一肽段数是否合理。如果总PSM数很高,但unique peptides很少,说明鉴定冗余度过大,可能是色谱分离效率的问题。反过来,如果唯一肽段数接近总PSM数,说明基本上每个肽段只测了一次,这可能暗示样品太简单。
4.4 其他关键文件一览
我不打算把每个文件都讲一遍,那样太啰嗦。但有几个你可能会遇到:
4.4.1 summary.txt
这个文件是MaxQuant自动生成的实验统计概览。每行一个raw文件,包含鉴定数、定量数、MS/MS总数等。PTXQC会把它当作辅助信源,用于计算总览指标。我一般会扫一眼这个文件,快速了解整个实验的数据量级。
# summary.txt 的典型前几行
Raw file MS/MS identified identified (seq) identified (by matching)
Sample_A 15234 8921 7821 5033
Sample_B 14987 8765 7698 4982
4.4.2 msms.txt
包含每个MS/MS谱图的详细信息,比如母离子质量、电荷态、碎裂方式等。PTXQC只用它做少数高级指标(如二级谱质量精度)。大多数情况下,你不必关心这个文件。
4.4.3 proteinGroups.txt
PTXQC 3.x之后的版本,可以通过蛋白组表做蛋白层面的覆盖度分析。但我不建议依赖它来做核心质控,因为它受蛋白推断算法影响很大。我遇到过同一组raw文件,换个MaxQuant版本,proteinGroups.txt里的蛋白数量差了15%。而evidence.txt的差异通常小于2%。
4.5 实操小练习
你现在就可以动手验证一下。打开你的PTXQC示例数据目录,定位到combined/txt:
- 用Excel或文本编辑器打开evidence.txt,数数有几列。别忘了它可能很大,用文本编辑器打开时会慢。
- 用命令行快速查看行数:
wc -l evidence.txt
wc -l peptides.txt
wc -l proteinGroups.txt
- 对比三个文件的行数差异。如果evidence.txt > 10× peptides.txt,说明你的鉴定冗余度偏高。
一句话总结:evidence.txt是质控报告的命根子,peptides.txt是它的去重好帮手。你把这两个文件的结构搞明白,PTXQC就相当于已经打通了一半。嗯,接下来——你会看到怎么用代码读取它们,并转换为质控指标。