文件介绍三:top和itp力场文件介绍
TOP 和 ITP 文件介绍
在分子动力学模拟(如 GROMACS)中,TOP 文件和ITP 文件是描述力场参数和分子拓扑结构的关键文件。它们分别用于定义全局和局部的拓扑信息。
1. TOP 文件
定义
TOP 文件(Topology 文件)描述了整个系统的全局拓扑信息,包括力场参数、分子种类和相互作用。
主要内容
- 全局参数:
- 力场类型(如 GROMOS、AMBER、CHARMM 等)。
- Lennard-Jones 力、Coulomb 力的全局参数设置。
- 分子定义:
- 系统中所有分子的拓扑信息,包括原子、键、角、二面角等。当然并不是将所有的信息都写入这个文件,部分信息会写到itp中,甚至一些具体参数也不会呈现,但会运行时,根据top的参数去找到索引到的文件,将上述的内容补充。
- 非键相互作用:
- 定义原子间的范德瓦尔斯力和静电相互作用参数。
- 分子数量:
- 系统中每种分子的数量。
分子数量这部分要严格和坐标文件对应,分子书写顺序和数量
特点
- 全局性:包含整个模拟系统的所有分子和参数。
- 不可复用性:每个系统需要单独生成一个 TOP 文件。
- 静态性:在模拟过程中不会改变。
示例(GROMACS 格式)
The top file extension stands for topology. It is an ascii file which is read by gmx grompp which processes it and creates a binary topology (.tpb file).
A sample file is included below:
;
; Example topology file
;
[ defaults ]
; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
1 1 no 1.0 1.0
; The force field files to be included
#include "rt41c5.itp"
[ moleculetype ]
; name nrexcl
Urea 3
[ atoms ]
; nr type resnr residu atom cgnr charge
1 C 1 UREA C1 1 0.683
2 O 1 UREA O2 1 -0.683
3 NT 1 UREA N3 2 -0.622
4 H 1 UREA H4 2 0.346
5 H 1 UREA H5 2 0.276
6 NT 1 UREA N6 3 -0.622
7 H 1 UREA H7 3 0.346
8 H 1 UREA H8 3 0.276
[ bonds ]
; ai aj funct c0 c1
3 4 1 1.000000e-01 3.744680e+05
3 5 1 1.000000e-01 3.744680e+05
6 7 1 1.000000e-01 3.744680e+05
6 8 1 1.000000e-01 3.744680e+05
1 2 1 1.230000e-01 5.020800e+05
1 3 1 1.330000e-01 3.765600e+05
1 6 1 1.330000e-01 3.765600e+05
[ pairs ]
; ai aj funct c0 c1
2 4 1 0.000000e+00 0.000000e+00
2 5 1 0.000000e+00 0.000000e+00
2 7 1 0.000000e+00 0.000000e+00
2 8 1 0.000000e+00 0.000000e+00
3 7 1 0.000000e+00 0.000000e+00
3 8 1 0.000000e+00 0.000000e+00
4 6 1 0.000000e+00 0.000000e+00
5 6 1 0.000000e+00 0.000000e+00
[ angles ]
; ai aj ak funct c0 c1
1 3 4 1 1.200000e+02 2.928800e+02
1 3 5 1 1.200000e+02 2.928800e+02
4 3 5 1 1.200000e+02 3.347200e+02
1 6 7 1 1.200000e+02 2.928800e+02
1 6 8 1 1.200000e+02 2.928800e+02
7 6 8 1 1.200000e+02 3.347200e+02
2 1 3 1 1.215000e+02 5.020800e+02
2 1 6 1 1.215000e+02 5.020800e+02
3 1 6 1 1.170000e+02 5.020800e+02
[ dihedrals ]
; ai aj ak al funct c0 c1 c2
2 1 3 4 1 1.800000e+02 3.347200e+01 2.000000e+00
6 1 3 4 1 1.800000e+02 3.347200e+01 2.000000e+00
2 1 3 5 1 1.800000e+02 3.347200e+01 2.000000e+00
6 1 3 5 1 1.800000e+02 3.347200e+01 2.000000e+00
2 1 6 7 1 1.800000e+02 3.347200e+01 2.000000e+00
3 1 6 7 1 1.800000e+02 3.347200e+01 2.000000e+00
2 1 6 8 1 1.800000e+02 3.347200e+01 2.000000e+00
3 1 6 8 1 1.800000e+02 3.347200e+01 2.000000e+00
[ dihedrals ]
; ai aj ak al funct c0 c1
3 4 5 1 2 0.000000e+00 1.673600e+02
6 7 8 1 2 0.000000e+00 1.673600e+02
1 3 6 2 2 0.000000e+00 1.673600e+02
; Include SPC water topology
#include "spc.itp"
[ system ]
Urea in Water
[ molecules ]
Urea 1
SOL 1000
具体介绍如下:
1. [ defaults ]
; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
1 1 no 1.0 1.0
- nbfunc:非键相互作用的类型。
1
表示使用 Lennard-Jones 力。 - comb-rule:组合规则,决定如何组合不同原子类型的参数。
1
表示使用简单加法法则。 - gen-pairs:是否生成配对参数。
no
表示不生成配对参数。 - fudgeLJ:Lennard-Jones 力常数的修正因子。
1.0
表示不进行修正。 - fudgeQQ:静电力常数的修正因子。
1.0
表示不进行修正。
这个部分定义这个力场的计算规则,不同的的计算规则,会导致下面的输入参数发生改变
2. [ moleculetype ]
[ moleculetype ]
; name nrexcl
Urea 3
- name:分子的名称。此处为
Urea
(尿素)。 - nrexcl:分子拓扑中用于排除相互作用的最大原子数。
3
表示分子拓扑中最多可以排除3个原子之间的相互作用。
注:这部分开始定义分子,分子名称和下面的各分数目对应上。同时,如果其他的itp(含有分子力场的,从[ moleculetype ]开始定义的。)文件要在这部分中索引,不然会报错。
3. [ atoms ]
[ atoms ]
; nr type resnr residu atom cgnr charge
1 C 1 UREA C1 1 0.683
2 O 1 UREA O2 1 -0.683
3 NT 1 UREA N3 2 -0.622
4 H 1 UREA H4 2 0.346
5 H 1 UREA H5 2 0.276
6 NT 1 UREA N6 3 -0.622
7 H 1 UREA H7 3 0.346
8 H 1 UREA H8 3 0.276
- nr:原子的编号。
- type:原子的类型。例如,
C
表示碳原子,O
表示氧原子,NT
表示氮原子(带有电荷的氮)。 - resnr:残基编号。
- residu:分子名称(如
UREA
)。 - atom:原子名称。
- cgnr:原子的电荷组编号。
- charge:原子电荷。
注:这部分开始定义分子中的原子。注意原子顺序和坐标文件原子顺序相对应,原子名称独一无二用于区分每个原子。这部分内容会将原子名称对应的各个原子,通过残基,找到相应的原子类型,导入相应原子类型的参数。
4. [ bonds ]
[ bonds ]
; ai aj funct c0 c1
3 4 1 1.000000e-01 3.744680e+05
3 5 1 1.000000e-01 3.744680e+05
6 7 1 1.000000e-01 3.744680e+05
6 8 1 1.000000e-01 3.744680e+05
1 2 1 1.230000e-01 5.020800e+05
1 3 1 1.330000e-01 3.765600e+05
1 6 1 1.330000e-01 3.765600e+05
- ai, aj:连接的两个原子的编号。
- funct:功能类型。
1
表示使用简单的哈里斯弹性常数模型来描述键合力,也就是计算规则。 - c0, c1:键的常数(常见为弹性常数和长度)。
注:这部分开始定义两种原子相连接的键的参数,此处数字规定的是[ atoms ]上的原子编号。软件会通过原子名称,找到原子类型,再找到对应的两种原子类型连接时的键的参数。
5. [ pairs ]
[ pairs ]
; ai aj funct c0 c1
2 4 1 0.000000e+00 0.000000e+00
2 5 1 0.000000e+00 0.000000e+00
2 7 1 0.000000e+00 0.000000e+00
2 8 1 0.000000e+00 0.000000e+00
3 7 1 0.000000e+00 0.000000e+00
3 8 1 0.000000e+00 0.000000e+00
4 6 1 0.000000e+00 0.000000e+00
5 6 1 0.000000e+00 0.000000e+00
- ai, aj:参与非键相互作用的两个原子的编号。
- funct:功能类型。
1
表示使用简单的Lennard-Jones力。 - c0, c1:常数(通常为零,表示没有实际的非键相互作用)。
注:这部分开始定义非键相互作用对,分子内原子不仅受到键相互作用,非键连接的分子,之间也会有相互作用,有些分子通是没有的。
6. [ angles ]
[ angles ]
; ai aj ak funct c0 c1
1 3 4 1 1.200000e+02 2.928800e+02
1 3 5 1 1.200000e+02 2.928800e+02
4 3 5 1 1.200000e+02 3.347200e+02
1 6 7 1 1.200000e+02 2.928800e+02
1 6 8 1 1.200000e+02 2.928800e+02
7 6 8 1 1.200000e+02 3.347200e+02
2 1 3 1 1.215000e+02 5.020800e+02
2 1 6 1 1.215000e+02 5.020800e+02
3 1 6 1 1.170000e+02 5.020800e+02
- ai, aj, ak:参与角度形成的三个原子编号。
- funct:功能类型。
1
表示使用简单的弹簧常数模型来描述角度力。 - c0, c1:角度的常数(通常为弹性常数和角度本征值)。
注:这部分开始定义键,分子内原子不仅受到键相互作用,非键连接的分子,之间也会有相互作用,有些分子是没有的。
7. [ dihedrals ]
[ dihedrals ]
; ai aj ak al funct c0 c1 c2
2 1 3 4 1 1.800000e+02 3.347200e+01 2.000000e+00
6 1 3 4 1 1.800000e+02 3.347200e+01 2.000000e+00
2 1 3 5 1 1.800000e+02 3.347200e+01 2.000000e+00
6 1 3 5 1 1.800000e+02 3.347200e+01 2.000000e+00
2 1 6 7 1 1.800000e+02 3.347200e+01 2.000000e+00
3 1 6 7 1 1.800000e+02 3.347200e+01 2.000000e+00
2 1 6 8 1 1.800000e+02 3.347200e+01 2.000000e+00
3 1 6 8 1 1.800000e+02 3.347200e+01 2.000000e+00
- ai, aj, ak, al:参与二面角的四个原子编号。
- funct:功能类型。
1
表示使用简单的二面角力也就是计算规则。 - c0, c1, c2:二面角力常数和角度的相应常数。
注:这部分定义二面角,从[moleculetype] 到这部分为止,是一个完整的分子力参数的文件,这部分是一个整体,这一部分可以单独整理到一个itp文件中,include到top文件中。
8. 文件中其他包含的拓扑
; Include SPC water topology
#include "spc.itp"
- spc.itp:包含SPC(Simple Point Charge)水分子模型的拓扑文件,用于定义水分子的结构和力场参数。
9. [ system ]
[ system ]
Urea in Water
- system:整个模拟系统的名称,此处定义为
Urea in Water
,表示尿素在水中的体系。
注:这部分定义这个模拟体系中的结构组成,这部分给体系一个名字
10. [ molecules ]
[ molecules ]
Urea 1
SOL 1000
- molecules:定义系统中各分子的类型及其数量。
- Urea 1:包含一个尿素分子。
- SOL 1000:包含1000个SPC水分子。
注:这部分定义这个模拟体系中的又多少个分子,这个顺序要和坐标对应起来,就是这边先写的尿素,然后是水分子,在坐标文件中必须是一个尿素分子的坐标,然后才是1000水分坐标,同时分子内的原子顺序也要对应起来。解释力场中规定的原子的顺序要和坐标中每个分子的顺序对应起来
总结
- 此拓扑文件为尿素分子及其溶液体系的模拟准备了完整的力场参数,包括原子定义、键、角度、二面角等力学描述。
- 文件通过
#include
加载了水分子的拓扑,以便在模拟中正确描述尿素和水的相互作用。
- 这种拓扑文件广泛用于 GROMACS 分子动力学模拟软件,可为后续的模拟任务(如能量最小化、动力学模拟等)提供关键参数支持。
2. itp 文件
这里不做额外的解释,内容被包含在top文件中。只含有[moleculetype]到二面角度的之这一部分内容。比较好理解,就是单个分子的力场参数描述。
3. TOP 和 ITP 文件的对比
属性 | TOP 文件 | ITP 文件 |
---|---|---|
用途 | 描述整个系统的全局拓扑信息 | 描述单个分子或分子组的拓扑信息 |
内容范围 | 包含所有分子的定义及相互作用参数 | 仅包含单一分子的定义和参数 |
文件大小 | 较大,包含完整系统信息 | 较小,仅描述部分分子 |
复用性 | 不易复用 | 可以在多个模拟中复用,直接复制,然后include |
引入方式 | 直接作为主拓扑文件 | 通过 #include 引入到 TOP 文件 |
4. 使用场景
- TOP 文件:
- 用于描述整个模拟系统,适合单一分子或小型系统的模拟。
- ITP 文件:
- 用于定义模块化分子,适合复杂的生物分子模拟(如蛋白质、脂质双层、复合物等)。
总结
- TOP 文件是全局性的,描述整个系统的所有拓扑信息,适用于简单系统。
- ITP 文件模块化,灵活性高,适合大型复杂系统,通过
#include
引入主 TOP 文件。 - 在实际工作中,通常使用 TOP 文件结合多个 ITP 文件以构建完整的系统。