本文收录于专栏 分子模拟基础 ------ 专栏系统覆盖分子模拟的力场、电荷、能量与建模基础,点击订阅可跟踪后续更新。
【摘要】
你给配体建 MD(分子动力学)体系时,十有八九卡在电荷这步:Mulliken、RESP、AM1-BCC 一堆名字不知道选哪个,Windows 上连 antechamber 都装不上,教程还各说各话。这篇先把部分电荷的原理和划分派、拟合派、半经验三大族讲透,再给 4 套可整段复制的实战脚本------RDKit 秒级算 Gasteiger、Open Babel 一行命令、AmberTools 跑 AM1-BCC(含 Windows 走 WSL 的完整安装链)、RESP 精确拟合路线,每套都标注支持系统、分系统给安装与运行代码,全部在 Windows 11 与 Ubuntu 24.04 实测通过。文中另附 7 个实测踩坑------包括 PDB CONECT 把双键登记两遍导致 tleap 崩溃的完整复现与 SDF 修复。读完你能按体系选对电荷方法,当场跑通自己的第一条链。
关键字: 部分电荷、RESP、AM1-BCC、Gasteiger、Mulliken、Hirshfeld、GAFF、分子动力学

目录
- [§0. 相关教程与核心文献](#§0. 相关教程与核心文献)
- [§1. 场景痛点:电荷这一步为什么卡人](#§1. 场景痛点:电荷这一步为什么卡人)
- [§2. 部分电荷是什么](#§2. 部分电荷是什么)
- [§3. 计算方法:三大族全景](#§3. 计算方法:三大族全景)
- [§4. 区别与选型:一张表定方法](#§4. 区别与选型:一张表定方法)
- [§5. 实战一:RDKit 算 Gasteiger 电荷(三系统通用)](#§5. 实战一:RDKit 算 Gasteiger 电荷(三系统通用))
- [§6. 实战二:Open Babel 一行命令算电荷(三系统)](#§6. 实战二:Open Babel 一行命令算电荷(三系统))
- [§7. 实战三:AmberTools 跑 AM1-BCC(Linux 原生 / Windows 走 WSL)](#§7. 实战三:AmberTools 跑 AM1-BCC(Linux 原生 / Windows 走 WSL))
- [§8. 实战四:RESP 精确拟合(Gaussian / Multiwfn 免费路线)](#§8. 实战四:RESP 精确拟合(Gaussian / Multiwfn 免费路线))
- [§9. 踩坑清单:7 个真卡过人的坑](#§9. 踩坑清单:7 个真卡过人的坑)
- [§10. 选型速查与结语](#§10. 选型速查与结语)
§0. 相关教程与核心文献
| 资源 | 链接 | 与本文关系 |
|---|---|---|
| RDKit 官方文档 | --- | §5 脚本按其 API 编写并实测 |
| Open Babel 官方文档 | --- | §6 命令与电荷模型参数出处 |
| AmberTools 官网 | --- | §7 工具链与获取方式 |
| Multiwfn 主页 | --- | §8 免费 RESP 拟合工具 |
| Cornell WD et al. JACS 117: 5179, 1995. 10.1021/ja00124a002 | --- | RESP 电荷与 ff 系列力场的出处 |
| Jakalian A et al. J. Comput. Chem. 21: 132, 2000. 10.1002/(sici)1096-987x(20000130)21:2<132::aid-jcc5>3.0.co;2-p | --- | AM1-BCC 方法定义 |
| Breneman CM & Wiberg KB. J. Comput. Chem. 11: 361, 1990. 10.1002/jcc.540110311 | --- | CHELPG 静电势拟合法出处 |
| Marenich AV et al. J. Chem. Theory Comput. 2012. 10.1021/ct200866d | --- | CM5 电荷模型出处 |
| Gasteiger J & Marsili M. Tetrahedron 36: 3219, 1980. 10.1016/0040-4020(80)80168-2 | --- | Gasteiger(PEOE)电荷出处 |
原文链接与 DOI 均经访问核验(2026-11)。
§1. 场景痛点:电荷这一步为什么卡人
不管你做蛋白-配体 MD、对接库准备还是 MMGBSA 结合能计算,只要体系里有小分子,就绕不开给配体"上电荷"。这一步的麻烦有三层:
- 方法名太多:教程 A 用 AM1-BCC,教程 B 用 RESP,软件 C 默认给 Gasteiger------同一个羰基氧能差出 0.2 e,不知道该信谁。
- 工具链在 Windows 上断了:AmberTools 没有 win-64 原生包,QM(量子化学)软件 Gaussian/ORCA 的安装门槛也不低,Windows 用户往往连第一步都迈不出去。
- 错了不报错:净电荷没对上质子化态、Gasteiger 用进生产 MD、AMBER 电荷配了别家力场的 LJ(Lennard-Jones)参数------这些错误不会立刻崩,而是在能量、结合能排序里悄悄给你偏差。
这篇按"原理 → 方法横评 → 分系统实战脚本 → 踩坑"走完,实战部分每套都标注操作系统并给出对应代码。
§2. 部分电荷是什么
分子里的电子云是连续分布 的,并不会整齐地"全归某个原子"。但力场、对接打分、QSAR(定量构效关系)都要求每个原子带一个点电荷 q_i,用库仑公式算静电相互作用:
E e l e c = ∑ i < j q i q j 4 π ε 0 ε r r i j E_{elec} = \sum_{i<j} \frac{q_i q_j}{4\pi\varepsilon_0 \varepsilon_r r_{ij}} Eelec=i<j∑4πε0εrrijqiqj
把连续电子密度"记账"压到原子中心的分数电荷,就是部分电荷(partial charge,也叫原子电荷)。类比:电子云像一团连续的水汽,部分电荷就是给每个原子"记账分摊"的水量------分账规则不同(§3 的三大族),每个原子记到的数就不同。
三条关键认知:
- 部分电荷不是可观测量------物理上不存在"某原子的电荷"这种实验测定值,它是模型定义。不同方法差 0.3 e 是常态,没有"哪个是真的",只有"哪个更复现你关心的性质"。
- Σq_i = 分子净电荷------由质子化态决定。羧酸去质子是 −1,组氨酸质子化是 +1,电荷算错净电荷,后面全错。
- 静电项是极性体系能量的最大头------氢键、盐桥、π-阳离子相互作用全由它驱动,电荷质量直接决定 MD 和结合能计算的可信度。
§3. 计算方法:三大族全景
所有方法按"电子怎么分账"分三大族:划分派回答"电子实际在哪",拟合派回答"静电场长什么样",半经验派回答"怎么快算一个够用的"。
族 A:划分派(布居分析)------从 QM 波函数/电子密度把电子划分给原子。
| 方法 | 原理 | 特点 |
|---|---|---|
| Mulliken | 基函数电子对半分给所属原子 | 最老最便宜;强基组依赖,极性原子(N/O)系统性失真 |
| Löwdin | 基函数正交化后再分账 | 比 Mulliken 略稳,本质没变 |
| NPA/NBO | 按自然原子轨道划分 | 化学直觉好,用于键级/杂化分析,力场不直接用 |
| Hirshfeld | 按自由原子密度占比加权分账 | 与基组无关;但系统性低估极性(电荷偏小) |
| CM5 | Hirshfeld + 键增量校正 | DFT 电荷的推荐方案,精度接近 ESP 拟合 |
| Bader (AIM) | 按电子密度零流面拓扑划分 | 定义最物理;值偏大,适合反应性/固体分析,不进力场 |
| DDEC6 | 密度重分配迭代拟合 | 可移植性好,材料(MOF/电池)常用 |
族 B:拟合派(ESP 拟合)------在分子表面网格点拟合 q_i,使点电荷复现 QM 算出的 ESP(分子静电势)。
| 方法 | 布点方式 | 特点 |
|---|---|---|
| CHELPG | 立方均匀网格 | 经典;无约束,端基(甲基、卤素)易过拟合出荒谬值 |
| Merz-Kollman (MK) | 逐层同心球 | 同上;Gaussian 的 pop=MK |
| RESP | MK 布点 + 谐波约束 | 约束压制过拟合,跨构象稳定;AMBER 标准电荷,标准级别 HF/6-31G* |
| REPEAT | 周期体系布点 | 晶体/表面/框架材料用 |
RESP 的约束是灵魂:无约束的裸 ESP 拟合对构象敏感、分子内部原子数值乱漂,加上"重原子 ~0.5、氢电荷依附重原子"的谐波约束后才有跨构象稳定性。
族 C:半经验派(免全 QM)------秒级到分钟级,面向高通量。
| 方法 | 原理 | 速度 |
|---|---|---|
| Gasteiger (PEOE) | 迭代 σ 电负性均衡,电荷沿键递归分配 | 秒级,RDKit 内置 |
| QEq / EEM | 电负性均衡方程 | 秒-分钟 |
| MMFF94 | MMFF 力场自带键增量参数 | 秒级 |
| AM1-BCC | AM1 半经验 QM 电荷 + 键校正(BCC) | 分钟级,精度≈RESP,GAFF 力场默认 |
| 机器学习电荷 | 神经网络从 3D 构象预测 RESP 级电荷(如 ESP-DNN) | 秒级 |
特例:力场固化电荷。 TIP3P 水的 q_O=−0.834、ff14SB 蛋白电荷、CGenFF 键增量------这些不是每次算出来的,是当年拟合好写死在参数文件里的。换力场必须连电荷一起换。
§4. 区别与选型:一张表定方法
| 维度 | 划分派(Mulliken/Hirshfeld/Bader) | 拟合派(RESP/CHELPG/MK) | 半经验(AM1-BCC/Gasteiger) |
|---|---|---|---|
| 回答的问题 | 电子在哪 | 静电场长什么样 | 快速近似 |
| 需要 QM | 要 | 要(QM 算 ESP) | 不用或半经验 |
| 构象稳定性 | 差-中 | RESP 好 / 裸拟合差 | 中 |
| 力场适用性 | 一般不用 | 主流(AMBER) | 主流(GAFF 默认 BCC) |
| 典型失真 | Mulliken 极性原子过正;Hirshfeld 偏小 | 端基过拟合(无约束时) | 含氮体系偶有电荷麻烦 |
实测一个直观例子(本文 §5/§7 同一个阿司匹林分子,同一个羰基碳原子):
| 电荷模型 | 羰基 C | 羰基 O |
|---|---|---|
| Gasteiger(RDKit) | +0.31 | −0.25 |
| AM1-BCC(antechamber) | +0.55 | −0.47 |
AM1-BCC 的极化明显更强------这正是"Gasteiger 便宜但低估极性、AM1-BCC 复现 RESP 级极化"的直观体现。两个模型的净电荷都严格等于 0(+0.0000),但原子间分布差一截。
三个易混点:
- 偶极矩相似 ≠ 电荷相似:两组差很多的电荷可以给出同样的总偶极;但放进蛋白环境后高阶矩差异就暴露了。
- 埋藏原子问题:分子内部原子对表面静电势贡献小,裸拟合矩阵近奇异,数值乱------RESP 用约束解决,DDEC 用密度信息解决。
- 不可跨力场混用:AMBER 电荷配 OPLS 的 LJ 参数 = 系统性错误,换力场换全套。
选型树:
| 你的体系 | 推荐方法 | 理由 |
|---|---|---|
| 配体进 AMBER/GAFF 常规 MD、MMGBSA | AM1-BCC | 力场默认,精度/速度平衡 |
| FEP/TI 自由能、静电敏感体系 | RESP(HF/6-31G*) | 电荷质量直接决定 dV/dλ 平滑度 |
| 蛋白、核酸 | 力场内置电荷 | ff14SB/ff19SB 早已拟合好 |
| 百万级虚拟筛选库 | Gasteiger / CM5 | 不可能跑 QM |
| 反应位点/亲电亲核分析 | Hirshfeld / Bader | 关心电子分布本身 |
| 材料(MOF/周期体系) | DDEC6 / REPEAT | 周期体系专用 |
§5. 实战一:RDKit 算 Gasteiger 电荷(三系统通用)
支持系统:Windows / Ubuntu(Linux) / macOS------pip 原生安装,无需编译,三系统命令完全一致。
安装 (三系统同一命令;conda 环境里用 conda install -c conda-forge rdkit 亦可):
bash
pip install rdkit
脚本 (保存为 gasteiger_charges.py,含大分子净电荷漂移修正------Gasteiger 累加电荷在几十个原子以上会漂移,必须均摊回零,见 §9 坑 3):
python
# gasteiger_charges.py --- RDKit 计算 Gasteiger 电荷(含净电荷漂移修正)
# 用法: python gasteiger_charges.py "CC(=O)Oc1ccccc1C(=O)O"
import csv
import sys
from rdkit import Chem
from rdkit.Chem import AllChem
smiles = sys.argv[1]
mol = Chem.MolFromSmiles(smiles)
if mol is None:
sys.exit("SMILES 解析失败")
mol = Chem.AddHs(mol) # 显式氢,电荷逐原子输出
# 净电荷由质子化态决定------算电荷前先确认
net = Chem.GetFormalCharge(mol)
AllChem.ComputeGasteigerCharges(mol) # Gasteiger-Marsili (PEOE) 迭代
rows = [(a.GetIdx(), a.GetSymbol(), float(a.GetProp("_GasteigerCharge")))
for a in mol.GetAtoms()]
# 大分子上 Gasteiger 累加电荷会漂移:把总偏差均摊回每个原子
drift = net - sum(q for _, _, q in rows)
rows = [(i, s, q + drift / len(rows)) for i, s, q in rows]
with open("gasteiger_charges.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["atom_idx", "element", "charge"])
w.writerows(rows)
print(f"net charge: {net:+d} drift corrected: {drift:+.4f} e")
print(f"written gasteiger_charges.csv ({len(rows)} atoms)")
print("idx el charge")
for i, s, q in rows[:8]:
print(f"{i:3d} {s:<2s} {q:+.4f}")
运行与实测输出(Windows 11,Python 3.14,RDKit 2026.09.1):
text
$ python gasteiger_charges.py "CC(=O)Oc1ccccc1C(=O)O"
net charge: +0 drift corrected: +0.0000 e
written gasteiger_charges.csv (21 atoms)
idx el charge
0 C +0.0344
1 C +0.3075
2 O -0.2522
3 O -0.4258
4 C +0.1449
5 C -0.0183
6 C -0.0585
7 C -0.0611
阿司匹林 21 个原子(含氢),净电荷严格为 0;羰基碳 +0.31、羰基氧 −0.25~−0.43,数量级化学上合理。Ubuntu/macOS 输出一致(同一 Python 包)。适用 :库预处理、快速近似、描述符计算;不适用:生产 MD 与结合能计算(极化不足,见 §4 实测对比)。
§6. 实战二:Open Babel 一行命令算电荷(三系统)
支持系统:Windows(conda)/ Ubuntu(apt 或 conda)/ macOS(conda)------无编译。
安装(分系统):
bash
# Ubuntu(apt,发行版仓库自带)
sudo apt install openbabel
# Ubuntu/macOS(conda,版本更新)
conda install -c conda-forge openbabel
# Windows(conda;conda-forge 提供 win-64 包)
conda install -c conda-forge openbabel
三行命令三个用法 (--partialcharge 换模型即可:gasteiger / mmff94 / qeq 等):
bash
# 用法 1:SMILES 直接生成 3D 结构 + Gasteiger 电荷,存 mol2
obabel -:"CC(=O)Oc1ccccc1C(=O)O" -O aspirin_ob.mol2 --gen3d --partialcharge gasteiger
# 用法 2:已有文件重算电荷(sdf 进 sdf 出)
obabel -isdf aspirin.sdf -osdf -O aspirin_q.sdf --partialcharge mmff94
# 用法 3:格式转换 + 电荷一步做(sdf 转 mol2 供 tleap 使用)
obabel -isdf aspirin.sdf -omol2 -O aspirin.mol2 --partialcharge gasteiger
实测(Ubuntu 24.04,Open Babel 3.2.1,用法 1):
text
$ obabel -:"CC(=O)Oc1ccccc1C(=O)O" -O aspirin_ob.mol2 --gen3d --partialcharge gasteiger
1 molecule converted
# mol2 求和验证:21 atoms, net charge = +0.0001
净电荷 +0.0001(浮点尾差,正常)。注意大小写陷阱 :-O(大写)是输出文件名,-o(小写)是格式选项------写反会报 cannot write output format!。适用:批量格式转换顺便给电荷、给对接工具准备输入;精度档位同 §5 的 Gasteiger/mmff94。
§7. 实战三:AmberTools 跑 AM1-BCC(Linux 原生 / Windows 走 WSL)
支持系统 :Ubuntu/Linux 原生(conda-forge)、macOS(conda-forge);Windows 无 win-64 原生包,走 WSL2(Windows Subsystem for Linux)。
| 系统 | 安装路线 |
|---|---|
| Ubuntu / 其他 Linux | conda 直装(下方第 2 步起) |
| macOS | conda 直装,命令同 Linux |
| Windows 10/11 | 先装 WSL2 + Ubuntu,再走同一套 conda 命令 |
Windows 走 WSL 的完整安装链:
powershell
# 第 1 步:Windows PowerShell(管理员)------装 WSL2 + Ubuntu 24.04,装完重启一次
wsl --install -d Ubuntu-24.04
bash
# 第 2 步:进入 WSL(开始菜单打开 Ubuntu-24.04),装 miniforge(国内走清华 TUNA 镜像,直连快)
wget "https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh"
bash Miniforge3-Linux-x86_64.sh -b -p ~/miniforge3
source ~/miniforge3/bin/activate
# 第 3 步:装 AmberTools(Ubuntu/macOS 原生用户从这里开始即可)
conda create -y -n ambertools -c conda-forge ambertools
conda activate ambertools
# 国内网络直连 conda-forge 慢/失败时,用 TUNA 镜像源替代
# conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
输入文件准备 ------用 RDKit 生成加氢 3D 构象的 SDF(注意走 SDF 不走 PDB,PDB 的 CONECT 记录会把双键登记两遍,tleap 直接崩,见 §9 坑 1;RDKit 安装见 §5):
python
# make_aspirin.py --- RDKit 生成加氢 3D 构象(SDF + PDB 双输出,antechamber 用 SDF)
from rdkit import Chem
from rdkit.Chem import AllChem
mol = Chem.AddHs(Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O"))
AllChem.EmbedMolecule(mol, randomSeed=42)
AllChem.MMFFOptimizeMolecule(mol)
w = Chem.SDWriter("aspirin.sdf") # SDF 带键级列,antechamber 推荐
w.write(mol)
w.close()
print(f"net charge {Chem.GetFormalCharge(mol):+d}") # 先确认净电荷
电荷 + 原子类型 + 拓扑三连(Ubuntu 24.04 / WSL2,conda-forge AmberTools 实测):
bash
# AM1-BCC 电荷 + GAFF2 原子类型;-nc 是净电荷(先跑上面脚本确认,阿司匹林为 0)
antechamber -i aspirin.sdf -fi sdf -o aspirin.mol2 -fo mol2 -c bcc -at gaff2 -nc 0 -s 2
# 检查/补全缺失的键角扭转参数
parmchk2 -i aspirin.mol2 -f mol2 -o aspirin.frcmod
tcl
# tleap.in --- 生成 AMBER 拓扑与坐标文件
source leaprc.gaff2
MOL = loadmol2 aspirin.mol2
loadamberparams aspirin.frcmod
check MOL
saveamberparm MOL aspirin.prmtop aspirin.inpcrd
quit
bash
tleap -f tleap.in
实测输出(21 原子小分子,AM1-BCC 全程含 sqm 半经验 QM 单点):
text
$ time antechamber -i aspirin.sdf -fi sdf -o aspirin.mol2 -fo mol2 -c bcc -at gaff2 -nc 0 -s 2
real 0m7.759s # ~8 秒,sqm AM1 单点是主要耗时
# mol2 电荷求和验证:21 atoms, net charge = +0.0000
$ tleap -f tleap.in
Checking 'MOL'.... Unit is OK.
# 产物:aspirin.prmtop(17.9 KB)+ aspirin.inpcrd(778 B)
净电荷严格 +0.0000,Unit is OK 表示参数齐全,prmtop/inpcrd 可直接进 sander/pmemd 跑 MD。参数化大分子(>100 重原子)时 sqm 会明显变慢甚至卡住,处置见 §9 坑 7。
§8. 实战四:RESP 精确拟合(Gaussian / Multiwfn 免费路线)
支持系统 :Gaussian------Linux 集群常见、Windows 有 Gaussian 16W 商业版;Multiwfn------Windows/Linux 官方免费版都可直接下载运行;ORCA(Windows/Linux 免费)、psi4(Linux/macOS,Windows 走 WSL)可作免费 ESP 来源。没有 Gaussian 也能走通:免费 QM 出波函数文件 + Multiwfn 拟合。
路线 A:Gaussian + antechamber(AMBER 生态标准链,Linux/WSL 运行 antechamber)
RESP 的标准理论级别是 HF/6-31G* 单点(构象用你已有的实验/对接构象,route 里不写 opt,见 §9 坑 2):
text
--Link1--
%chk=aspirin.chk
# HF/6-31G* pop=MK iop(6/33=2) iop(6/42=6)
aspirin RESP ESP 单点
0 1
(此处放分子的三维坐标)
pop=MK 在输出里打印静电势点,两个 iop 控制 ESP 打印精度。跑完把 gout 交给 antechamber:
bash
antechamber -i aspirin.gout -fi gout -o aspirin_resp.mol2 -fo mol2 -c resp -nc 0 -at gaff2
路线 B:免费工具链(ORCA/psi4 出波函数 + Multiwfn 拟合)
- 用 ORCA 或 psi4 对同一构象做 HF/6-31G* 单点,导出
.molden文件(Gaussian 用户可直接formchk出.fchk); - Multiwfn 读入波函数文件,菜单
7(布居分析)→18(RESP 拟合),按提示选 ESP 点生成方式,确认后写出RESP.chg(原子 x y z charge 四列); - 把 RESP.chg 的电荷列替换进 mol2(§7 流程里的 aspirin.mol2),后续 parmchk2/tleap 不变。
Linux 下批量跑 Multiwfn 是交互式终端程序,管道喂菜单序号会崩,用 script -q -c 伪终端包装;Windows 直接双击/命令行交互输入即可。
什么时候值得上 RESP:FEP/TI 自由能计算(电荷变化边对静电精度敏感)、发表级别的结合能计算、多构象平均电荷(同一分子多个构象各拟合一次再平均,跨构象更稳)。常规 MD/MMGBSA 用 AM1-BCC 足够。
§9. 踩坑清单:7 个真卡过人的坑
| # | 症状 | 根因 | 修复 |
|---|---|---|---|
| 1 | tleap 报 FATAL: 1-4: cannot add bond 2 3 ... duplicate bond |
PDB 的 CONECT 记录用重复原子序号表示双键,antechamber 逐条登记,mol2 里每个双键出现两遍(本文实测阿司匹林中了 5 处:酯 C=O + 苯环 4 条双键) | 输入改用 SDF(-fi sdf,MDL 键块自带键级列);或喂 PDB 前删掉 CONECT 行 |
| 2 | RESP 电荷对应的构象和晶体/对接姿态对不上 | antechamber 生成的 g16 route 默认带 opt,几何被重新优化还悄悄旋转坐标 |
route 里删掉 opt 只做单点,拟合后核对输入输出坐标一致 |
| 3 | 大分子 Gasteiger 电荷加起来不是整数净电荷 | PEOE 迭代在几十个原子以上累加漂移(实测 108 重原子漂 −7.5 e) | 把总偏差均摊回每个原子(§5 脚本已内置该步) |
| 4 | tleap 中和离子加了一大堆、双电层扭曲 | 净电荷没对上质子化态(HIS 单双质子化、羧酸根、季铵) | 算电荷前用 Chem.GetFormalCharge() 确认净电荷,antechamber -nc 传对值 |
| 5 | 季铵 N+ 体系 antechamber -c bcc 报 sqm 不收敛 | AM1 对某些带电/开壳层电子组态不收敛 | 兜底换 -c gas(Gasteiger),或中性 SMILES 拟合后 tleap 里补形式电荷 |
| 6 | 换了力场后能量/结合能明显异常 | 电荷与 LJ 参数跨力场混用(如 AMBER 电荷 + OPLS LJ) | 电荷、 LJ、组合规则整套一起换,不做混搭 |
| 7 | 大配体(>100 重原子)sqm 跑几十分钟无输出 | antechamber 默认 xmin 迭代到大循环上限才退出 | 等 1 小时仍无进展:改用手写 sqm 输入跑 AM1 Mulliken 电荷(maxcyc=0),或降级 Gasteiger(配 §9 坑 3 修正) |
§10. 选型速查与结语
| 场景 | 方法 | 工具链 | 系统 |
|---|---|---|---|
| 秒级库扫描 | Gasteiger | RDKit / Open Babel | 三系统原生 |
| 格式转换顺便给电荷 | gasteiger/mmff94 | Open Babel | 三系统 |
| GAFF 力场生产 MD | AM1-BCC | AmberTools(antechamber) | Linux/macOS conda;Windows WSL |
| FEP/TI、高精度静电 | RESP (HF/6-31G*) | Gaussian/免费 QM + antechamber/Multiwfn | Gaussian:Linux/Win16W;Multiwfn:三系统 |
| 反应性分析 | Hirshfeld/Bader | Multiwfn/ORCA | 三系统 |
部分电荷是模型定义而非实验量,方法没有绝对对错,只有"配得上你的用途":筛选用 Gasteiger、生产 MD 用 AM1-BCC、自由能用 RESP,并且永远先确认净电荷、永远整套用力场参数。下一步:拿你自己的配体把 §5→§7 这条链跑通,10 分钟内就能拿到带 GAFF2 参数的 prmtop;需要更高静电精度时再回到 §8 换 RESP。
参考来源
- RDKit 官方文档
- Open Babel 官方文档
- AmberTools 官网
- Multiwfn 主页(免费波函数分析程序)
- Cornell WD, Cieplak P, Bayly CI, et al. A Second Generation Force Field for the Simulation of Proteins, Nucleic Acids, and Organic Molecules. JACS 117: 5179, 1995. DOI
- Jakalian A, Bush BL, Jack DB, Bayly CI. Fast, efficient generation of high-quality atomic charges. AM1-BCC model. J. Comput. Chem. 21: 132, 2000. DOI
- Breneman CM, Wiberg KB. Determining atom-centered monopoles from molecular electrostatic potentials. J. Comput. Chem. 11: 361, 1990. DOI
- Marenich AV, Jerome SV, Cramer CJ, Truhlar DG. Charge Model 5. J. Chem. Theory Comput. 2012. DOI
- Gasteiger J, Marsili M. Iterative partial equalization of orbital electronegativity. Tetrahedron 36: 3219, 1980. DOI
系列导航 :专栏全集 分子模拟基础
我的专栏
| 蛋白 / 抗体 / 多肽 / 核酸 | 分子模拟 / 动力学 / 对接 | 药物 / 设计 / 案例 | AI / Agent / 大模型 |
|---|---|---|---|
| 开源蛋白结构预测 | 分子模拟基础 | 小分子药物设计案例 | AI Agent系列 |
| 开源蛋白生成方法实践 | 分子动力学模拟-Amber | 蛋白药物设计案例 | 化学大模型 |
| 开源多肽设计模型 | 分子动力学模拟-Gromacs | 多肽药物设计案例 | 《AI Agent原理与实战》 |
| 开源多肽性质预测 | 分子动力学模拟-OpenMM | 开源小分子生成设计 | CADD中的机器学习模型 |
| DNA/RNA药物设计 | 結合自由能 | 高效计算配置 | 《MCP 入门实战》 |
| siRNA药物设计模型 | UCSF DOCK系列 | 我胡师兄说药 | 《AI入门实战2026》 |
| ASO药物设计模型 | rDock系列 LeDock系列 gnina系列 | 《经典机器学习实战》 |