化学分子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>ATOM
  1 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>BOND
  1   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>SUBSTRUCTURE
  1 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 …点击进入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/407952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Siamfc论文中文翻译(详细!)

Fully-Convolutional Siamese Networks for Object Tracking 用于对象跟踪的Siamese网络 说明 建议对照siamfc&#xff08;2021版&#xff09;原文阅读&#xff0c;翻译软件翻译出来的效果不好&#xff0c;整体阅读体验不佳&#xff0c;所以我对译文重新进行了整理&#xff0…

【ArcGIS】利用高程进行坡度分析:区域面/河道坡度

在ArcGIS中利用高程进行坡度分析 坡度ArcGIS实操案例1&#xff1a;流域面上坡度计算案例2&#xff1a;河道坡度计算2.1 案例数据2.2 操作步骤 参考 坡度 坡度是地表单元陡缓的程度&#xff0c;通常把坡面的垂直高度和水平距离的比值称为坡度。 坡度的表示方法有百分比法、度数…

02|索引优化

数据准备 创建联合索引 KEY idx_name_age_position (name,age,position) USING BTREE CREATE TABLE employees (id int(11) NOT NULL AUTO_INCREMENT,name varchar(24) NOT NULL DEFAULT COMMENT 姓名,age int(11) NOT NULL DEFAULT 0 COMMENT 年龄,position varchar(20) NO…

在线程调用的函数中使用pthread_exit同样会将线程退出

如上图所示&#xff0c;在func()函数中调用pthread_exit&#xff0c;同样可以退出当前线程&#xff1b; 类似的&#xff0c;如果func&#xff08;&#xff09;函数中调用exit&#xff0c;可以直接退出整个进程。 return 是返回到函数调用处&#xff1b; pthread_exit是退出…

解决easyExcel模板填充时转义字符\{xxx\}失效

正常我们在使用easyExcel进行模板填充时&#xff0c;定义的变量会填充好对应的实际数据&#xff0c;未定义的变量会被清空&#xff0c;但是如果这个未定义的变量其实是模板的一部分&#xff0c;那么清空了就出错了。 在这张图里&#xff0c;上面的是模板填充后导出的文件&…

Java基础之lambda表达式(五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【Java程序员面试专栏 数据结构】六 高频面试算法题:字符串

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊数组,包括数组合并,滑动窗口解决最长无重复子数组问题,图形法解下一个排列问题,以及一些常见的二维矩阵问题,所以放到一篇Blog中集中练习 题目…

联想开天昭阳N4620Z笔记本如何恢复出厂麒麟操作系统(图解)

联想开天昭阳N4620Z笔记本简单参数&#xff1a; 中央处理器&#xff1a;KX-6640MA G2 内存&#xff1a;8GB 固态硬盘&#xff1a;512GB SSD 显示器&#xff1a;14.0”FHD 电池&#xff1a;4Cell 操作系统&#xff1a;麒麟KOS中文RTM&#xff08;试用版&#xff09; 此款笔…

关于Arrays类中asList(T... a)泛型参数辨析

前提 我们需要知道两点 &#xff08;1&#xff09;T指的是泛型类型&#xff0c;它只能是引用类型&#xff0c;何为引用类型&#xff1f;在java中除了基本数据类型&#xff08;如byte、short、int、long、float、double、boolean、char&#xff09;之外的所有类型都是引用类型…

【Flutter/Android】运行到安卓手机上一直卡在 Running Gradle task ‘assembleDebug‘... 的终极解决办法

方法步骤简要 查看你的Flutter项目需要什么版本的 Gradle 插件&#xff1a; 下载这个插件&#xff1a; 方法一&#xff1a;浏览器输入&#xff1a;https://services.gradle.org/distributions/gradle-7.6.3-all.zip 方法二&#xff1a;去Gradle官网找对应的版本&#xff1a;h…

Uniapp小程序开发-底部tabbar的开发思路

文章目录 前言一、uniapp 实现 tabbar二、图标使用网络图片后端返回tabbar信息uniapp方式中的setTabBarItem 总结 前言 记录uniapp 开发小程序的底部tabbar &#xff0c;这里讨论的不是自定义tabbar的情况。而是使用wx.setTabBarItem(Object object) 这个api的情况。关于custo…

IT廉连看——C语言——分支语句

IT廉连看—分支语句 一、什么是语句 C语句可分为以下五类&#xff1a; 表达式语句 函数调用语句 控制语句 复合语句 空语句 本周后面介绍的是控制语句。 控制语句用于控制程序的执行流程&#xff0c;以实现程序的各种结构方式&#xff0c;它们由特定的语句定义符组成&…

OT 安全解决方案:探索技术

IT 和 OT 安全的融合&#xff1a;更好的防御方法 OT 安全解决方案下一个时代&#xff1a; 为了应对不断升级的威胁形势&#xff0c;组织认识到迫切需要采用统一的信息技术 (IT) 和运营技术 (OT) 安全方法。IT 和 OT 安全的融合代表了一种范式转变&#xff0c;承认这些传统孤立领…

了解 JavaScript 中的重放攻击和复现攻击

在网络安全领域&#xff0c;重放攻击&#xff08;Replay Attack&#xff09;和复现攻击&#xff08;Playback Attack&#xff09;是一些可能导致安全漏洞的攻击形式。这两种攻击类型涉及在通信过程中再次发送已经捕获的数据&#xff0c;以达到欺骗系统的目的。本文将介绍 JavaS…

vue3 实现 el-pagination页面分页组件的封装以及调用

示例图 一、组件代码 <template><el-config-provider :locale"zhCn"><el-pagination background class"lj-paging" layout"prev, pager, next, jumper" :pager-count"5" :total"total":current-page"p…

leetcode单调栈

739. 每日温度 请根据每日 气温 列表&#xff0c;重新生成一个列表。对应位置的输出为&#xff1a;要想观测到更高的气温&#xff0c;至少需要等待的天数。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 例如&#xff0c;给定一个列表 temperatures [73, …

计算机组成原理(14)----总线

目录 一.总线的物理实现 二.总线概述 三.总线的特性 四.总线的分类 &#xff08;1&#xff09;按数据传输格式分类 •串行总线 •并行总线 &#xff08;2&#xff09;按总线功能分类 •片内总线 •系统总线 系统总线的结构 •通信总线 &#xff08;3&#xff09;按…

激光雷达反光板算法总结

1 高反特征提取 首先,从雷达原始数据,提取到高反点;根据雷达的规格书提供的不同材料的强度,设定合适的阈值;;更优的方法是根据距离设定不同的阈值 2 反光板及反光柱的聚类 根据高反点是否连续进行聚类,同时结合距离及雷达的角度分辨率,计算出针对不同尺寸的反光板或反…

Redis 有哪些架构模式?讲讲各自的特点

单机版模式 特点&#xff1a;简单 问题&#xff1a; 1、内存容量有限 2、处理能力有限 3、无法高可用。 主从复制 Redis 的复制&#xff08;replication&#xff09;功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品&#xff0c;其中被复制的服务器为主服…

STL容器之list

​ 1.封装除了对数据的保护、更好地管理数据之外&#xff0c;还有实现了对上层的统一&#xff1b; ​ 2.类模板参数的不同&#xff0c;一方面是为了实例化出来不同的类&#xff0c;另一方面是为了实现类的成员函数的不同&#xff1b; 一、认识list ​ 1.list是一种带头双向循…