4、序列库准备:数据库文件格式、常见数据库下载、污染库添加技巧
好,咱们继续。前面几讲我们把 MaxQuant 的软件基础和搜库原理捋了一遍,现在该动手准备最核心的原料了——蛋白质序列数据库。
说白了,数据库就是你拿质谱数据去比对的那个参考答案。没有它,MaxQuant 啥都干不了。
我个人习惯把序列库准备称为“搜库成功的一半”。为什么?因为数据库的质量直接决定了鉴定结果的准确性和覆盖率。今天我就把这个环节掰开揉碎了讲清楚。
4.1 FASTA 格式:蛋白质序列的通用语言
几乎所有蛋白质鉴定软件,包括 MaxQuant,用的都是 FASTA 格式。它很简单,就是一个纯文本文件,里面一条一条地记录蛋白质序列。
你想想看,就这么个简单的格式,我在项目里见过多少回乌龙。有人把换行符弄丢了,有人把序列和注释写反了,结果搜库全报错。
标准的一条 FASTA 记录长这样:
>sp|P04406|G3P_HUMAN Glyceraldehyde-3-phosphate dehydrogenase OS=Homo sapiens OX=9606 GN=GAPDH PE=1 SV=3
MVKVGVNGFGRIGRLVTRAAFNSGKVDIVAINDPFIDLNYMVYMFQYDSTHGKFHGTVKAENGKLVINGNA
KVSVDLTVKLGWKDEHEKISWVDVEGKNFQITKHHVKLMLKEWAAGVDSVVELMAKAKDQKEQVKGLQKV
KGFIIEGEENKVPKLWSKMTNFVCMDLSQVPCKSRNPATGDNLGLL
注意三个关键点:
- 大于号开头:每一行以
>开头,后面跟着注释信息,不要有空格开头。 - 唯一标识符:
|P04406|是 UniProt 的 accession,MaxQuant 用它去重和索引。 - 序列行:后续行全是标准氨基酸单字母缩写,不要混入空格或数字。
B、Z、X),MaxQuant 会直接跳过该条目,而且不报错。排查时你只会发现“为什么这个蛋白少了几条肽段?”嗯,很隐蔽。
4.2 主流数据库的选择与下载
现在市面上最常见的两个数据库来源是 UniProt 和 Swiss-Prot。其实它俩是一家,只是质量控制级别不同。
我一般怎么选呢?看表格:
| 数据库 | 特点 | 适合场景 |
|---|---|---|
| Swiss-Prot | 人工校验,无冗余,条目较少(约 ~20万) | 标准常规项目的首选,结果可靠 |
| TrEMBL | 自动注释,包含预测蛋白,条目庞大(>2亿) | 非模式生物、想挖掘新蛋白时 |
| UniProt (完整版) | Swiss-Prot + TrEMBL 打包,文件非常大 | 宏蛋白质组或跨物种混合样本 |
具体下载步骤:
- 打开
//www.uniprot.org/(实际使用中手动输入即可,课程里不设链接) - 搜索目标物种名,比如 "Homo sapiens"、 "Mus musculus"
限制数据库类型为 "Reviewed (Swiss-Prot)" - 点击 "Download",格式选 "FASTA (canonical & isoforms)"
- 下载完成后,把文件名改成简单点的,比如
human_swissprot.fasta
> 的数量,确保没少下载。稳妥起见可以用 grep -c "^>" human_swissprot.fasta 快速统计条目数。
4.3 污染库:必须加,不能省
这个问题我每次讲课都要强调。很多人图省事,只下载个目标物种数据库就开跑。结果呢?鉴定出一堆角蛋白、胰蛋白酶、乳清蛋白——全是假的。
为什么一定要加污染库?因为质谱样本制备过程中,免不了引入微量污染物:手指皮肤上的角蛋白、乳头上的beta-乳球蛋白、试剂里的BSA……这些蛋白质的肽段信号甚至可以很强,如果不加到数据库里,MaxQuant 没办法"认出来",就会错误地匹配到你目标蛋白上。
MaxQuant 官方提供了一个污染库文件,叫做 contaminants.fasta,里面包含了常见的人角蛋白、BSA、常用蛋白酶、抗体片段等。你一定要把它合并到目标数据库里。
合并操作很简单(Linux/Mac):
cat human_swissprot.fasta contaminants.fasta > human_swissprot_plus_contam.fasta
或者直接在 Windows 命令提示符里:
copy human_swissprot.fasta + contaminants.fasta human_swissprot_plus_contam.fasta
重点:合并后的 FASTA 文件就是你在 MaxQuant 参数页【Global Parameters → Sequences → FASTA files】里要选择的唯一文件。不要在软件里分别添加多个 FASTA 文件,除非你有特殊策略需求。
4.4 个人习惯:再给数据库加一层保命保险
嗯,这里再分享一个我自己用的小套路。我会额外加一个 “常用实验室污染蛋白” 的集合,比如大肠杆菌、酵母、甚至是使用过的磷酸酶抑制剂中的酶类。因为这些污染物在特定的实验室环境下很常见。
怎么搞?从 UniProt 上下载这些非目标物种的 Swiss-Prot 库,然后只提取你想加的那几个,或者整条 FASTA 追加进去。说白了多花 5 分钟,少掉很多麻烦。
我还会在最终合并好的 FASTA 文件里搜索一遍常见污染物的关键字:
grep "Keratin\|BSA\|Trypsin\|Lysozyme\|Casein" merged.fasta
如果找到结果,说明这些污染序列确实在里面了,心里踏实。
4.5 核心流程一图通:序列库准备全貌
说了这么多,不如画出来。下面是整个序列库准备的核心逻辑:
4.6 MaxQuant 中加载数据库的最终检查
文件准备妥当了,在 MaxQuant 里操作很简单。但我建议你做完最后两个检查:
- 大小检查:人类 + 污染库一般在 30~50 MB。如果只有几百 KB,那肯定不对。
- Accession 唯一性:MaxQuant 不能接受完全相同的两行条目,虽然概率低,但你如果手动拼接了好几个库,最好用去重工具(如 SeqKit)跑一遍:
seqkit rmdup merged.fasta -o deduped.fasta
你看,序列库准备这一步听着简单,但其实最容易出幺蛾子。我早期做项目时吃过几次亏,后来养成了上面这些习惯,就再也没出过数据库问题。
最后一条干货:下载完成后把原始压缩包和最终合并文件都保留好,标注日期和版本。万一你要回溯结果或重新搜库,你会发现这个习惯救了大命。