fpocket安装和使用教程

fpocket 是一套基于 Voronoi 剖分与 alpha-sphere 方法的蛋白小分子结合口袋(cavity/pocket)快速检测与表征工具。其核心程序包括:

  • fpocket:对单个三维结构(PDB/mmCIF)寻找并打分口袋;

  • mdpocket :在分子动力学轨迹 或结构集合上追踪瞬时/可塑口袋并输出频率/密度网格与随时间变化的描述符;

  • dpocket:批量提取已知口袋的描述符(用于建模/打分开发);

  • tpocket :口袋评分函数的基准评测框架。

    该项目最早由 Le Guilloux 等提出并在 BMC Bioinformatics 发表,随后提供了 web/集合分析等扩展;现代版本(fpocket 3+)支持 mmCIF 、链集选择、已知位点的"显式口袋"计算,并重新优化了可药性(druggability)评分

一、安装教程

方案 A:Conda(最省事,推荐)

(1)前提:已安装 Miniconda/Anaconda。推荐独立环境,避免与其它包冲突。

bash 复制代码
# 1、新建环境:只用 conda-forge 渠道,避免混源
conda create -n fpocket -c conda-forge fpocket
conda activate fpocket

# 2、或者在已有环境中安装(确保只用 conda-forge)
conda install -c conda-forge --override-channels fpocket
conda install python=3.12
conda install pytest

注意:

  • Conda Forge 提供了 fpocket 4.2.2 预编译包(Linux 与 macOS)。

  • --override-channels 会忽略 .condarc 中的其他渠道,只从你指定的渠道(这里是 conda-forge)解析,能避免"装到老版本/冲突"的情况。

  • 若国内镜像不同步、解决慢,建议临时用官方 conda-forge 或切换快的镜像。

(2)验证:

bash 复制代码
fpocket -h

# 输出帮助内容,即可说明安装成功
"""
***** POCKET HUNTING BEGINS ***** 
! Invalid pdb name given.

:||: fpocket 4.0 :||:
        
Mandatory parameters : 
        fpocket -f --file pdb or cif file                                      
        [ fpocket -F --fileList fileList ]                                  


Optional output parameters
        -x --calculate_interaction_grids        : Specify this flag if you want fpocket to     
                                                  calculate VdW and Coulomb grids for each pocket
        -d --pocket_descr_stdout                : Put this flag if you want to write fpocket
                                                  descriptors to the standard output


Optional input parameters
        -l --model_number (int)                 : Number of Model to analyze.
        -y --topology_file (string)             : File name of a topology file (Amber prmtop).
        -r --custom_ligand (string)             : String specifying a ligand like: 
                                                  residuenumber:residuename:chain_code (ie. 1224:PU8:A).
        -P --custom_pocket (string)             : String specifying a pocket like: 
                                                  residuenumber1:insertion_code1('-' if empty):chain_code1.residuenumber2:insertion_code2:chain_code2 (ie. 138:-:A.139:-:A).
        -u --min_n_explicit_pocket (int)        : If explicit pocket provided, minimum number 
                                                  of atoms of an alpha sphere that have to be in the selected pocket.
        -a --chain_as_ligand (char)             : Character specifying a chain as a ligand


Optional pocket detection parameters (default parameters)           
        -m --min_alpha_size (float)             : Minimum radius of an alpha-sphere.    (3.4)
        -M --max_alpha_size (float)             : Maximum radius of an alpha-sphere.    (6.2)
        -D --clustering_distance (float)        : Distance threshold for clustering algorithm   (2.4)
        -C --clustering_method (char)           : Specify the clustering method wanted for     
                                                  grouping voronoi vertices together (s)
                                                  s : single linkage clustering
                                                  m : complete linkage clustering
                                                  a : average linkage clustering 
                                                  c : centroid linkage clustering
        -e --clustering_measure (char)          : Specify the distance measure for clustering   (e) 
                                                  e : euclidean distance
                                                  b : Manhattan distance
        -i --min_spheres_per_pocket (int)       : Minimum number of a-sphere per pocket.        (15)
        -p --ratio_apol_spheres_pocket (float)  : Minimum proportion of apolar sphere in       
                                                  a pocket (remove otherwise) (0.0)
        -A --number_apol_asph_pocket (int)      : Minimum number of apolar neighbor for        
                                                  an a-sphere to be considered as apolar.   (3)
        -v --iterations_volume_mc (integer)     : Number of Monte-Carlo iteration for the      
                                                  calculation of each pocket volume.(300)
        -c --drop_chains (char)                 : Name of the chains to be deleted before pocket detection,      
                                                  able to delete up to (20) chains (ie : -c A,B,E)
        -k --keep_chains (char)                 : Name of the chains to be kept before pocket detection,      
                                                  able to keep up to (20) chains (ie : -k A,B,C,E)
        -a --chain_as_ligand (char)             : consider this chain as a ligand explicitly (i.e. -a D)
        -w --write_mode (char)                  : Writing mode to be used after pocket detection,      
                                                  d -> default (same format outpout as input)
                                                  b or both -> both pdb and mmcif | p or pdb ->pdb | m or cif or mmcif-> mmcif

For more information: http://fpocket.sourceforge.net
***** POCKET HUNTING ENDS ***** 
"""

(3)pytest验证 :因为是使用conda安装的,所以需要先按照以下脚本建一个软链接到 conda 的 fpocket,否则直接执行pytest的时候就会报错sh: 1: bin/fpocket: not found,bin/fpocket ,没有编译出来或不在当前路径;

bash 复制代码
cd /home/zhanghj/1_project_documents/fpocket   # 确保在仓库根
mkdir -p bin
ln -s "$(which fpocket)" bin/fpocket
ls -l bin/fpocket
./bin/fpocket -h   # 能出帮助则OK
pytest -q    # -q 是 quiet(安静模式)    -v 是 verbose(详细模式)

输出以下内容,说明测试套件一共 11 个用例,全部通过了:

bash 复制代码
# pytest -q
...........                     [100%]
11 passed in 60.56s (0:01:00)

# pytest -v
================================================================== test session starts ==================================================================
platform linux -- Python 3.12.11, pytest-8.4.2, pluggy-1.6.0 -- /home/username/miniconda3/envs/fpocket/bin/python3.12
cachedir: .pytest_cache
rootdir: /home/username/1_project_documents/fpocket
collected 11 items                                                                                                                                      

tests/test_fpocket.py::test_pdb_list_equal PASSED                                                                                                 [  9%]
tests/test_fpocket.py::test_pdb_list_different PASSED                                                                                             [ 18%]
tests/test_fpocket.py::test_pdb_list_different_clustering PASSED                                                                                  [ 27%]
tests/test_fpocket.py::test_pdb_list_different_clustering_threshold PASSED                                                                        [ 36%]
tests/test_fpocket.py::test_drop_chain PASSED                                                                                                     [ 45%]
tests/test_fpocket.py::test_explicit_pocket_detection PASSED                                                                                      [ 54%]
tests/test_fpocket.py::test_chain_as_ligand PASSED                                                                                                [ 63%]
tests/test_mmcif.py::test_pdb_list_mmcif_equal PASSED                                                                                             [ 72%]
tests/test_mmcif.py::test_pdb_list_mmcif_both PASSED                                                                                              [ 81%]
tests/test_mmcif.py::test_pdb_list_mmcif_plus_db PASSED                                                                                           [ 90%]
tests/test_mmcif.py::test_mmcif_ligand PASSED                                                                                                     [100%]

============================================================= 11 passed in 60.67s (0:01:00) =============================================================

方案 B:Docker安装

(1)拉取官方镜像

以下命令将从 dockerhub 中提取最新的 fpocket docker 镜像。

bash 复制代码
docker pull fpocket/fpocket

(2)使用docker镜像

这会将 fpocket 构建到你的本地 fpocket/fpocket 镜像中。然后你可以使用以下命令运行 fpocket/mdpocket 等:

bash 复制代码
# 将当前目录映射到容器内 /workdir,在容器里运行 fpocket
docker run --rm -v "$PWD":/workdir fpocket/fpocket fpocket -f /workdir/yourfile.pdb

如果容器内写文件遇到权限问题,可加当前用户映射:-u $(id -u):$(id -g),例如:

bash 复制代码
docker run --rm -u $(id -u):$(id -g) -v "$PWD":/workdir fpocket/fpocket fpocket -f /workdir/yourfile.pdb

(3)自己构建镜像(可选)

使用 repo 提供的 Dockerfile 通过 fpocket 创建 docker 镜像:

bash 复制代码
# 在 fpocket 源码目录(含 Dockerfile)
docker build -t fpocket/fpocket .

注意:在这里,您将当前目录和输入文件挂载到 Docker 容器中预配置的 /workdir 目录下,然后在该挂载文件夹中的文件上运行 fpocket。如果通过 Docker 运行 fpocket,请确保该文件夹对其他人可写入。

方案 C:源码编译

1. 依赖准备:netcdf 开发包
  • Ubuntu/Debian:

    bash 复制代码
    sudo apt-get update
    sudo apt-get install -y libnetcdf-dev
  • RHEL/CentOS:

    bash 复制代码
    sudo yum install -y netcdf-devel.x86_64
  • macOS(用 MacPorts 举例):

    bash 复制代码
    # 安装 MacPorts:https://www.macports.org/
    sudo port install netcdf
    # 如需手动提示库路径:
    export LIBRARY_PATH=/opt/local/lib

注意: 从 3.0 起需要 molfile 插件,源码中已提供 ,你只需确保系统上有 netcdf开发库(含头文件与链接库)。

2. 获取源码并编译安装

Linux:

bash 复制代码
git clone https://github.com/Discngine/fpocket.git
cd fpocket

# Linux(GNU Make)
make -j

# 安装到系统(需要 sudo)
sudo make install

macOS:

bash 复制代码
git clone https://github.com/Discngine/fpocket.git
cd fpocket

# Intel Mac
make ARCH=MACOSXX86_64 -j
sudo make install

# Apple Silicon(M1/M2)
make ARCH=MACOSXARM64 -j
sudo make install

注意:安装后可用自带样例与 pytest 简测(上同)。

二、使用教程

1. 简单的口袋检测

(1)可以使用以下命令行作为示例运行 fpocket:

bash 复制代码
fpocket -f demo.pdb    # 例如:fpocket -f 1uyd.pdb

fpocket 现在也接受 cif 作为输入,所以这个也能正常工作。请确保使用正确的文件扩展名:

bash 复制代码
fpocket -f demo.cif    # 例如:fpocket -f 1uyd.cif

**注意:**必须在命令行中使用 -f 标志指定 PDB 输入文件。如果未指定任何参数,fpocket 会在屏幕上打印 fpocket 用法/帮助信息。fpocket 将使用标准参数来检测 Pocket。

如果 fpocket 正常工作,屏幕上的输出应该如下所示,说明运行成功:

bash 复制代码
=========== Pocket hunting begins ==========
=========== Pocket hunting ends ============

2. 输入命令行参数

必要参数:

运行 fpocket 最简单的方法是提供一个 pdb 文件,或者提供一个存储在简单文本文件中的 pdb 文件列表。你需要以下两种输入之一来运行 fpocket:

  • 输入为一个标准的 PDB 文件
bash 复制代码
-f string : one standard PDB filename that you want to analyze with fpocket
  • 输入为一组pdb 文件的简单列表的文件名。
bash 复制代码
-F string : filename of a simple list of pdb files.

可选参数:

bash 复制代码
-m float: (default 3.4Å) This flag enables the user to modify the minimum radius an alpha sphere might have in a binding pocket. An alpha sphere is a contact sphere, that touches 4 atoms in 3D space without having any internal atoms. Here 3Å allow filtering of too small (protein internal) alpha spheres. If you want to analyze internal interstices, lower this parameter. In the contrary, if you want to analyze more solvent exposed cavities, you can raise this parameter in order to filter out too buried cavities.

-M float: (default 6.2Å) Here you can modify the maximum radius of alpha spheres in a pocket. An alpha sphere is a contact sphere, that touches 4 atoms in 3D space without having any internal atoms. Here 7Å allow to filter out too large contact spheres, that are lying on the protein surface. If you want to analyze very flat and solvent exposed surface depressions, raise this parameter. For analysis of buried parts of the protein you can lower this parameter. Higher radii might be more interesting for identification of protein protein binding sites or polysaccharide binding sites. Smaller radii enable detection of buried cavities for small organic molecules (drugs, for instance).

-l int: (None) If you have an input PDB file of an NMR structure or one with multiple models you can specify which model (conformation) you'd like to analyse

-C char: (default s) The clustering method to be used here. By default a pairwise single linkage clustering is used here. 
    's': pairwise single linkage clustering,
    'm': pairwise maximum- (or complete-) linkage clustering, 
    'a': pairwise average-linkage clustering, 
    'c': pairwise centroid-linkage clustering

-e char: (default e) The distance measure used for the clustering algorithm. 
    'e': Euclidean distance
    'b': City-block distance
    'c': correlation
    'a': absolute value of the correlation
    'u': uncentered correlation
    'x': absolute uncentered correlation
    's': Spearman's rank correlation
    'k': Kendall's tau

-i int: (default 15) This flag indicates how many alpha spheres a pocket must contain at least in order to figure in the results provided by fpocket. This parameter enables filtering of too small cavities. Thus, if you want to analyze smaller cavities also, lower this parameter, if you are only interested in huge cavities, like NADP binding sites, you can raise it in order to retain only very few pockets in the end. To give you an idea, a rather big cavity, like a NADP binding site, can have hundreds of alpha spheres. Thus, 30 as standard parameter enables also to keep smaller binding sites.

-A int: (default 3) Fpocket distinguishes between two types of alpha spheres. Polar alpha spheres and apolar alpha spheres. This flag ranges from 0 to 4 and modifies the definition of the alpha sphere type. By default, an alpha sphere contacting at least 3 apolar atoms (having an electronegativity below 2.8) is considered as apolar. If this is not the case it is considered as polar.

-D float: (default 2.4Å) this parameter changed compared to the previous versions of fpocket as we completely replaced the clustering algorithms entirely. This measure is now used to analyze a hierarchical distance and cut sub-trees at the desired distance. The bigger the distance, the larger the clusters you'll get. 

-p float: (default 0.0) This is another parameter for filtering unwanted pockets. It defines the maximum ratio of apolar alpha spheres and the number of alpha spheres in a pocket in order to keep the pocket in the results list. That is to say, by default every pocket is kept (0.0). Now, if you would like to filter rather hydrophobic pockets, raise this parameter and very polar cavities will be filtered out. This parameter is a ratio, not a percentage, thus it ranges from 0 to 1.

-v int: (default 2500) By default, pockets volume are calculated using a monte-carlo algorithm. Basically, the algorithm picks a random point in the space and check if it is included in any alpha sphere, and stores this status. This is repeated N times, and we estimate the volume of the pocket using ratio between the number of hit and the number of iteration, scaled by the size of the box. This parameter defines the number of iteration to perform. Of course, the higher the value is, the greater the accuracy will be, but the performance will be slowed down.

-b (none): (NOT USED BY DEFAULT) This option allows the user to choose a discrete algorithm  to calculate  the  volume of each pocket instead of the Monte Carlo method. This algorithm puts each pocket into a grid of dimension (1/N*X  ;  1/N*Y  ;  1/N*Z),  N being the value given using this option, and X, Y and Z being the box dimensions,  determined using coordinates of vertices. Then, a triple iteration on each dimensions is used to estimate the volume, checking if each points  given  by the iteration is in one of the pocket's vertices. This parameter defines the grid discretization. If this parameter is used, this algorithm will be used instead of the Monte Carlo algorithm. 
Warning: Although this algorithm could be more accurate, a high value might dramatically slow down the program, as this algorithm has a maximum complexity of N*N*N*nb_vertices, and a minimum of N*N*N !!!

-d (none): Option allowing you to output pockets and properties in a condensed format. This will put to the stdout pocket properties in a tab separated string and write pocket files in a subfolder

-r string: (None) This parameter allows you to run fpocket in a restricted mode. Let's suppose you have a very shallow or large pocket with a ligand inside and the automatic pocket prediction always splits up you pocket or you have only a part of the pocket found. Specifying your ligand residue with -r allows you to detect and characterize you ligand binding site explicitly. For instance for `1UYD.pdb` you can specify `-r 1224:PU8:A` (residue number of the ligand: residue name of the ligand: chain of the ligand)

-P string: (None) Binding site delimited by the user through the input. You can inidcate which amino-acids are part of the binding site you'd like to "identify" and calculate descriptors for. fpocket will run its usual alpha-sphere detection and clustering will be guided to collect all alpha spheres in contact with residues of interest. You should enter a string of residues with residue numbers, insertion codes & chain codes: 'residuenumber1:insertioncode1:chaincode1.residuenumber2:insertioncode2:chaincode2.residuenumber3:insertioncode3:chaincode3'. Insertion codes can be empty. `-P 107::A.138::A.51::A.98::A.55::A.93::A` for instance for part of the HSP90 binding site of 4cwr. NB: If you use an mmcif file as input, you need to use the automatically assigned residue number instead of author defined number for this to work.

-y string: (filename) EXPERIMENTAL: here you can specify a topology filename in the Amber prmtop format. This can then be used by fpocket & mdpocket to calculate energy grids for your pockets. NB: you have to specify the -x flag to run energy calculations

-x None: (None) EXPERIMENTAL: specify this flag if you want to run energy calculations on calculated pockets. That's not fully functional and only one or two probes are currently generated and output density grids written. Use with caution

-c char : (Default is none): Use this flag to choose which chains you want to delete before running fpocket. The selected chains can be specified with ',' or ':' delimiters, for example you can use it '-c B,D' or '-c B:D'. You can delete up to 20 different chains.

-k char : (Default is none): Use this flag to choose which chains you want to keep before running fpocket. The selected chains can be specified with ',' or ':' delimiters, for example you can use it '-k A,B,E' or '-k A:B:E'. You can keep up to 20 different chains.

-a char : (Default is none): With this flag you can select a chain you want to be considered as a ligand. Works the same way as the "-r" flag but with a whole chain. Only a single chain can be chosen, for example '-a D'.

-w char : (Default is 'd') : With this flag you are able to choose what kind of writing file output you want, 'd' -> default (same format outpout as input)| 'b' or "both"-> both pdb and mmcif | 'p' or "pdb"-> pdb | 'm' or "cif" or "mmcif" -> mmcif, for example "-w cif" or "-w p"

3. 输出文件描述

fpocket 直接在数据文件目录中生成输出,并使用 PDB 文件名加上 _out 扩展名创建一个目录。此处,当前样本运行的命令 ll sample/demo_out 如下所示:

bash 复制代码
total 556K
-rw-rw-r-- 1 zhanghj zhanghj  13K Sep 25 15:16 demo_info.txt
-rw-rw-r-- 1 zhanghj zhanghj 472K Sep 25 15:16 demo_out.pdb
-rw-rw-r-- 1 zhanghj zhanghj  784 Sep 25 15:16 demo.pml
-rw-rw-r-- 1 zhanghj zhanghj  48K Sep 25 15:16 demo_pockets.pqr
-rwxrwxr-x 1 zhanghj zhanghj   42 Sep 25 15:16 demo_PYMOL.sh
-rw-rw-r-- 1 zhanghj zhanghj  936 Sep 25 15:16 demo.tcl
-rwxrwxr-x 1 zhanghj zhanghj   71 Sep 25 15:16 demo_VMD.sh
drwxrwxr-x 2 zhanghj zhanghj 4.0K Sep 25 15:16 pockets

如你所见,fpocket 提供了许多文件和另一个子目录。然而,这些文件中的大多数对于轻松可视化绑定 Pocket 是必需的。以下是每个文件内容和用途的解释:

  • demo_info.txt :此文件包含有关蛋白质上发现的口袋的人可读信息(描述符)。值得注意的是,此文件包含口袋分数(这是小分子结合位点的可能性)和可药性分数(结合位点的可药性程度)等,如下示例:
bash 复制代码
Pocket 1 :
	Score : 	0.297
	Druggability Score : 	0.128
	Number of Alpha Spheres : 	86
	Total SASA : 	199.499
	Polar SASA : 	87.032
	Apolar SASA : 	112.468
	Volume : 	841.317
	Mean local hydrophobic density : 	17.034
	Mean alpha sphere radius :	3.887
	Mean alp. sph. solvent access : 	0.513
	Apolar alpha sphere proportion : 	0.337
	Hydrophobicity score:	17.053
	Volume score: 	 4.316
	Polarity score:	 12
	Charge score :	 -1
	Proportion of polar atoms: 	44.444
	Alpha sphere density : 	6.148
	Cent. of mass - Alpha Sphere max dist: 	15.245
	Flexibility : 	0.726
  • demo.pml :这是一个使用 PyMOL 可视化结合口袋的 PyMOL 脚本
  • demo.tcl :这是一个使用 VMD 可视化结合口袋的 tcl 脚本
  • demo_PYMOL.sh :这是使用 PYMOL 启动快速可视化的可执行脚本
  • demo_VMD.sh :这是使用 VMD 启动快速可视化的可执行脚本
  • demo_out.pdb :这是最重要的文件,它包含作为输入的初始 PDB 结构。与原始 PDB 输入文件相比,此文件中的非辅因子 HETATM 出现将被删除。PDB 文件包含使用 HETATM 定义作为虚拟原子的 alpha 球体中心。这些 alpha 球体中心附加在 PDB 文件的末尾,并使用 STP 残基名称(用于位点)。非极性 alpha 球体的原子名称为 APOL,极性 alpha 球体的原子名称为 POL。口袋是 alpha 球体的集合。它们可以通过残基编号来区分。因此,根据 fpocket,残基 STP 1 将是第一个结合口袋。为了更清楚地说明这一点,以下是 demo_out.pdb 的摘录:
bash 复制代码
ATOM   5244  CE2 PHE A 335       0.713 -14.350  13.190  0.00  0.00           C 0
ATOM   5245  HE2 PHE A 335      -0.133 -13.680  13.199  0.00  0.00           H 0
ATOM   5246   CZ PHE A 335       0.832 -15.343  14.176  0.00  0.00           C 0
ATOM   5247   HZ PHE A 335       0.092 -15.422  14.959  0.00  0.00           H 0
ATOM   5248  OXT PHE A 335       6.974 -15.148  10.238  0.59  7.50           O 0
HETATM 7685  POL STP C   1      -3.845  20.343 -10.373  0.00  0.00          Ve  
HETATM    2 APOL STP C   1       2.938  17.913   0.557  0.00  0.00          Ve  
HETATM 9021  POL STP C   1       3.028  18.322  -0.808  0.00  0.00          Ve  
HETATM10156  POL STP C   1       2.968  18.129  -0.841  0.00  0.00          Ve  
HETATM10156  POL STP C   1       3.366  18.338  -1.612  0.00  0.00          Ve 
  • demo_pockets.pqr :此文件包含所有 alpha 球体中心,与 demo_out.pdb 文件类似,但不包含蛋白质结构信息。此外,使用 pqr 格式可以将原子的范德华半径明确写入此文件中。此处利用此功能输出口袋中 alpha 球体的半径。使用此 pqr 文件,可以更精确地分析 fpocket 识别的体积。请注意,目前只有 VMD 支持正确读取此格式。PyMOL 可以读取 pqr 文件,但无法解析范德华半径。

  • pockets/ :为了开发或分析方便,fpocket 建议使用这个目录,根据当前示例,它包含以下内容:*_atm.pdb :这些文件仅包含给定口袋中与 alpha 球体接触的原子。与此信息互补的是, *_vert.pqr 文件仅包含相应口袋内 alpha 球体的中心和半径。正如扩展名所述,原子以 PDB 文件格式输出,而 alpha 球体中心以 PQR 文件格式输出。

4. 口袋描述符

为了从众多不感兴趣的口袋中区分出感兴趣的口袋,fpocket 为每个口袋使用了描述符。一个评分函数使用这些描述符进行训练,可以很好地识别我们通常所说的"结合位点"。以下列出了 fpocket 中实现的所有描述符。当前用于评分的描述符标有 *,而与已归一化标签关联的描述符则具有归一化(即缩放到 [0, 1] 范围,给定描述符的最高值(或最低值)设置为 1(或 0))等效描述符。

  • **Number of alpha spheres (normalized):α球体的数量,**α球体的数量通常或多或少地与腔体的大小成比例。
  • **Density of the cavity (normalized):腔体密度,**该描述符用于测量口袋的密度和"埋藏度"。它只不过是结合口袋中所有α球对间距离的平均值。因此,较小的值表示结合口袋的致密性较高,因此口袋埋藏较深。较大的值则表示空腔延伸较广且暴露较多。
  • **Polarity Score (normalized):极性分数,**与疏水性相反,该描述符试图测量结合口袋的亲水性。结合口袋中的每个残基都被分配一个极性分数(发布于 http://www.info.univ-angers.fr/\~gh/Idas/proprietes.htm )。最终的极性分数是结合口袋中所有残基极性分数的平均值。该分数非常近似,因此不应高估。每个残基仅评估一次。
  • **Mean local hydrophobic density (normalized):平均局部疏水密度,**该描述符试图识别结合口袋是否包含疏水性较强的局部部分。对于每个非极性α球体,通过寻找重叠的非极性α球体来检测其邻近非极性α球体的数量。所有非极性α球体邻近非极性α球体的数量之和除以结合口袋中非极性α球体的总数。最后,将此分数与其他结合口袋进行比较进行归一化。
  • **Proportion of apolar alpha spheres (normalized):非极性 alpha 球体的比例,**该描述符以百分比形式返回,反映了 fpocket 识别的某个口袋中所有 alpha 球体中非极性 alpha 球体的比例。这可以在某种程度上反映结合口袋的疏水/亲水特性。
  • **Druggability Score:成药性评分,**成药性评分是一个介于0到1之间的数值,使用逻辑函数与每个口袋关联。该评分旨在评估口袋结合小分子类药物的可能性。低分表示类药物分子不太可能与该口袋结合。成药性评分为0.5(阈值)表示前体药物或类药物分子可能结合。1表示类药物分子结合的可能性非常大。该评分的理论基础目前正处于漫长的科学发表过程中。
  • **Maximum distance between two alpha sphere (normalized):两个 alpha 球之间的最大距离,**该描述符存储了给定口袋中两个 alpha 球体之间的最大距离。
  • **Hydrophobicity Score:疏水性评分,**该描述符基于 Monera 等人在《蛋白质科学杂志》1, 319-329 (1995) 上发表的基于残基的疏水性量表。对于结合位点中涉及的所有残基,计算平均疏水性评分,并将其用作整个口袋的描述符。每个残基仅评估一次。
  • **Charge Score:带电分数,**根据 ( http://www.info.univ-angers.fr/\~gh/Idas/proprietes.htm ),结合位点中每个氨基酸的电荷都会被追踪。所有与口袋中至少一个α球接触的氨基酸的平均电荷会被计算,从而得出电荷分数。每个残基仅评估一次。
  • **Volume Score:体积分数,**与其他描述符类似,此描述符基于已发表于 ( http://www.info.univ-angers.fr/\~gh/Idas/proprietes.htm ) 的数据。该数据反映了不同氨基酸的相对体积。为了计算此描述符,需要计算与口袋中至少一个α球体接触的所有氨基酸的平均体积得分。每个残基仅评估一次。
  • **Composition of amino acids:氨基酸的组成,**fpocket 追踪结合位点的氨基酸组成。如果残基中至少一个原子与结合位点的至少一个 α 球体接触,则该残基被视为结合位点的一部分。该描述符以累积列表的形式返回,例如,您可以在结合位点中找到 2 个缬氨酸、3 个谷氨酸等。不同描述符输出中氨基酸的出现顺序如下:丙氨酸 (Ala)、半胱氨酸 (Cys)、天冬氨酸 (Asp)、谷氨酸 (Glu)、苯丙氨酸 (Phe)、甘氨酸 (Gly)、组氨酸 (His)、异亮氨酸 (Ile)、赖氨酸 (Lys)、亮氨酸 (Leu)、甲硫氨酸 (Met)、天冬酰胺 (Asn)、脯氨酸 (Pro)、谷氨酰胺 (Gln)、精氨酸 (Arg)、丝氨酸 (Ser)、苏氨酸 (Thr)、缬氨酸 (Val)、色氨酸 (Trp)、酪氨酸 (Tyr)。
  • **Pocket volume:口袋容量,**该描述符尝试使用蒙特卡罗算法来评估绑定口袋的体积,该算法计算给定口袋中所有 Alpha 球体所占据的总体积。该算法的迭代次数可以通过 fpocket 输入参数控制。
  • **Polar Surface Area:极性表面积,**该描述符基于受体原子的信息,估算了口袋的极性表面积。用于计算面积的方法仅提供近似值,但足以得出一些相当相关的估计值。
  • **Apolar Surface Area:非极性表面积,**参见上一点中的极性表面积,仅适用于非极性原子。
  • **Total Surface Area:总表面积,**口袋的极性和非极性表面积之和,即口袋的受体侧表面积。
  • **B-factor score (normalized):B 因子得分,**请谨慎处理此分数与天然晶体结构的关系。此分数基于结合口袋中所有原子(至少与一个α球接触的原子)的平均 B 因子。由于 B 因子不一定反映晶体结构的柔韧性,因此此分数在某种程度上是滥用的。然而,可以设想进行分子动力学或其他分析来确定原子的相对柔韧性,并将此信息存储在 PDB 文件格式的 B 因子列中。
相关推荐
元气满满-樱2 小时前
Rewrite重写
linux·nginx
杰克崔2 小时前
进程内mmap锁相互干扰问题
linux·运维·服务器·车载系统
JoannaJuanCV2 小时前
自动驾驶—CARLA仿真(19)automatic_control demo
人工智能·机器学习·自动驾驶
xlp666hub2 小时前
从零手写一个 printf 函数:变参宏与默认参数提升
linux
迅为电子3 小时前
迅为iTOP-Hi3516开发板linux驱动开发资料全面上线,构建从入门到精通的完整学习路径!
linux·驱动开发·学习
Alluxio3 小时前
Alluxio正式登陆Oracle云市场,为AI工作负载提供TB级吞吐量与亚毫秒级延迟
人工智能·分布式·机器学习·缓存·ai·oracle
代码游侠3 小时前
应用——Linux进程通信与信号处理
linux·运维·服务器·笔记·学习·信号处理
HalvmånEver3 小时前
Linux:Ext系列⽂件系统(二)
linux·运维·服务器
石像鬼₧魂石3 小时前
内网渗透靶场 攻击 & 排错命令分类速查表
linux·windows·学习·ubuntu