POVME3使用的一些前置处理及 example 所用 .ini 翻译

发布于:2022-12-07 ⋅ 阅读:(696) ⋅ 点赞:(0)

Examples

Basic example

此示例显示了POVME的“经典”操作,使用几何定义的包含球体。POVME运行所需的最小输入是输入轨迹名称和包含区域。我们建议您使用VMD可视化结果。使用VMD通过以下命令打开POVME输出:

vmd -m POVME_test_run/example_volume_trajectory.pdb 4NSS.pdb

在VMD的 Graphics–>Representations 菜单下,使用 VDW 显示 0:POVME_volume_trajectory.pdb(并考虑将“球体比例”值减少到0.3左右)。

配置文件 sample_input.ini 内容如下(各选项注释附后):

# First, we need to define a point field that entirely encompasses all trajectory pockets.
GridSpacing            1.0                                
InclusionSphere  65.0 98.0 50.0 16.0                
InclusionSphere  -100.0 -100.0 -100.0 10.0          
InclusionBox     100.0 100.0 100.0 10.0 10.0 10.0   
InclusionCylinder  65.0 98.0 50.0 1.0 1.0 1.0 16.0 10.0  
ExclusionSphere  -100.0 -100.0 -100.0 10.0           
ExclusionBox     100.0 100.0 100.0 10.0 10.0 10.0    						  
# Saving and loading the POVME points of the pocket-encompassing region(optional).
SavePoints            true 
LoadPointsFilename    points.pdb.npy                     
# Load the PDB trajectory file
PDBFileName                 4NSS.pdb                      
# Tell POVME how to identify points that are within the binding pocket.
DistanceCutoff              1.09                          
ConvexHullExclusion         first                         
SeedSphere  67.0 102.0 57.0 4.0                            
ContiguousPointsCriteria    3                             
# Tell POVME how to perform the calculations.
NumProcessors               1                              
# Tell POVME how to save the output
OutputFilenamePrefix          ./POVME_test_run/example_   
CompressOutput                false                       

GridSpacing: 相邻格点之间的距离,单位为埃。降低这个数字可以提高精度,但会牺牲计算时间。

InclusionSphere: 在某处添加一个包含口袋的球形的点阵区域。以InclusionSphere 65.0 98.0 50.0 16.0为例:(65.0 98.00 50.0)为球体中心,半径为16.0,(65.0 98.00 50.0)是 sample_input.ini 中提到的 PDB 轨迹文件酶活性位点的位置。第二个InclusionSphere设置将添加第二个球体,此球体仅用于演示目的(不会起到计算作用,当然如果你确实同时有第二个需要计算的口袋,那么就把它设置为相应的坐标和半径)。点(-100.0 -100.0 -100.0 -100.0)实际上离 4NSS.pdb 蛋白结构很远。

InclusionBox: 在某处添加一个包含口袋的矩形六面体(长方体)的点阵区域。例如:InclusionBox 100.0 100.0 100.0 10.0 10.0 10.0分别以 x、y 和 z 坐标的(100.0 100.0 100.0)为中心,延伸边长为10埃。同样,这个盒子离 4NSS 很远结构,此处(不代表你不能使用这个形状)仅用于演示目的。

InclusionCylinder: 在某处添加一个包含口袋的圆柱体的点阵区域。例如:InclusionCylinder 65.0 98.0 50.0 1.0 1.0 1.0 16.0 10.0以(65.0 98.0 50.0)为中心,其轴沿向量[1.0 1.0 1.0],半径为16.0埃,高度为10.0埃。

ExclusionSphere: 移除功能,用法类似于InclusionSphere

ExclusionBox: 移除功能,用法类似于InclusionBox

SavePoints: 您可以选择将点阵保存到 PDB 文件。如您所想,确定一组合适的添加或移除点阵的球体和长方体来包围口袋是一项挑战。不使用上述指令的另一种方法是: 定义初始几何形状,使用类似 VMD 的程序将该几何形状和蛋白质可视化,然后根据需要迭代添加新的包含和排除区域。此外,如果点阵包含许多点,则生成该点阵可能需要大量计算。如果要将同一点阵用于多个 POVME 运行,使用已保存的点阵副本而不是从头开始重复生成,会更有效(当然,你得确保该点阵对应的口袋位置一致)。请注意,POVME 还保存了一个 NPY 文件,该文件包含与 PDB 文件相同的数据,但可以在后续 POVME 运行中更快地加载。点阵 PDB 文件将保存到 {PREFIX}point_field.pdb(请参阅下面的 OutputFilenamePrefix)。此外,如果指定连续的口袋种子区域(请参见下面的 ContigousPocketSeedSphereContigousPocketSeedBox),POVME 还会将这些点保存到 {PREFIX}contigous_pocket_seed_points.pdb。

LoadPointsFilename: 如果不想使用上面的指令(InclusionSphere之类)生成点阵,你可以选择加载已有点阵。请注意,您应该使用 .pdb.npy 文件,而不是 .pdb 文件。

PDBFileName: 加载 PDB 轨迹文件。

DistanceCutoff: 在任何受体原子范德华表面这个距离内的任何点都不会被视为口袋体积的一部分。1.09埃为默认值,因为这是氢原子的范德华半径。

ConvexHullExclusion: 凸包是一种确定口袋在蛋白质外部的“结束”位置的方法,位于凸包外的(点阵)包含区域部分将会被去除。在以前的版本中,凸包将针对每帧重新计算,但这会导致显著的数值噪声,因为蛋白质在不同帧的运动可能会从根本上重新定义凸包。通过在此处提供 firstmax 选项,可以在所有帧中使用一致的凸包。first 将第一帧的凸包应用于所有其他帧,max 在同时叠加的所有帧周围绘制一个凸包(在大轨迹上可能需要较长时间)。为了重现之前的行为(如果你想复现谋篇论文的数据而它用的是 POVME2),可以使用 each 选项。任何其他选项都将停用凸包排除法(但建议输入为 none)。

SeedSphere: 上面定义的包含口袋的点阵可能至少在轨迹的某些帧中包含多个口袋。您可以指示 POVME 删除与用户定义的 contiguous pocket seed region 不相邻的任何点。该区域通常只是放置在您感兴趣的主口袋中心的一个小球体,它告诉 POVME 要测量哪个口袋。如果未指定此类区域,POVME 将计算包含口袋的点阵覆盖的所有口袋的总体积,即使它们不是连续的。

ContiguousPointsCriteria: 如果两个口袋体积至少共享此数量的相邻点,则认为它们是“连续的”。请注意,彼此“斜对角”的点被视为相邻。

NumProcessors: POVME可以在基于Unix的系统上使用多个处理器,在此设置所使用的的核数(尽管只是将不同帧均分给不同核来进行相对独立的计算)。

OutputFilenamePrefix POVME 输出的所有文件都将以该前缀开头。POVME会自动创建任何所需的目录(如./POVME_test_run/example_中为 ./POVME_test_run/)。

CompressOutput: 如果磁盘空间不足,POVME 可以使用 gz 压缩自动压缩所有输出文件。

Ligand-defined inclusion region example

POVME 3.0 现在允许用户使用配体残基名称定义口袋的包含区域。然后将在加载的 PDB 轨迹中配体原子3埃以内的所有网格点中定义口袋。注意,这个残基名称必须与输入 PDB 轨迹中给定的名称匹配。

配置文件 sample_POVME_input.ini 内容如下(各选项注释附后):

# POVME 3.0 Sample Input File

# First, we need to define a point field that entirely encompasses all trajectory pockets.
GridSpacing            1.0                                 
DefinePocketByLigand   adp                               
# Load the PDB trajectory file
PDBFileName                 1BYQ_every250.pdb              
# Tell POVME how to identify points that are within the binding pocket.
DistanceCutoff              1.09                           
ConvexHullExclusion         none                           
ContiguousPointsCriteria    3                              
# Tell POVME how to perform the calculations.
NumProcessors               1                              
# Tell POVME how to save the output
OutputFilenamePrefix          ./POVME_test_run/POVME_      
CompressOutput                false                        

DefinePocketByLigand: 相应残基名称。

其余见上一例。

Clustering

(这部分教程在 POVME/POVME/packages/clustering/README 里面,看着原始文献里做出来结果挺不错的(下图来自 POVME3 原始文献 http://dx.doi.org/10.1021/acs.jctc.7b00500),但是这个教程写得有点简略,而且从2017年发布之后就再没更新过;本人还没有尝试过进行这个 workflow,如果有更深层次的需求最好自己去看一看源码,下面是翻译和一些笔记)

在这里插入图片描述

在进行聚类之前,你需要获得你所希望 clustering 的口袋体积的 .npy 文件(可以在上两例找到获得方法),然后按照这个流程进行:

  1. 运行 binding_site_overlap.py,如 python binding_site_overlap.py -f *.npy,将会输出 Tanimoto 和 Tversky 计算的相似度矩阵。
  2. 运行 cluster.py,所需输入为:来自 binding_site_overlap.py 的 indexMapToFrames.csv、binding_site_overlap.py生成的 csv 文件 (Tanimoto 或 Tversky 之一)、期望得到的簇数;指令输入如 python cluster.py indexMapToFrames.csv 2 POVME_Tanimoto_matrix.csv;将会输出 frames_centroid.csv,其包含了每个帧的聚集位置。

对于 cluster.py,还有一些细致的选项:

-m: 口袋重叠矩阵(由 binding_site_overlap.py 生成);
-t: .npy 文件前缀和其原始 pdb 文件/轨迹之间的映射,用冒号分隔,可以重复使用。例如:-t 1BYQ:./trajectories/1BYQ.pdb -t 1UYF:./trajectories/1UYF.pdb;
-T: 包含一系列-t参数的文件;
-i: 将口袋重叠矩阵映射到各帧编号的索引文件,需要返回集群代表;
--kmeans: 使用 kmeans 群集而不是分级(hierarchical);
-n: 手动设置簇数。否则,Kelley罚分 将计算出最佳数量;
-N: 为 Kelley罚分 可得的簇数设置 minmin:maxmin:max:skip 值;如果 -n -N 均未输入,则计算从 1 到 maxKPClusters 的 nClusters 的Kelley惩罚(maxKPClusters 为 75(你也可以到 cluster.py 里面调整这个数值)与 所用于聚类的帧数 中较小值);
-o: 指定输出前缀;
-m: 将所有帧输出到集群子目录(不仅仅是集群代表(cluster reps));

使用方式例如 cluster.py -m POVME_Tanimoto_matrix_.npy -i indexMapToFrames.csv -t POVME_:../../POVME/examples/POVME_example/4NSS.pdb

本文含有隐藏内容,请 开通VIP 后查看