layout: post title: GROMACS轨迹分析框架(gmx2018.2) categories:
GROMACS提供一种能够实现进行灵活轨迹分析的框架. 这个框架由几个组件组成, 这些组件可以单独使用, 但是在大多数情况下, 最好使用所有组件的功能来充分利用这个框架. 该框架主要的特点如下:
此外也有一些可重复使用的程序可以独立于此框架使用:
关于快速学习如何使用该框架实现分析工具, 请参阅编写轨迹分析工具的示例代码.
轨迹分析框架(轨迹分析)模块提供了将所有部分集成在一起的高级框架. 它为分析工具模块(gmx::TrajectoryAnalysisModule
轨迹分析模块)提供抽象基类, 并为运行这样一个模块作为命令行工具(gmx::TrajectoryAnalysisCommandLineRunner
轨迹分析命令行转换器)提供了代码. 有关更多详细信息, 请参阅分析模板和轨迹分析模块文档.
分析选择的分析和评估(选择)模块提供对选择的支持. 管理选择的大部分工作由命令行运行程序和框架完成, 分析工具代码只有两个大类:
gmx::SelectionOption
选择选项和关联类用于声明工具接受的选择数量和类型(选项支持的详细信息请参阅下文).gmx::Selection
选择对象作为选择选项的值. 这些类为分析过程中的选择提供了评估值. 框架对每帧选项值进行评估, 这样当调用该工具时, 它可以为当前帧访问gmx::Selection
其拥有的选择对象中的选择.选择引擎的概念性概述可在单独的页面上找到:动态选择. 在完整的内部文档中, 此页面还提供了选择实现的概述.
选择模块文档中还提供了选择引擎的更多技术细节. 这对于理解选择的详细工作方式或者是否要在轨迹分析框架之外使用选择代码非常有用.
在分析工具中选择模块还提供进行邻域搜索的功能. 对于全3D周期边界条件的最常见情况, 可实现基于网格的搜索. 有关详细信息, 请参阅gmx::AnalysisNeighborhood
分析邻域. 此类可以独立于其他选择功能使用.
输出数据的可并行化处理(分析数据)模块提供了两件事:
基本概念更详细地解释在一个单独的页面:分析输出数据处理. 分析数据模块文档提供了更多的技术细节.
使用选项的可扩展处理(选项)模块来声明工具的输入数据(通常是命令行选项, 包括输入文件和选择). 分析工具代码为其初始化方法接收gmx::IOptionsContainer
选项容器的实例之一, 并使用它来提供其输入选项. 在basicoptions.h
中声明了基本选项, gmx::SelectionOption
选择选项也以相同的方式使用. 对于每个选项, 该工具声明一个将接收该选项值的局部变量. 在选项从命令行解析之后(通过框架), 工具代码就可以从局部变量中读值. 填充到gmx::IOptionsContainer
选项容器对象中的选项声明也用于向用户提供帮助(也由框架处理). 有关更多详细信息, 请参阅gmx::TrajectoryAnalysisModule
轨迹分析模块文档和选项模块文档.