2. MaxQuant安装与配置(Windows/Linux)

好,咱们正式开始动手装 MaxQuant。这一章我尽量把踩过的坑都抖出来,让你少走弯路。MaxQuant 本身不算难装,但依赖环境和操作系统的差异,折腾起来也挺烦人的。

安装前你需要知道的几件事

先把底牌摸清楚,再动手不迟。MaxQuant 本质上是一个 .NET 应用,跑在 Windows 上是最顺的。Linux 下也能用,但需要经过一层 Mono 转译,性能会打点折扣。我个人习惯:能上 Windows 就上 Windows,除非你手里只有服务器。

硬件门槛:内存至少 16 GB,建议 32 GB 以上。CPU 核心越多越好,因为搜索阶段是并行计算的。硬盘读写速度影响索引构建,SSD 是标配。

你想想看,一个典型的 LFQ 项目,原始文件动辄几十个 GB,内存不够直接卡死在第二步。我在项目中遇到过课题组用 8 GB 笔记本跑 MaxQuant,开了三个 raw 文件就崩了——那是真惨。

安装流程总览

下面这张图把整个安装链串起来了,你可以先瞄一眼,心里有个框架。

MaxQuant 安装流程总览 ① 下载 MaxQuant 包 ② 解压 → 放指定目录 ③ 安装 .NET / Mono ④ 配置 PATH / 环境变量 ⑤ 命令行验证启动 ⚠ 关键区别:Windows 安装简单,Linux 需要 Mono 5.20+ 且性能有损耗 配置好后记得检查 Andromeda 引擎是否可执行(常见坑)

Windows 下的安装步骤

Windows 是最省心的平台。直接去 MaxQuant 官网下载区 拿最新的压缩包。目前稳定版是 2.5.x,我用的 2.4.13 之前有个内存泄漏 bug,后来的版本修了。

第一步:获取安装包

  • 下载 MaxQuant_xxx.zip,别下成源码包。
  • 解压到纯英文路径,比如 C:\MaxQuant。我见过中文路径导致 Andromeda 崩溃的案例,别试。

第二步:安装 .NET 运行时

MaxQuant 需要 .NET Framework 4.7.2 或更高。

# 检查是否已安装
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release

# 如果返回值小于 461808,去微软官网下载 .NET Framework 4.8 Runtime

我记得有一次在一台新电脑上装,.NET 环境没问题,但双击 MaxQuant.exe 没反应。查了半天发现是 Visual C++ Redistributable 2015-2022 x64 没装。安装那个包之后就能跑了。

第三步:配置 PATH 环境变量(可选但推荐)

我喜欢把 MaxQuant 的 bin 目录加到 PATH 里,这样在 PowerShell 里直接敲 MaxQuant 就能启动。

# 以管理员身份运行,把路径替换成你的安装目录
setx /M PATH "%PATH%;C:\MaxQuant\bin"

为什么要这么做?批处理脚本里经常要调用 MaxQuantCmd.exe,如果不加 PATH,每次都得写全路径,烦不烦?

第四步:验证安装

打开 CMD 或 PowerShell,跑一下命令:

MaxQuantCmd.exe --version

能输出版本就说明装好了。如果报错 不是内部或外部命令,检查 PATH 或者直接去安装目录执行。

Windows 避坑指南

  • 杀毒软件(尤其 Defender)会误杀 Quant.exe 和 Andromeda.exe。我曾在项目中遇到运行到一半文件被隔离,整个任务白跑。建议把 MaxQuant 目录加入排除列表。
  • 不要安装在 Program Files 下,权限问题会阻止写入临时结果。
  • 如果遇到 System.IO.FileNotFoundException,通常是缺少 VC++ 运行库,去微软官网装最新版 x64 即可。

Linux 下的安装步骤

Linux 用户嘛,要么是服务器跑批处理,要么是个人桌面玩开源。MaxQuant 官方只提供 Windows 版,Linux 全靠 Mono 撑起来。说实话,性能损失大概在 10%~20%,但胜在稳定——前提是你配置对了。

第一步:安装 Mono 完整版

Mono 版本一定要 >= 5.20,我推荐用 6.12 以上。直接用发行版的包管理器安装即可。

# Ubuntu / Debian
sudo apt update
sudo apt install mono-complete

# CentOS / RHEL
sudo yum install mono-complete

# 检查版本
mono --version

为什么强调“完整版”?只装 mono-runtime 会导致缺少 System.Drawing 等程序集,MaxQuant 的 UI 组件会报错。我在一开始装过一次精简版,结果 MaxQuantCmd.exe 直接抛 System.TypeInitializationException,教训深刻。

第二步:下载并解压 MaxQuant

步骤和 Windows 一样,不过解压后需要确认一下文件权限。

wget https://www.maxquant.org/downloads/MaxQuant_2.5.0.0.zip   # 实际链接请去官网复制
unzip MaxQuant_2.5.0.0.zip -d /opt/MaxQuant
chmod +x /opt/MaxQuant/bin/*.exe

注意:Linux 下 .exe 是 Mono 可以执行的,不需要额外转换。我就是这样直接跑了几年,没出过兼容性问题。

第三步:添加 mono 启动包装器

为了在命令行里方便调用,我习惯写一个简单的 shell 脚本包装一下。

# 创建文件 /usr/local/bin/MaxQuantCmd
#!/bin/bash
mono /opt/MaxQuant/bin/MaxQuantCmd.exe "$@"

# 给它执行权限
sudo chmod +x /usr/local/bin/MaxQuantCmd

这样你在终端里敲 MaxQuantCmd --help 就能直接调用,不用每次都写 mono /opt/MaxQuant/bin/...,省事。

第四步:测试运行

MaxQuantCmd --version

# 或者直接调用
mono /opt/MaxQuant/bin/MaxQuantCmd.exe --version

如果能输出版本号,恭喜你,搞定了。如果报错 Could not load file or assembly,八成是 Mono 版本太低,或者缺少部分程序集。升级 Mono 到最新版基本能解决。

重要提醒

  • Mono 对 .NET 的某些 API 支持不完全,比如 System.Management。MaxQuant 在启动时会自动检测 CPU 核心数,如果 Mono 没有实现对应的 WMI 调用,可能会退化为单线程——性能下降非常明显。解决方案:在启动前手动设置环境变量:export MONO_THREADS_PER_CPU=8(按你的核心数调整)。
  • Linux 下不要用 mono --runtime=v4.0,直接用默认运行时即可。
  • 如果遇到中文路径或者包含空格的文件名,Mono 会无法解析。我经手的一个课题数据文件命名规范为 2023-10-15_HeLa_TMT10_raw.raw,这种全英文无空格是最安全的。

两种操作系统对比

项目 Windows Linux(Mono)
安装复杂度 低(下载即用) 中(需配置 Mono 环境)
运行时速度 原生最快 约慢 10%~20%
内存管理 自动,稳定 偶尔需要调优 Mono GC
并行支持 完全支持 依赖 MONO_THREADS_PER_CPU
常见报错类型 VC++ 运行库缺失 Mono 版本/依赖不兼容
推荐场景 个人工作站 / 小规模 服务器 / 批处理集群

最后的检查清单

我每次在新机器上装完后,都会按下面几步过一遍,避免遗漏:

  1. 运行 MaxQuantCmd.exe --version —— 确认可执行文件能正确加载。
  2. 打开 MaxQuant GUI(仅 Windows) —— 界面无报错,推荐参数模板能加载。
  3. 创建测试项目 —— 随便拿一个小的 .raw 文件跑一遍,看看能不能正常走到 Searching 阶段。
  4. 检查临时目录权限 —— MaxQuant 会在系统临时文件夹写大量缓存。如果权限不足,跑几个小时卡在最后一步,那才叫崩溃。

进阶建议:对于长期使用的服务器,我建议把 MaxQuant 装好后打包成 tar.gz 备份。下次换机器直接解压,不用重新配置。另外,把 mono --optimize=all 加到包装器里,能再压榨一点性能。