化学分子Mol2文件格式与使用注意事项

2024-02-25 14:12

本文主要是介绍化学分子Mol2文件格式与使用注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入


前言

Mol2格式文件是一个ASCII 文件,由Tripos公司编制的用于表示化学分子的文件格式,在其药物设计软件套装SYBYL中使用。

Mol2格式文件被分子模拟的众多软件所支持,包括计算化学、分子对接,分子动力学软件,如Gaussian,VMD,UCSF DOCK,rDock,LeDock,MOE,Schrodinger,Openbabel,RDKit,Amber,Gromacs等。

Mol2格式文件可以通过关键词字段记录分子中常见的信息如原子坐标,原子类型,原子电荷,成键信息等,也可以记录晶胞常数、周期性边界条件信息和子结构信息等。

详细信息可参考: Mol2文件格式。

一、Mol2文件示例

在这里插入图片描述
以下是苯环的Mol2格式文件:

#	Name: benzene
#	Creating user name: tom
# 	Creation time: Wed Dec 28 00:18:30 1988
# 	Modifying user name: tom
# 	Modification time: Wed Dec 28 00:18:30 1988@<TRIPOS>MOLECULE
benzene
12 12 1 0 0
SMALL
NO_CHARGES@<TRIPOS>ATOM1 C1        1.0787     0.8803     0.0002 C.ar  1 BENZENE   0.0000 2 H1        1.9151     1.5635     0.0008 H     1 BENZENE   0.0000 3 C2       -1.3021     0.4939     0.0002 C.ar  1 BENZENE   0.0000 4 H2       -2.3118     0.8772     0.0008 H     1 BENZENE   0.0000 5 C3       -0.2231     1.3734    -0.0002 C.ar  1 BENZENE   0.0000 6 H3       -0.3962     2.4394    -0.0008 H     1 BENZENE   0.0000 7 C4       -1.0787    -0.8803    -0.0002 C.ar  1 BENZENE   0.0000 8 H4       -1.9151    -1.5635    -0.0008 H     1 BENZENE   0.0000 9 C5        1.3021    -0.4939    -0.0002 C.ar  1 BENZENE   0.0000 10 H5        2.3118    -0.8772    -0.0008 H     1 BENZENE   0.0000 11 C6        0.2231    -1.3734     0.0002 C.ar  1 BENZENE   0.0000 12 H6        0.3962    -2.4394     0.0008 H     1 BENZENE   0.0000 
@<TRIPOS>BOND1   1   2  1   2   1   5  ar  3   1   9  ar  4   3   4  1   5   3   5  ar  6   3   7  ar  7   5   6  1   8   7   8  1   9   7  11  ar  10   9  10  1   11   9  11  ar  12  11  12  1   
@<TRIPOS>SUBSTRUCTURE1 BENZENE  11 PERM 0 **** ****	0	ROOT

二、 Mol2文件主要结构解释及注意事项

Mol2文件结构特点及使用注意事项:

  1. 允许注释和空行:前5行是注释,第6行是空行
  2. 接下来是4组关键字定义的结构信息,关键字以@<TRIPOS>开头@<TRIPOS>MOLECULE @<TRIPOS>ATOM @<TRIPOS>BOND @<TRIPOS>SUBSTRUCTURE,分别是分子信息,原子,键和子结构。具体解释如后文。
  3. @<TRIPOS>MOLECULE @<TRIPOS>ATOM @<TRIPOS>BOND 对于描述一个分子的结构信息是必须的。
  4. Mol2文件格式相对自由,但在在不同关键字所在的组内有特定的编辑规则。
  5. 但不同软件对于原子类型描述可能有所不同,是某些软件读取出现错误的原因,如GaussView处理芳香系统,VMD里如果加载结构是采用xyz、gro、pdb等不含成键关系信息的坐标文件(虽然pdb有CONECT字段,但VMD不利用),保存出的mol2文件将没有BOND字段,缺失了成键信息,这种情况后续使用会有输入问题;如果在VMD同时加载相应的top或者prmtop等拓扑文件,再保存Mol2则可避免缺失BOND信息。

MOLECULE 字段解释

@<TRIPOS>MOLECULE 字段解释:
mol_name
num_atoms [num_bonds [num_subst [num_feat[num_sets]]]]
mol_type
charge_type
[status_bits
[mol_comment]]
每行信息解释:
第1行:mol_name体系的名字。OpenBabel把转换出mol2文件的源文件的名字作为体系的名字。
第2行:5个数字分别是体系中的原子数、化学键数、子结构数、特征数、set数。后三个可以省略。
子结构可以是体系中的一个部分,比如每个分子、每个残基、蛋白质的每条链等等都可以在@<TRIPOS>SUBSTRUCTURE字段里定义为一个子结构,不超过7个字符。
set是指基于体系中的一些原子/键/子结构根据特定规则和需要定义的集合,可以在@<TRIPOS>SET里具体定义,命名需要不重复。
第3行:mol_type体系的类型。可以为SMALL(小分子)、BIOPOLYMER(生物聚合物)、PROTEIN(蛋白)、NUCLEIC_ACID(核酸)、SACCHARIDE(糖)
第4行:原子电荷。没有计算就是NO_CHARGES,更具计算方法可以是GASTEIGER,MULLIKEN_CHARGES、MMFF94_CHARGES;其他情况USER_CHARGES。

方括号里面的信息项以及该项后面的项可以不提供。

ATOM 字段解释

@<TRIPOS>ATOM 字段,有10列:
atom_id atom_name x y z atom_type [subst_id [subst_name [charge [status_bit]]]]
每列信息解释:
(1)atom_id 原子序号(整数)
(2)atom_name 原子名(字符串)
(3)x坐标(埃)
(4)x坐标(埃)
(5)x坐标(埃)
(6)原子类型(字符串)
(7)原子所属的子结构序号(整数)
(8)原子所述的子结构名字(字符串)
(9)原子电荷(浮点数)
(10)状态位(status_bit):不可改动,由SYBYL根据原子产生,可省略:DSPMOD, TYPECOL, CAP, BACKBONE, DICT, ESSENTIAL, WATER 或者DIRECT.

方括号里面的信息可以不提供,不提供会被填充字符,保证至少9列。
第2列原子名称部分可以完全随意;但第6列原子类型Tripos有统一定义;

如下所示:
在这里插入图片描述

BOND 字段解释

@<TRIPOS>BOND 字段,有5列:
bond_id origin_atom_id target_atom_id bond_type [status_bits]
每列信息解释:
(1)bond_id键的序号(整数)
(2)origin_atom_id第1个原子的序号
(3)target_atom_id第2个原子的序号
(4)bond_type键的类型
(5)同ATOM可省略,用户不可修改。键的类型有以下这些:
• 1 = 单键
• 2 = 双键
• 3 = 三键
• am = 酰胺的N-C键(这种键有一定pi共轭作用,这是为什么mol2格式里特意用am来与单键区分)
• ar = 芳香环(aromatic)上的键,以下简称芳香键
• du = 虚键
• un = 未知/无法判断
• nc = 不相连(俩原子不成键就没必要在BOND字段出现,但可以靠nc强调某两个原子间就是没成键)
绝大多数程序产生的mol2文件里没有du、un、nc。 

SUBSTRUCTURE字段解释

@<TRIPOS>SUBSTRUCTURE:字段解释:
subst_id subst_name root_atom [subst_type [dict_type [chain [sub_type [inter_bonds [status [comment]]]]]]]
方括号里面的信息可以不提供。subst_id子结构编号 (整数)
subst_name (字符串) 
root_atom的编号 (整数)
subst_type:子结构类型(字符串)有:temp, perm, residue, group 或domain

Mol2文件所有关键词如下。进一步的信息可以参考 Mol2文件格式。
在这里插入图片描述


总结

本文提供了Mol2文件格式的解释,帮助初学者加深对结构文件的了解。

参考资料

  1. http://sobereva.com/655
  2. https://download.csdn.net/download/weixin_40192882/88872977?spm=1001.2014.3001.5503

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入

这篇关于化学分子Mol2文件格式与使用注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745723

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND