环境搭建:Windows/Linux 下 MaxQuant 安装与初次验证
MaxQuant 这款软件,说实话,依赖环境不算复杂,但细节不少。我刚开始接触时也踩过坑——明明装好了,一跑就崩,日志里全是 .NET 的报错。后来才明白,问题出在版本匹配上。这一章咱们把环境搭建捋清楚,从 Windows 到 Linux,一次性搞定。
环境概览:一张图看清依赖关系
先放一张整体结构图。环境搭建说白了就是让 MaxQuant 能正常调用底层库。Windows 和 Linux 的路径不同,但最终目标一致。
这张图把两边的依赖关系都标出来了。我这个结构图,你在实际操作时可以直接对照。哪个环节报错,就回头看对应的节点。
Windows 下安装:.NET Framework 与 VC++
Windows 是最省心的平台。说白了,MaxQuant 本身就是一个 Windows 原生 .NET 应用。我个人习惯先装好 .NET Framework,再处理 VC++ 运行库。
第一步:检查 .NET Framework 版本
按下 Win + R,输入 regedit,定位到:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
查看 Release 的值。如果是 461814 或以上,说明已安装 4.7.2 或更高版本,满足要求。如果数字小于 461814,需要手动更新。
第二步:安装 VC++ Redistributable
MaxQuant 的某些计算库依赖 Visual C++ 运行库。直接下载最新的 VC_redist.x64.exe 安装即可。这个一般不会出问题,但我遇到过一例——用户装了多个版本的 VC++ 运行库,结果冲突了。直接卸载旧版本,只保留最新的 2015-2022 合辑版。
第三步:解压 MaxQuant 并启动
从官网下载的压缩包是 MaxQuant_2.6.7.0.zip 之类的,注意不要解压到中文路径或带空格的目录。我一般放在 C:\MaxQuant 或 D:\Tools\MaxQuant。
双击 MaxQuant.exe。初次启动可能出现一个防火墙提示,允许即可。正常情况会弹出主界面。如果卡在某个界面不退,八成是 .NET 版本不对。
Linux 下安装:Mono 是你唯一的伙伴
Linux 用户注意了——MaxQuant 没有原生 Linux 版,全靠 Mono 跑。说白了,Mono 就是个 .NET 的模拟器。我早期在 Ubuntu 上折腾过好几次,内存占用高是常事,但好在能用。
第一步:安装 Mono 完整版
使用官方源。Ubuntu/Debian 系统执行:
sudo apt update
sudo apt install mono-complete
安装完成后验证版本:
mono --version
输出类似这样:
Mono JIT compiler version 6.12.0.200 (tarball Tue Jun 14 00:56:47 UTC 2022)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
GC: sgen (concurrent by default)
注意版本号要在 6.12 以上。如果低于这个版本,MaxQuant 的某些图形界面组件会崩溃。
yum install mono-complete 装过一次,默认源版本太旧。最后只能编译安装 6.12。你如果是 RHEL 系,建议直接加 mono-project 的官方源。
第二步:安装 libgdiplus 和中文字体
MaxQuant 的图形界面依赖 libgdiplus。没有它,启动时大概率卡死或报错。同时,你还得装中文字体,否则图表上的中文全是方框。
sudo apt install libgdiplus
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei
检查 libgdiplus 是否正常:
ldconfig -p | grep gdiplus
如果有输出,就说明装好了。我在团队里曾见过有人跳过这步,结果运行 MaxQuant.exe 后界面一片空白。当时排查了好久才发现是 libgdiplus 缺失。
第三步:运行 MaxQuant(命令行模式)
Linux 下直接双击 .exe 不现实,用命令行才是正道:
mono MaxQuant.exe
这样会启动 GUI,但有时候远程服务器没有显示环境,你就需要用纯命令行模式:
mono MaxQuantCmd.exe
如果出现 System.TypeInitializationException 之类的报错,多半是 Mono 版本问题,或者缺少软件包。别慌,把完整的错误日志贴到搜索引擎上。
初次运行验证:确保一切就绪
无论是 Windows 还是 Linux,安装完环境后都要做一次冒烟测试。嗯,这里要注意:不是启动后看一眼界面就完事了,得验证它真的能跑参数搜索。
Windows 下的验证步骤
- 启动
MaxQuant.exe,看到主界面无异常提示。 - 准备一个极小的测试数据(比如只包含 1~2 个 RAW 文件)。
- 点击 Run 按钮,选择测试数据路径。
- 观察输出日志:没有 FATAL 或 EXCEPTION 字样。
- 任务完成后检查结果文件夹下是否生成
combined子目录。
我个人习惯用一组已知能跑通的小数据做测试。以前有同事跳过这步,直接上大样本,结果跑了三天后崩溃,所有计算浪费了。所以,初次验证一定用迷你数据集。
Linux 下的验证步骤
- 在终端执行
mono MaxQuantCmd.exe <参数>,使用命令行模式。 - 准备对应的参数
mqpar.xml配置文件。 - 运行时打开另一个终端,用
top或htop监控内存和 CPU 占用。 - 程序运行无崩溃,日志末尾显示 Finished successfully。
export MONO_GC_PARAMS=nursery-size=32m,这能缓解某些 Mono 版本的内存管理问题。
常见问题与避坑指南
这里整理了几类我反复遇到的故障,直接做成清单,方便你对照排查。
| 症状 | 原因 | 解决方案 |
|---|---|---|
| Windows 下启动报错 "Could not load file or assembly 'System'" | .NET Framework 版本不足 | 安装 .NET Framework 4.7.2 或更高版本 |
| Windows 下界面空白 | VC++ 运行库缺失或冲突 | 卸载老旧版本,安装最新 VC++ Redistributable |
| Linux 下启动提示 "System.Drawing.Common" 异常 | libgdiplus 未安装 | sudo apt install libgdiplus |
| Linux 下中文显示方块 | 缺少中文字体 | 安装 wqy-zenhei 或 wqy-microhei |
| Linux 下运行卡死、内存溢出 | Mono 版本问题或 GC 配置不对 | 升级 Mono 到 6.12+,设置 MONO_GC_PARAMS |
| 命令行模式下日志无输出 | 输出重定向被阻断 | 使用 mono MaxQuantCmd.exe 2>&1 | tee log.txt |
我曾经遇到一个特别隐蔽的问题:Linux 下用 screen 会话运行 MaxQuant 命令行,断开后程序直接终止。嗯,这是因为 screen 默认会发送 SIGHUP。解决方案是用 nohup 或者 tmux 持久化会话。
初次运行验证的检查清单
最后,给一份简明检查清单,你可以贴在显示器旁边,安装完成后逐项打勾。
- Windows 下安装了 .NET Framework 4.7.2 或更高版本
- Windows 下安装了最新 VC++ 2015-2022 Redistributable
- MaxQuant 解压路径不含中文字符和空格
- Linux 下安装了 Mono 6.12 或更高版本
- Linux 下安装了 libgdiplus 和 wqy-* 中文字体
- Windows 下双击
MaxQuant.exe启动无崩溃 - Linux 下
mono MaxQuantCmd.exe命令行运行无异常 - 使用小数据集执行一次完整搜索,输出结果文件夹正常生成