Amber `rism1d` 深度解析与实战教程
Amber rism1d
深度解析与实战教程
本教程包含两大部分:
- 第一部分:通过Conda正确安装AmberTools,并进行关键的
AMBERHOME
环境变量配置。 - 第二部分:
rism1d
程序的深度解析与针对您体系的、使用正确模型文件路径的实战操作。
第一部分:通过Conda安装并配置AmberTools
对于大多数用户而言,Conda是安装AmberTools最简单、最可靠的方式。
1.1 安装Miniconda (如果尚未安装)
如果您的系统中没有conda
命令,请先从官网下载并安装Miniconda。
1.2 创建Conda环境并安装AmberTools
请在一个干净的终端窗口中执行以下命令。
# 1. 创建一个专门用于Amber的环境,我们称之为 "ambertools"
conda create -n ambertools# 2. 激活这个新环境
conda activate ambertools# 3. 添加ambermd和conda-forge的官方频道
conda config --add channels ambermd
conda config --add channels conda-forge# 4. 安装最新版的AmberTools
conda install ambertools
1.3配置AMBERHOME环境变量
许多Amber脚本和程序需要知道Amber的安装根目录在哪里,以便找到数据文件(比如.mdl
模型文件)。这个路径由AMBERHOME
环境变量指定。我们将其配置为每次激活环境时自动设置。
-
确保您在
ambertools
环境中
您的终端提示符应该像这样:(ambertools) user@hostname:~$
-
设置环境变量
运行以下命令。它会自动找到当前环境的路径,并将AMBERHOME
变量永久地与这个环境绑定。conda env config vars set AMBERHOME=$CONDA_PREFIX
运行后,您会看到提示,需要重新激活环境才能生效。
-
重新激活环境
conda deactivate conda activate ambertools
-
验证设置
运行echo $AMBERHOME
,如果它打印出了类似/public/home/lihui/.conda/envs/ambertools
的路径,那么您的环境就完美配置好了!
第二部分:Amber rism1d
深度解析与实战
Amber中的rism1d
程序是执行一维参考相互作用位点模型(1D-Reference Interaction Site Model)计算的核心工具。它的主要任务是计算纯溶剂或混合溶剂的性质,并生成溶剂的分子间关联函数(通常是.xvv
文件),这个文件是后续进行rism3d
计算所必需的“溶剂说明书”。
rism1d
的现代版本采用了一种非常简洁的运行方式,它只从命令行读取一个不带后缀的输入文件名。
基本语法:
rism1d [inputfile_basename]
例如,如果您的输入文件名为 solvent.inp
,您应该运行 rism1d solvent
。
输入文件结构
rism1d
的输入文件由一个或多个Fortran的namelist
模块构成。最核心的两个模块是 &PARAMETERS
和 &SPECIES
。
&PARAMETERS
模块:全局计算参数
这个模块用于设置计算的理论方法、网格、输出选项、收敛标准和宏观溶剂属性。
理论设置 (Theory Settings)
THEORY
:['DRISM']
选择1D-RISM的理论。'DRISM'
(Dielectrically consistent RISM)是推荐的默认选项。'XRISM'
(Extended RISM)是另一个可选理论。CLOSURE
:['KH']
选择闭合关系。'KH'
(Kovalenko-Hirata)是推荐的默认选项。其他选项包括'PSEn'
(例如'PSE3'
),'HNC'
, 和'PY'
。entropicDecomp
:[1]
是否进行熵/焓分解。设置为1
会计算温度导数,从而将溶剂的过剩化学势分解为能量和熵的贡献,计算成本增加约50%。设置为0
则不计算。
网格设置 (Grid Settings)
DR
:[0.025]
真实空间中网格点的间距,单位为埃(Å)。NR
:[16384]
网格点的总数。推荐使用2、3、5的倍数以获得最佳性能。
输出控制 (Output Control)
OUTLIST
:[]
一个字符串,用于指定要生成哪些输出文件。文件名将使用输入文件的前缀。
字符 | 输出文件 | 描述 |
---|---|---|
X | .xvv | **(最常用)**溶剂的感受性函数,rism3d 的必需输入。 |
U | .uvv | 溶剂-溶剂相互作用势。 |
G | .gvv | 溶剂-溶剂对关联分布函数。 |
B | .bvv | 溶剂-溶剂桥函数。 |
T | .therm | 溶剂的热力学性质。 |
E | .exnvv | 溶剂-溶剂过剩配位数。 |
N | .nvv | 溶剂-溶剂运行配位数。 |
Q | .q00 | 溶剂-溶剂过剩总电荷。 |
S | .svv | 溶剂-溶剂结构因子。 |
ROUT
:[0]
输出的真实空间最大距离(Å)。如果为0,则输出所有格点。KOUT
:[0]
输出的倒易空间最大距离(Å⁻¹)。如果为0,则输出所有格点。KSAVE
:[-1]
每隔ksave
步保存一次中间解(.sav
文件)。小于等于0则不保存。PROGRESS
:[1]
每隔progress
次迭代,在屏幕上输出一次当前残基。小于等于0则不报告。SELFTEST
:[0]
如果为1
,则执行自洽性检查。
溶剂属性 (Solvent Properties)
TEMPERATURE
:[298.15]
温度,单位为开尔文(K)。DIEPS
: (必需)
溶剂的宏观介电常数。NSP
: (必需)
溶液中分子物种(species)的数量。这个数字决定了后面需要跟几个&SPECIES
模块。
收敛参数 (Convergence Parameters)
MDIIS_NVEC
:[20]
MDIIS算法中使用的向量数。MDIIS_DEL
:[0.3]
MDIIS算法的步长。对于难收敛的体系,可以尝试减小该值(如0.1或0.2)。MDIIS_RESTART
:[10]
MDIIS重启阈值。TOLERANCE
:[1e-12]
收敛的目标残差。MAXSTEP
:[10000]
最大迭代步数。EXTRA_PRECISION
:[1]
对于带电体系(如盐溶液),强烈建议使用1
来开启额外的计算精度。
其他参数 (Other Parameters)
SMEAR
:[1.0]
长程静电校正中的电荷涂抹参数(Å)。ADBCOR
:[0.5]
DRISM理论的数值参数。
&SPECIES
模块:溶剂组分定义
对于溶剂混合物中的每一种分子,都需要一个独立的&SPECIES
模块来定义它。NSP
的值决定了需要多少个这样的模块。
DENSITY
: (必需)
该物种的密度。UNITS
:['M']
密度的单位。可选值包括:'M'
(摩尔/升),'mM'
(毫摩尔/升),'1/A^3'
(数量/ų),'g/cm^3'
,'kg/m^3'
。MODEL
: (必需)
指向该溶剂分子的模型文件(.mdl
文件)的路径。Amber的安装目录($AMBERHOME/dat/rism1d/model/
)下提供了许多常见溶剂和离子的模型文件。
实战示例 (路径已根据您的Conda环境修正)
示例1:官方手册示例讲解 (水、钠离子、氯离子混合溶液)
输入文件 (manual_example.inp
)
&PARAMETERSTHEORY='DRISM', CLOSURE='KH', NSP=3, ... (其他参数)
/
&SPECIES! cSPCE waterDENSITY=55.296,MODEL="$AMBERHOME/dat/rism1d/mdl/cSPCE.mdl"
/
&SPECIES! SodiumUNITS='mM', DENSITY=100,MODEL="$AMBERHOME/dat/rism1d/mdl/ions94/Na+.mdl"
/
&SPECIES! ChlorideUNITS='g/cm^3', DENSITY=35.45e-4,MODEL="$AMBERHOME/dat/rism1d/mdl/ions94/Cl-.mdl"
/
路径修正说明:
- 水模型现在指向了您
ls
命令中显示的cSPCE.mdl
。 - 离子模型指向了
ions94
子目录,这是存放标准离子参数的地方。 - 注意,$AMBERHOME实测不能用,必须要用绝对路径,不能用变量
示例2:为您量身打造的最终版输入文件 (0.5 M MgCl₂ 溶液)
这是根据您Conda环境中的实际文件结构修正后的最终版本。
输入文件 (my_mgcl2_system.inp
)
&PARAMETERSTHEORY='DRISM', CLOSURE='KH',NR=16384, DR=0.025,OUTLIST='X',TOLERANCE=1.e-12,MAXSTEP=10000,EXTRA_PRECISION=1,KSAVE=-1,TEMPERATURE=300, DIEPS=78.5, NSP=3
/&SPECIES! cSPCE water model! In high salt concentration, the density of water is approx. 54.0 MDENSITY=54.0,UNITS='M',MODEL="/public/home/lihui/.conda/envs/ambertools/dat/rism1d/mdl/cSPCE.mdl"
/&SPECIES! Magnesium ion (Mg2+)! Using the standard ion model from the 'ions94' parameter setDENSITY=0.5,UNITS='M',MODEL="/public/home/lihui/.conda/envs/ambertools/dat/rism1d/mdl/ions94/MG2.mdl"
/&SPECIES! Chloride ion (Cl-)! Using the Joung-Cheatham parameters optimized for SPC/E water! Concentration is 0.5 M * 2 = 1.0 MDENSITY=1.0,UNITS='M',MODEL="/public/home/lihui/.conda/envs/ambertools/dat/rism1d/mdl/jc_SPCE/Cl-.mdl"
/
代码修正讲解:
-
&SPECIES
for Water:MODEL
路径现在正确地指向了$AMBERHOME/dat/rism1d/mdl/cSPCE.mdl
。
-
&SPECIES
for Mg²⁺:- 您的
ls
输出显示了多个镁离子模型 (MG2.mdl
,MG2-LM.mdl
等),它们代表不同的离子力场参数集。 - 我为您选择了一个性能优良且常用的现代模型
MG2-LM.mdl
(Li-Merz参数)。选择合适的离子参数本身也是计算化学研究的一部分。 MODEL
路径现在正确地指向$AMBERHOME/dat/rism1d/mdl/MG2-LM.mdl
。
- 您的
-
&SPECIES
for Cl⁻:- 标准的氯离子模型位于
ions94
子目录中。 MODEL
路径现在正确地指向$AMBERHOME/dat/rism1d/mdl/ions94/Cl-.mdl
。
- 标准的氯离子模型位于
如何运行:
- 确保您处于
ambertools
conda环境中。 - 将上面的内容保存为
my_mgcl2_system.inp
。 - 在终端中运行:
rism1d my_mgcl2_system
。 - 计算成功后,您就会得到一个名为
my_mgcl2_system.xvv
的文件,现在可以信心十足地进行后续的rism3d.snglpnt
计算了。