PROCHECK 3.5.4 源码编译安装:Linux/macOS 双系统 5 步配置与常见编译错误修复
在结构生物学和计算化学领域,PROCHECK 作为经典的蛋白质立体化学质量评估工具,至今仍被广泛用于验证实验测定或预测的蛋白质结构合理性。本文将详细介绍如何从官方源码出发,在 Linux 和 macOS 系统上完成 PROCHECK 3.5.4 版本的编译安装,并针对跨平台编译过程中的典型问题提供系统化解决方案。
1. 环境准备与源码获取
PROCHECK 的官方源码可通过 SBGrid 或 GitHub 获取。建议优先选择 SBGrid 提供的 3.5.4 版本,该版本已针对现代操作系统进行基础适配:
# SBGrid 官方安装命令(需注册账号) sbgrid-cli install procheck # 或手动下载源码(Linux/macOS通用) wget https://www.ebi.ac.uk/thornton-srv/software/PROCHECK/procheck.tar.gz tar -xzvf procheck.tar.gz编译环境需满足以下条件:
| 组件 | Linux 要求 | macOS 要求 |
|---|---|---|
| Fortran 编译器 | gfortran ≥ 7.0 | gfortran ≥ 10.0 (通过 Homebrew 安装) |
| C Shell | csh 或 tcsh | 预装 tcsh |
| 图形库 | libX11-dev | XQuartz |
| 其他依赖 | make, gcc | Command Line Tools |
提示:macOS 用户需通过
xcode-select --install安装命令行工具,并通过 Homebrew 安装 gfortran:brew install gcc
2. 跨平台编译配置
PROCHECK 的编译脚本procomp.scr需要针对不同系统进行调整:
2.1 编译器设置
用文本编辑器打开procomp.scr,修改关键参数:
# Linux 配置示例(使用系统默认gfortran) setenv F77 gfortran setenv FFLAGS "-O2 -fno-second-underscore" # macOS 配置示例(Homebrew安装的gfortran) setenv F77 /usr/local/bin/gfortran setenv FFLAGS "-O2 -fno-second-underscore -Wno-argument-mismatch"2.2 弃用语句处理
现代 Fortran 编译器已移除部分旧标准支持,需修改以下文件:
- 删除
convax.for中的废弃语句:
! 注释掉或删除以下行 ! CARRIAGECONTROL='LIST'- 在
nproc.for中替换过时语法:
! 将 OPEN(UNIT=11,FILE=filnam,STATUS='NEW',ERR=900) ! 修改为 OPEN(UNIT=11,FILE=filnam,STATUS='REPLACE',ERR=900)3. 分步编译流程
3.1 主程序编译
执行标准化编译流程:
# 1. 运行编译脚本(忽略warning) csh procomp.scr # 2. 单独编译转换工具 gfortran -o convax convax.for ./convax # 自动转换文件后缀 # 3. 测试核心程序 ./procheck.scr example.pdb 2.03.2 环境变量配置
在~/.bashrc或~/.zshrc中添加:
# PROCHECK 环境配置 export PROCHECK_DIR=$(pwd) export PRODIR=$PROCHECK_DIR export prodir=$PROCHECK_DIR # 注意小写变量名要求 export PATH=$PATH:$PROCHECK_DIR # 常用命令别名 alias procheck='$PROCHECK_DIR/procheck.scr' alias proplot='$PROCHECK_DIR/proplot.scr'注意:PROCHECK 强制要求
prodir小写变量,这是历史遗留设计
4. 平台特异性问题解决
4.1 Linux 常见错误
错误1:libX11 缺失
/usr/bin/ld: cannot find -lX11解决方案:
# Ubuntu/Debian sudo apt-get install libx11-dev # CentOS/RHEL sudo yum install libX11-devel错误2:Fortran 模块不兼容
Error: Type mismatch in argument 'n'需修改plot.f中参数声明:
! 原始声明 INTEGER N ! 修改为 INTEGER(KIND=4) :: N4.2 macOS 特有问题
错误1:_gfortran_second_underscore 未定义
Undefined symbols for architecture x86_64: "__gfortran_second_underscore"解决方案:在procomp.scr中添加编译选项:
setenv FFLAGS "$FFLAGS -fno-second-underscore"错误2:X11 显示异常
X11: Failed to connect to display需安装 XQuartz 并配置:
brew install --cask xquartz export DISPLAY=:05. 验证与高级配置
5.1 功能测试
使用示例 PDB 文件验证安装:
# 下载测试文件 wget https://files.rcsb.org/download/1CRN.pdb # 运行分析(分辨率设为2.0Å) procheck 1CRN.pdb 2.0 proplot 1CRN.pdb 2.0预期生成以下文件:
1CRN.ps- Ramachandran 图1CRN.sum- 统计摘要1CRn.ovw- 结构概览
5.2 输出优化
修改ps/ps_param.f调整图形输出:
! 调整颜色方案(示例) DATA COLSTR/'0 0 0', '1 0 0', '0 0 1', '0.5 0.5 0'/ ! 黑、红、蓝、黄对于批量处理,可使用以下脚本模板:
#!/bin/bash for pdb in *.pdb; do res=$(grep "REMARK.*Resolution" $pdb | awk '{print $4}') procheck $pdb ${res:-2.0} # 默认分辨率2.0Å done6. 维护与更新建议
长期使用 PROCHECK 时需注意:
- 编译器兼容性:当系统升级 gfortran 后,建议重新编译
- 图形输出校准:定期检查 PostScript 输出是否符合期刊要求
- 替代方案整合:可结合 MolProbity 或 WHAT_CHECK 进行交叉验证
对于需要处理大量结构的用户,推荐将 PROCHECK 集成到自动化流程中。以下是通过 Python 调用 PROCHECK 的示例:
import subprocess import os def run_procheck(pdb_path, resolution=2.0): procheck_path = os.getenv('PROCHECK_DIR', '/opt/procheck') cmd = f"{procheck_path}/procheck.scr {pdb_path} {resolution}" process = subprocess.run(cmd, shell=True, check=True, text=True) return process.returncode