UCSF DOCK 分子对接详细案例(03)-分子从头设计de novo Design

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


前言

本文是UCSF DOCK的使用案例分享,包括DOCK 6.11的de novo Design 模块包含的三项功能:
(1)Generic de novo design
(2)De Novo Refinement
(3)用户自定义生成片段库并实现Focused De Novo Design

一、 软件及操作环境

操作环境:Ubuntu 22.04
软件版本:UCSF DOCK 6.11,安装可以参考这篇博文;UCSF Chimera 1.17.3,UCSF ChimeraX 1.7.1,安装可以参考这篇博文。

二、研究目的

NX-2127是一款具有双重活性的口服小分子靶向蛋白降解剂,可以布鲁顿氏酪氨酸激酶(BTK)蛋白。在与BTK结合的同时,NX-2127还可以招募E3泛素连接酶,使BTK蛋白“泛素化”,从而BTK被蛋白酶体降解。

在本实例中,我们将使用DOCK的通用片段库,从头开始为我们的受体构建新的配体:
首先,展示通用的Generic de novo design,随后是基于anchor的优化生成De Novo Refinement,最后是基于用户自定义生成片段库的Focused De Novo Design。

三、结构文件准备

grid文件来自于前一篇案例分享:UCSF DOCK 分子对接详细案例(02)-并行用于高通量虚拟筛选
也可以在此下载本案例需要的输入文件:下载

新建本案例需要的目录:

cd DOCK_workdir
mkdir 009_denovo_generic 010_denovo_refine 011_denovo_focused

现在,DOCK_workdir 内容如下:
在这里插入图片描述

四、 DOCK中 de novo design

4.1 generic de novo design

cd ./009_denovo_generic

将此前建立的格点文件.bmp和.nrg文件复制到本目录:

cp ../003_gridbox/grid.bmp ../003_gridbox/grid.nrg ./

创建参数输入文件generic.in,输入以下内容:

conformer_search_type                                        denovo
dn_fraglib_scaffold_file                                     $DOCKHOME/parameters/fraglib_scaffold.mol2
dn_fraglib_linker_file                                       $DOCKHOME/parameters/fraglib_linker.mol2
dn_fraglib_sidechain_file                                    $DOCKHOME/parameters/fraglib_sidechain.mol2
dn_user_specified_anchor                                     no
dn_torenv_table                                              $DOCKHOME/parameters/fraglib_torenv.dat
dn_name_identifier                                           8u2e_generic
dn_sampling_method                                           graph
dn_graph_max_picks                                           30
dn_graph_breadth                                             3
dn_graph_depth                                               2
dn_graph_temperature                                         100.0
dn_pruning_conformer_score_cutoff                            100.0
dn_pruning_conformer_score_scaling_factor                    2.0
dn_pruning_clustering_cutoff                                 100.0
dn_mol_wt_cutoff_type                                        soft
dn_upper_constraint_mol_wt                                   550.0
dn_lower_constraint_mol_wt                                   0.0
dn_mol_wt_std_dev                                            35.0
dn_constraint_rot_bon                                        15
dn_constraint_formal_charge                                  2.0
dn_heur_unmatched_num                                        1
dn_heur_matched_rmsd                                         2.0
dn_unique_anchors                                            1
dn_max_grow_layers                                           9
dn_max_root_size                                             25
dn_max_layer_size                                            25
dn_max_current_aps                                           5
dn_max_scaffolds_per_layer                                   1
dn_write_checkpoints                                         yes
dn_write_prune_dump                                          no
dn_write_orients                                             no
dn_write_growth_trees                                        no
dn_output_prefix                                             8u2e_generic
use_internal_energy                                          yes
internal_energy_rep_exp                                      12
internal_energy_cutoff                                       100.0
use_database_filter                                          no
orient_ligand                                                yes
automated_matching                                           yes
receptor_site_file                                           ../002_surface_spheres/selected_spheres.sph
max_orientations                                             1000
critical_points                                              no
chemical_matching                                            no
use_ligand_spheres                                           no
bump_filter                                                  yes
bump_grid_prefix                                             grid
max_bumps_anchor                                             2
max_bumps_growth                                             2
score_molecules                                              yes
contact_score_primary                                        no
grid_score_primary                                           yes
grid_score_rep_rad_scale                                     1
grid_score_vdw_scale                                         1
grid_score_es_scale                                          1
grid_score_grid_prefix                                       grid
minimize_ligand                                              yes
minimize_anchor                                              yes
minimize_flexible_growth                                     yes
use_advanced_simplex_parameters                              no
simplex_max_cycles                                           1
simplex_score_converge                                       0.1
simplex_cycle_converge                                       1.0
simplex_trans_step                                           1.0
simplex_rot_step                                             0.1
simplex_tors_step                                            10.0
simplex_anchor_max_iterations                                500
simplex_grow_max_iterations                                  250
simplex_grow_tors_premin_iterations                          0
simplex_random_seed                                          0
simplex_restraint_min                                        no
atom_model                                                   all
vdw_defn_file                                                $DOCKHOME/parameters/vdw_de_novo.defn
flex_defn_file                                               $DOCKHOME/parameters/flex.defn
flex_drive_file                                              $DOCKHOME/parameters/flex_drive.tbl

编写slurm运行脚本generic.sh,写入以下内容:

#! /bin/sh
#SBATCH --time=5:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=10
#SBATCH --job-name=BTK_generic
#SBATCH --output=BTK_genericdock6 -i generic.in

运行:

sbatch cart_min.sh

大约运行30 min。
结果文件:8u2e_generic.denovo_build.mol2,生成565个分子,可以通过Chimera或者ChimeraX的ViewDock查看:
在这里插入图片描述

4.2 Rescoring the Outputs对输出重新评分

通过4.1中的方式产生的分子已经通过grid score进行评分,可以进一步做rigid docking能量最小化优化,以此更加准确评价生成分子与受体之间结合能力。

vim generic_min.in
conformer_search_type                                        rigid
use_internal_energy                                          yes
internal_energy_rep_exp                                      12
internal_energy_cutoff                                       100.0
ligand_atom_file                                             8u2e_generic.denovo_build.mol2
limit_max_ligands                                            no
skip_molecule                                                no
read_mol_solvation                                           no
calculate_rmsd                                               no
use_database_filter                                          no
orient_ligand                                                yes
automated_matching                                           yes
receptor_site_file                                           ../002_surface_spheres/selected_spheres.sph
max_orientations                                             1000
critical_points                                              no
chemical_matching                                            no
use_ligand_spheres                                           no
bump_filter                                                  yes
bump_grid_prefix                                             grid
max_bumps_anchor                                             2
max_bumps_growth                                             2
score_molecules                                              yes
contact_score_primary                                        no
grid_score_primary                                           yes
grid_score_rep_rad_scale                                     1
grid_score_vdw_scale                                         1
grid_score_es_scale                                          1
grid_score_grid_prefix                                       ../003_gridbox/grid
minimize_ligand                                              yes
simplex_max_iterations                                       1000
simplex_tors_premin_iterations                               0
simplex_max_cycles                                           1
simplex_score_converge                                       0.1
simplex_cycle_converge                                       1.0
simplex_trans_step                                           1.0
simplex_rot_step                                             0.1
simplex_tors_step                                            10.0
simplex_random_seed                                          0
simplex_restraint_min                                        no
atom_model                                                   all
vdw_defn_file                                                $DOCKHOME/parameters/vdw_de_novo.defn
flex_defn_file                                               $DOCKHOME/parameters/flex.defn
flex_drive_file                                              $DOCKHOME/parameters/flex_drive.tbl
ligand_outfile_prefix                                        generic_min
write_orientations                                           no
num_scored_conformers                                        1
rank_ligands                                                 no

运行:

dock6 -i generic_min.in

或者,编写slurm运行脚本generic_min.sh,写入以下内容:

#! /bin/bash
#SBATCH --time=5:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=10
#SBATCH --job-name=BTK_generic.min
#SBATCH --output=BTK_generic.mindock6 -i generic_min.in

slurm运行:

sbatch generic_min.sh

大约运行5 min。
结果文件:generic_min_scored.mol2,对生成565个分子优化,可以通过Chimera或者ChimeraX的ViewDock查看:
在这里插入图片描述通过对比可以看出,优化后排名靠前的分子与未优化时靠前的分子,结构相近且具有较小的片段,因此该分子或者说该分子系列可能具有很好的受体结合能力。

五、 De Novo Refinement

cd ../010_denovo_refine

如何在固有配体的指引下生成新的结构,并且与受体依然有良好的结合是药物设计的核心任务。该项工作往往是对配体受体充分了解后开展的,没特定的模式可供套用。

如下图所示,N-甲基哌嗪处于口袋外的溶剂区域,如果采用fast-follow结构修饰的研究策略,那单独改造这个部分是保持活性的同时,重点研究的片段之一。如果考虑采用de novo生成方法,获得全新骨架系列分子的抑制剂,以上方法将不再适用。

一般而言,口袋内部的结合对配体-受体的结合起着非常重要的作用,结合熵变与结合焓变可能都是非常重要的结合贡献力量。保持溶剂区片段不变,寻找具有新型结构的在口袋内部结合的片段,是一项具有挑战性但意义巨大的工作。

本实例是基于已知的药效分子与靶点BTK的结合模式,利用DOCK De Novo Refinement功能,产生新的具有潜在结合的配体分子,保留溶剂区片段(可以尝试,同时保留另外一个靠近口袋外的片段,此处不再展示)。分为三部分:

准备配体

在这里插入图片描述如上图所示,删除配体分子溶剂区片段以外的结构,保存分子为.mol2格式,查看删除分子的连接原子编号(这里是C24),在mol2分子中修改其原子类型为Du,并标记原子名字为Du1,这个位置是产生新结构的起始位置。如下:
在这里插入图片描述
保存文件,名称Chopped_ligand_for_denovo.mol2。

运行Refinement

保存运行参数文件:de_novo_refine.in,内容如下:

conformer_search_type                                        denovo
dn_fraglib_scaffold_file                                     $DOCKHOME/parameters/fraglib_scaffold.mol2
dn_fraglib_linker_file                                       $DOCKHOME/parameters/fraglib_linker.mol2
dn_fraglib_sidechain_file                                    $DOCKHOME/parameters/fraglib_sidechain.mol2
dn_user_specified_anchor                                     yes
dn_fraglib_anchor_file                                       Chopped_ligand_for_denovo.mol2
dn_torenv_table                                              $DOCKHOME/parameters/fraglib_torenv.dat
dn_name_identifier                                           8u2e_refine
dn_sampling_method                                           graph
dn_graph_max_picks                                           30
dn_graph_breadth                                             3
dn_graph_depth                                               2
dn_graph_temperature                                         100.0
dn_pruning_conformer_score_cutoff                            100.0
dn_pruning_conformer_score_scaling_factor                    2.0
dn_pruning_clustering_cutoff                                 100.0
dn_mol_wt_cutoff_type                                        soft
dn_upper_constraint_mol_wt                                   550.0
dn_lower_constraint_mol_wt                                   0.0
dn_mol_wt_std_dev                                            35.0
dn_constraint_rot_bon                                        15
dn_constraint_formal_charge                                  2.0
dn_heur_unmatched_num                                        1
dn_heur_matched_rmsd                                         2.0
dn_unique_anchors                                            1
dn_max_grow_layers                                           9
dn_max_root_size                                             25
dn_max_layer_size                                            25
dn_max_current_aps                                           5
dn_max_scaffolds_per_layer                                   1
dn_write_checkpoints                                         yes
dn_write_prune_dump                                          no
dn_write_orients                                             no
dn_write_growth_trees                                        no
dn_output_prefix                                             8u2e_refine
use_internal_energy                                          yes
internal_energy_rep_exp                                      12
internal_energy_cutoff                                       100.0
use_database_filter                                          no
orient_ligand                                                no
bump_filter                                                  no
score_molecules                                              yes
contact_score_primary                                        no
grid_score_primary                                           yes
grid_score_rep_rad_scale                                     1
grid_score_vdw_scale                                         1
grid_score_es_scale                                          1
grid_score_grid_prefix                                       ../003_gridbox/grid
minimize_ligand                                              yes
minimize_anchor                                              no
minimize_flexible_growth                                     yes
use_advanced_simplex_parameters                              no
simplex_max_cycles                                           1
simplex_score_converge                                       0.1
simplex_cycle_converge                                       1.0
simplex_trans_step                                           1.0
simplex_rot_step                                             0.1
simplex_tors_step                                            10.0
simplex_grow_max_iterations                                  250
simplex_grow_tors_premin_iterations                          0
simplex_random_seed                                          0
simplex_restraint_min                                        yes
simplex_coefficient_restraint                                10.0
atom_model                                                   all
vdw_defn_file                                                $DOCKHOME/parameters/vdw_de_novo.defn
flex_defn_file                                               $DOCKHOME/parameters/flex.defn
flex_drive_file                                              $DOCKHOME/parameters/flex_drive.tbl

关于de_novo_refine.in一些参数的说明:

-dn_user_specified_anchor 设置为no时,如果希望运行从头设计运行,其中他们不指定具有虚拟原子的输入锚,DOCK将使用片段库中的部分作为锚点来构建,允许尝试多个不同的锚点和方向。
-dn_sampling_method 可以是“graph”、“random”或“exhaustive”。“graph”将选择与先前选择的改善网格得分的部分相似的片段,因此图将试图以促进改善配体的方式偏向未来的片段选择。术语“random”将导致片段被随机选择。“exhaustive”将确保在每个可能的位置尝试每个可能的片段,会显著增加所需的计算时间。
-dn_graph_max_picks 和dn_num_random_picks(后者在上面未示出)控制每个生长层每个虚原子尝试多少片段。
-dn_max_grow_layers 控制DOCK将从初始锚上的每个虚拟原子向外生长多少个片段。8-9层,通常用于从头开始生长配体而不设置锚。
-minimize_ligand 当设置为yes时,将尝试在每个片段选择后使配体能量最小化。
-minimize_anchor 当设置为yes时,将尝试在连接片段之前使锚能量最小化,而不管锚是由用户提供还是随机选择。对于从头运行,其中锚是以已知方向结合的配体的一部分,最好将此参数设置为“no”。否则,DOCK 可能会在尝试用新的片段生长之前改变你的锚的方向,产生的分子可能不能反映配体通常如何结合。
-simplex_restraint_min 应设置为yes时,该参数基本上将拉伸系绳应用于初始锚,允许其为了能量最小化而稍微偏离其起始位置,但影响RMSD。 

运行:

dock6 -i de_novo_refine.in

查看结果

生成8u2e_refine.denovo_build.mol2文件,可以用ChimeraX ViewDock查看。

在这里插入图片描述

六、 Focused De Novo Design

cd ../011_denovo_focused

生成片段库

DOCK可以读取包含有一个或者多个分子的mol2文件,生成片段库。以输入up9分子为例。
新建片段生成的输入参数文件frag_gen.in,输入以下内容:

conformer_search_type                                        flex
write_fragment_libraries                                     yes
fragment_library_prefix                                      up9_fraglib
fragment_library_freq_cutoff                                 1
fragment_library_sort_method                                 freq
fragment_library_trans_origin                                yes
use_internal_energy                                          yes
internal_energy_rep_exp                                      12
internal_energy_cutoff                                       100.0
ligand_atom_file                                             ../001_structure/up9_rec_withH.mol2
limit_max_ligands                                            no
skip_molecule                                                no
read_mol_solvation                                           no
calculate_rmsd                                               no
use_database_filter                                          no
orient_ligand                                                no
bump_filter                                                  no
score_molecules                                              no
atom_model                                                   all
vdw_defn_file                                                $DOCKHOME/parameters/vdw_de_novo.defn
flex_defn_file                                               $DOCKHOME/parameters/flex.defn
flex_drive_file                                              $DOCKHOME/parameters/flex_drive.tbl
ligand_outfile_prefix                                        up9_trash
write_orientations                                           no
num_scored_conformers                                        1
rank_ligands                                                 no

运行:

dock6 -i frag_gen.in -o frag_gen.out

生成以下6个文件,可以使用ChimeraX查看。
在这里插入图片描述
frag_gen.in输入参数的说明:

-fragment_library_freq_cutoff 作为一种排序机制,只允许出现指定次数的片段进入库。当设置为1时,这允许将出现一次的任何片段添加到库中。
-fragment_library_transs_origin 设置为yes时,会将空间中的所有片段平移到一个位置,这样当在Chimera或ChimeraX等程序中查看时,用户可以查看各种片段,而无需在每次切换正在查看的片段时调整位置。

Fragment Library Merging

可以将DOCK自带的片段库与用户生成的片段库合并使用。
将自带库拷贝进工作目录:

cp $DOCKHOME/parameters/fraglib_s*.mol2 $DOCKHOME/parameters/fraglib_linker.mol2 $DOCKHOME/parameters/fraglib_torenv.dat ./
cat *linker* >> combined_fraglib_linker.mol2
cat *sidechain* >> combined_fraglib_sidechain.mol2
cat *scaffold* >> combined_fraglib_scaffold.mol2

合并torsion files:

python $DOCKHOME/bin/combine_torenv.py fraglib_torenv.dat up9_fraglib_torenv.dat

以上便得到片段和torsion数据库。

Running the Focused De Novo Design

新建Focused De Novo Design的输入参数文件focused.in,输入以下内容:

conformer_search_type                                        denovo
dn_fraglib_scaffold_file                                     combined_fraglib_scaffold.mol2
dn_fraglib_linker_file                                       combined_fraglib_linker.mol2
dn_fraglib_sidechain_file                                    combined_fraglib_sidechain.mol2
dn_user_specified_anchor                                     yes
dn_fraglib_anchor_file                                       ../010_denovo_refine/Chopped_ligand_for_denovo.mol2
dn_torenv_table                                              fraglib_torenv.dat
dn_name_identifier                                           focused_8u2e.combined
dn_sampling_method                                           graph
dn_graph_max_picks                                           30
dn_graph_breadth                                             3
dn_graph_depth                                               3
dn_graph_temperature                                         100.0
dn_pruning_conformer_score_cutoff                            100.0
dn_pruning_conformer_score_scaling_factor                    2.0
dn_pruning_clustering_cutoff                                 100.0
dn_mol_wt_cutoff_type                                        soft
dn_upper_constraint_mol_wt                                   550.0
dn_lower_constraint_mol_wt                                   0.0
dn_mol_wt_std_dev                                            35.0
dn_constraint_rot_bon                                        15
dn_constraint_formal_charge                                  2.0
dn_heur_unmatched_num                                        1
dn_heur_matched_rmsd                                         2.0
dn_unique_anchors                                            1
dn_max_grow_layers                                           5
dn_max_root_size                                             25
dn_max_layer_size                                            25
dn_max_current_aps                                           5
dn_max_scaffolds_per_layer                                   1
dn_write_checkpoints                                         yes
dn_write_prune_dump                                          no
dn_write_orients                                             no
dn_write_growth_trees                                        no
dn_output_prefix                                             8u2e_focused
use_internal_energy                                          yes
internal_energy_rep_exp                                      12
internal_energy_cutoff                                       100.0
use_database_filter                                          no
orient_ligand                                                no
bump_filter                                                  no
score_molecules                                              yes
contact_score_primary                                        no
grid_score_primary                                           yes
grid_score_rep_rad_scale                                     1
grid_score_vdw_scale                                         1
grid_score_es_scale                                          1
grid_score_grid_prefix                                       ../003_gridbox/grid
minimize_ligand                                              no
atom_model                                                   all
vdw_defn_file                                                $DOCKHOME/parameters/vdw_de_novo.defn
flex_defn_file                                               $DOCKHOME/parameters/flex.defn
flex_drive_file                                              $DOCKHOME/parameters/flex_drive.tbl

运行:

dock6 -i focused.in -o focused.out

查看结果:

在以上演示条件下,生成1061个分子,可以通过ViewDock查看。

实际使用,片段库和生成参数均需要摸索和优化,才能生成需要的新分子,是一个不断优化和探索的过程。

总结

在本实例中,我们使用DOCK的通用片段库,从头开始为我们的受体构建新的配体;也使用DOCK片段数据库构建功能建立片段数据库用于分子生成。主要分为三个部分:首先,展示通用的Generic de novo design,随后是基于anchor的优化生成De Novo Refinement,最后是基于用户自定义生成片段库的Focused De Novo Design。

参考资料

  1. https://ringo.ams.stonybrook.edu/index.php/Main_Page
  2. https://dock.compbio.ucsf.edu/DOCK_6/dock6_manual.htm
  3. https://pubs.acs.org/doi/pdf/10.1021/acs.jcim.3c01031

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Gradle开发与应用 (三) : Groovy语法概念与闭包

1. Groovy介绍 Groovy是一种基于Java平台的动态编程语言,与Java是完全兼容,除此之外有很多的语法糖来方便我们开发。Groovy代码能够直接运行在Java虚拟机(JVM)上,也可以被编译成Java字节码文件。 以下是Groovy的一些…

C# aes加密解密byte数组

using System.Security.Cryptography; using System.Text;namespace AESStu01;public class AesHelper {// AES加密密钥和向量(需要保密) private static readonly string Key "";//16长度字符串数字混合private static readonly string IV …

Unity曲柄滑块四杆机构运动计算

一、运动效果 二、机构的介绍 曲柄长度:a,线段AB长度 连杆长度:b,线段BC长度 偏心距离:e,滑块轨迹与曲柄中心点A的垂直距离 三、已知点A点B和e的值,计算C点的位置 1、计算s的值 var h math.…

殿堂级Flink源码极精课程预售

一、为什么我们要读源码? 1、让个人技术快速成长: 优秀的开源框架,底层的源码设计思想也非常优秀,同时还有含有大量的设计模式和并发编程技术,优秀的解决方案,熟读源码对猿们技术提升有很大帮助 2、新技术学习能力: Java开源码框架的源码熟读后,若出现…

2024最新算法:鹦鹉优化算法(Parrot optimizer,PO)求解23个基准函数(提供MATLAB代码)

一、鹦鹉优化算法 鹦鹉优化算法(Parrot optimizer,PO)由Junbo Lian等人于2024年提出的一种高效的元启发式算法,该算法从驯养的鹦鹉中观察到的觅食、停留、交流和对陌生人行为的恐惧中汲取灵感。这些行为被封装在四个不同的公式中…

学习和工作的投入产出比(节选)

人工智能统领全文 推荐包含关于投入、产出、过剩、市场关注、案例、结果和避雷等主题的信息: 投入与产出: 投入和产出都有直接和间接两类常见形式。常见的四种组合是:直接投入、直接产出、间接投入、间接产出。 过剩: 过剩是一个重…

BUUCTF---[极客大挑战 2019]LoveSQL1

1.题目描述 2.一般遇到登录,用户名会尝试admin,密码会尝试万能密码" or 11#或者 or 11#。这里尝试了第一种,但是不对。 3.接着尝试第二种 or 11#。提示登录成功了说明这里是单引号注入,并给了一串字符 4.sql注入题一般会设计…

13-微服务初探-自研微服务框架

微服务初探 1. 架构变迁之路 1.1 单体架构 互联网早期,一般的网站应用流量较小,只需要一个应用,将所有的功能代码都部署在一起就可以,这样可以减少开发,部署和维护的成本。 比如说一个电商系统,里面包含…

Ubuntu18.04安装RTX2060显卡驱动+CUDA+cuDNN

Ubuntu18.04安装RTX2060显卡驱动CUDAcuDNN 1 安装RTX2060显卡驱动1.1 查看当前显卡是否被识别1.2 安装驱动依赖1.3 安装桌面显示管理器1.4 下载显卡驱动1.5 禁用nouveau1.6 安装驱动1.7 查看驱动安装情况 2 安装CUDA2.1 查看当前显卡支持的CUDA版本2.2 下载CUDA Toolkit2.3 安装…

2. this 指向问题

this 指向问题 前言 当一个函数调用时,会创建一个执行上下文,这个上下文包括函数调用的一些信息(调用栈,传入参数,调用方式),this就指向这个执行上下文。 this 不是静态的,也并不是在编写的时候绑定的&am…

百度搜索引擎SEO优化方法

随着互联网的不断发展,搜索引擎已经成为人们获取信息、产品和服务的主要途径之一。而在中国,百度作为最大的搜索引擎,其影响力不可忽视。了解并掌握百度SEO关键词优化方法,对于提升网站在搜索引擎中的排名至关重要。 关键词选择&a…

MyBatis 学习(七)之 缓存

目录 1 MyBatis 缓存介绍 2 一级缓存 3 二级缓存 3.1 二级缓存介绍 3.2 二级缓存配置 3.3 二级缓存测试 4 参考文档 1 MyBatis 缓存介绍 MyBatis 缓存是 MyBatis 中的一个重要特性,用于提高数据库查询的性能。MyBatis 提供了一级缓存和二级缓存两种类型的缓存…