gromacs教程练习1

gromacs能在win上运行,还是个开源的软件,这都很值得入手学习

记录下gromacs教程的练习情况:

Lysozyme in water

水中的溶菌酶,嗯,估计就是把蛋白处理后放在显试溶剂里跑MD这个模拟。

1、文件的准备:

1、先到PDB数据库下载1AKI的蛋白文件

2、用文本编辑器将water去掉,在VMD或者pymol里查看分子的结构,看是否有结构的缺失。

3、用gmx的pdb2gmx生成需要的文件:

  • 一个拓扑文件
  • 一个限制坐标信息文件
  • 一个坐标结构(预进程的结构)文件

拓扑文件(*.top)包含的信息:非键参数(原子类型和电荷信息)、键参数(键、键角和二面角)

gmx pdb2gmx -f .\1aki_delwat.pdb -o 1aki_processed.gro -water spce#-f 后接pdb文件
#-water 选择要使用的水模型:none, spc, spce, tip3p, tip4p, tip5p,tips3p
#-o 输出的结构文件,gro格式
#-p 输出的拓扑文件

按下回车后,跳出系列力场进行选择

教程里选择15的all-atom OPLS力场,所以这里在光标处输入15,按下回车

然后结构文件gro、拓扑文件top就生成了

教程里介绍的几个gmx2pdb的关键字:

-ignh: #忽略pdb文件里的H原子,不去除,一般这种情况是需要pdb里H原子的坐标信息,但需要手动修改H原子的名字,让其符合gromacs的格式
-ter: #交互式地为N端和C端分配电荷状态。
-inter: #交互式地为 Glu、Asp、Lys、Arg 和 His 分配电荷状态;选择哪些Cys参与二硫键

2、检查拓扑文件:

3、定义盒子和填充溶剂:

这里主要的两个步骤:

  • 1、定义盒子的维度,通过editconf模块
  • 2、给盒子填上溶剂,使用solvate模块

使用命令:

gmx editconf -f 1AKI_processed.gro -o 1AKI_newbox.gro -c -d 1.0 -bt cubic-f -o:#输入、输出坐标文件(*.gro)
-c: #让蛋白质放置在盒子中央(center)
-d:#指出盒子的尺寸,1nm
-bt:#指出盒子的类型,立方体

到盒子边缘的距离是一个重要的参数。由于我们将使用周期性边界条件,因此必须满足最小图像约定。也就是说,蛋白质永远不应该看到它的周期性图像,否则计算出的力将是虚假的。指定 1.0 nm 的溶质盒距离意味着蛋白质的任何两个周期图像之间至少有 2.0 nm。这个距离对于模拟中常用的任何截止方案来说都足够了。

gmx solvate -cp 1AKI_newbox.gro -cs spc216.gro -o 1AKI_solv.gro -p topol.top-cp: #上一步editconf输出的gro文件
-cs: #gromacs自带的水模型,spc216.gro,这是一个通用的平衡3点溶剂模型。您可以使用它作为SPC、SPC/E 或TIP3P水的溶剂配置,因为它们都是三点水模型。-o:#输出的更新的坐标文件
-p:#输出的更新的拓扑文件

检查拓扑文件的[moleucles]模块,里面的内容出现更新:

[ molecules ]
; Compound  #mols
Protein_A       1 
SOL         10832 

4、增加离子:

在拓扑文件中检查体系的电荷(蛋白的电荷)

在[atom]区域的信息里,有qtot的字眼,是原子电荷累计的总和,查看最后列的qtot数值就是体系的整体电荷。这个体系是8个正电荷。

Gromacs里增加离子的模块是genion

再用genion添加离子前,需要用grompp模块生成一个*.tpr文件

tpr是一个包含结构信息、拓扑信息和模拟参数的二进制输入文件

而用grompp之前,需要准备如下的*.mdp (molecular dynamics parameter file) 文件

; ions.mdp - used as input into grompp to generate ions.tpr
; Parameters describing what to do, when to stop and what to save
integrator  = steep         ; Algorithm (steep = steepest descent minimization)
emtol       = 1000.0        ; Stop minimization when the maximum force < 1000.0 kJ/mol/nm
emstep      = 0.01          ; Minimization step size
nsteps      = 50000         ; Maximum number of (minimization) steps to perform; Parameters describing how to find the neighbors of each atom and how to calculate the interactions
nstlist         = 1         ; Frequency to update the neighbor list and long range forces
cutoff-scheme	= Verlet    ; Buffered neighbor searching 
ns_type         = grid      ; Method to determine neighbor list (simple, grid)
coulombtype     = cutoff    ; Treatment of long range electrostatic interactions
rcoulomb        = 1.0       ; Short-range electrostatic cut-off
rvdw            = 1.0       ; Short-range Van der Waals cut-off
pbc             = xyz       ; Periodic Boundary Conditions in all 3 dimensions

这些参数都是基于OPLS-AA力场设置的,跟换力场,参数可能不适用(来自教程的提示)。

gmx grompp -f ions.mdp -c 1AKI_solv.gro -p topol.top -o ions.tpr-f #后接复制到的mdp文件
-c -f #后面是结构和拓扑文件
-o #是输出的*.tpr文件

这样,tpr文件就生成了

gmx genion -s ions.tpr -o 1AKI_solv_ions.gro -p topol.top -pname NA -nname CL -neutral-s #加tpr文件
-o -p #更新的结构文件和拓扑文件
-pname -nname #增加的阴阳离子是什么元素
-neutral #让体系处于电中性
-conc #指出增加的离子浓度

然后选择13号组,嵌入离子

5、进行能量最小化(EM):

5.1、操作:

这一步和增加离子类似,要用grompp生成一个*.tpr文件,然后用gromacs的MD引擎mdrun进行能量最小化。

将上一步增加离子的ions.mdp拷贝一件,重命名为minim.mdp

gmx grompp -f minim.mdp -c 1AKI_solv_ions.gro -p topol.top -o em.tpr-f: #后接模拟参数信息,这里的信息和增加离子的类似
-c -p: #后接结构、拓扑文件
-o: #后是输出的以上信息的组装的二进制文件

没有出错,接下来就是EM:

gmx mdrun -v -deffnm em-v: #将细节输出到终端里
-deffnm: #后接所有的文件名(包括输出和输入)
-s: #后接输入文件,就是em.tpr

这里会得到系列输出文件,如果EM结束

  • em.log:文本文件,EM进程的日志文件
  • em.edr: 二进制的能量文件
  • em.trr: 二进制的精确的轨迹文件
  • em.gro: 能量最小化的结构

5.2、如何判断一个EM是否成功:

看两个因素:

①体系的势能Epot,对于一个水中的蛋白质,能量最小化后,其Epot应该在105-106之间。

②Fmax,在minim.mdp文件中,设置了一个参数:emtol = 1000.0,意思就是要Fmax<1000.0 kJ mol-1 nm-1

成功的最小化,要满足这两个条件。

提取em中的能量变化,进行分析:

gmx energy -f em.edr -o potential.xvg

输入命令后,会出现系列选项,这里选择10的potential

因为可以多选,在末尾输入0再回车

终端会返回poteintial的均值,和产生一个potential.xvg文件

xvg文件绘制图形,势能降至105-106kj/mol,说明最小化成功,可进行下一步的模拟。

 6、平衡模拟:

EM保证一个合理的起始结构(建立的体系中水分子和蛋白的位置是人为放置的,原子间可能存在很近的,不合理的距离,从而产生极大的、不稳定的、不合理的能量),EM的目的就是解决这个。

在正式模拟(成品模拟)之前,体系中没有建立真实的密度,需要提高温度、再给予压力,让体系达到真实的密度。

好久前用pdb2gmx生成的posre.itp文件现在派上用场了

posre.itp文件的作用是约束蛋白质的重原子(C、O、N),受能量约束的原子依然可以移动,但是要克服一个巨大的能量惩罚(penalty)。这方便我们整顿蛋白周围的溶剂分子,而蛋白本身的结构没有发生太大的变化。

约束需要一个原点(约束力就像弹簧力,原子在原点,跑越远,受到拉扯回的力越大,向外的阻力也越大),这个原点就是能力最小化后的结构坐标。

一个平衡模拟由两个时相组成

6.1、NVT系综(NVT ensemble)模拟

在恒定的粒子数、体积和温度下进行模拟。这种程序的时间范围取决于系统的内容,但在NVT中,系统的温度应该达到所需值的平台,如果温度尚未稳定,则需要额外的时间。一般地,50~100ps是足够的。这里,我们进行一个100ps的NVT模拟。

拷贝如下的nvt.mdp文件:

title                   = OPLS Lysozyme NVT equilibration 
define                  = -DPOSRES  ; position restrain the protein
; Run parameters
integrator              = md        ; leap-frog integrator
nsteps                  = 50000     ; 2 * 50000 = 100 ps
dt                      = 0.002     ; 2 fs
; Output control
nstxout                 = 500       ; save coordinates every 1.0 ps
nstvout                 = 500       ; save velocities every 1.0 ps
nstenergy               = 500       ; save energies every 1.0 ps
nstlog                  = 500       ; update log file every 1.0 ps
; Bond parameters
continuation            = no        ; first dynamics run
constraint_algorithm    = lincs     ; holonomic constraints 
constraints             = h-bonds   ; bonds involving H are constrained
lincs_iter              = 1         ; accuracy of LINCS
lincs_order             = 4         ; also related to accuracy
; Nonbonded settings 
cutoff-scheme           = Verlet    ; Buffered neighbor searching
ns_type                 = grid      ; search neighboring grid cells
nstlist                 = 10        ; 20 fs, largely irrelevant with Verlet
rcoulomb                = 1.0       ; short-range electrostatic cutoff (in nm)
rvdw                    = 1.0       ; short-range van der Waals cutoff (in nm)
DispCorr                = EnerPres  ; account for cut-off vdW scheme
; Electrostatics
coulombtype             = PME       ; Particle Mesh Ewald for long-range electrostatics
pme_order               = 4         ; cubic interpolation
fourierspacing          = 0.16      ; grid spacing for FFT
; Temperature coupling is on
tcoupl                  = V-rescale             ; modified Berendsen thermostat
tc-grps                 = Protein Non-Protein   ; two coupling groups - more accurate
tau_t                   = 0.1     0.1           ; time constant, in ps
ref_t                   = 300     300           ; reference temperature, one for each group, in K
; Pressure coupling is off
pcoupl                  = no        ; no pressure coupling in NVT
; Periodic boundary conditions
pbc                     = xyz       ; 3-D PBC
; Velocity generation
gen_vel                 = yes       ; assign velocities from Maxwell distribution
gen_temp                = 300       ; temperature for Maxwell distribution
gen_seed                = -1        ; generate a random seed

 上面的NVT参数以及EM后的结构和拓扑文件,利用grompp集合成一个二进制文件nvt.tpr:

gmx grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -o nvt.tpr

用MD引擎mdrun进行模拟:

gmx mdrun -deffnm nvt

CPU烧了6min,就好了。教程里说"如果在 16 个内核左右并行运行,则不到一个小时"

但我的机子没这么厉害......

分析模拟后的温度变化:

gmx energy -f nvt.edr -o temperature.xvg

 终端里输入16 0

对*xvg绘图的结果应该是:

 从图像中可见,体系的温度迅速达到目标温度(300K),然后在其附近稳定波动。

对于这样的体系,NVT只需要50ps的模拟就能达到

6.2、NPT系综(NPT ensemble)模拟:

稳定温度后,需要稳定体系的压力,让体系的密度达到稳定,更接近实验条件。

NPT模拟同样进行100ps

模拟的参数信息(文本格式)如下,拷贝成一个npt.mdp文件

title                   = OPLS Lysozyme NPT equilibration 
define                  = -DPOSRES  ; position restrain the protein
; Run parameters
integrator              = md        ; leap-frog integrator
nsteps                  = 50000     ; 2 * 50000 = 100 ps
dt                      = 0.002     ; 2 fs
; Output control
nstxout                 = 500       ; save coordinates every 1.0 ps
nstvout                 = 500       ; save velocities every 1.0 ps
nstenergy               = 500       ; save energies every 1.0 ps
nstlog                  = 500       ; update log file every 1.0 ps
; Bond parameters
continuation            = yes       ; Restarting after NVT 
constraint_algorithm    = lincs     ; holonomic constraints 
constraints             = h-bonds   ; bonds involving H are constrained
lincs_iter              = 1         ; accuracy of LINCS
lincs_order             = 4         ; also related to accuracy
; Nonbonded settings 
cutoff-scheme           = Verlet    ; Buffered neighbor searching
ns_type                 = grid      ; search neighboring grid cells
nstlist                 = 10        ; 20 fs, largely irrelevant with Verlet scheme
rcoulomb                = 1.0       ; short-range electrostatic cutoff (in nm)
rvdw                    = 1.0       ; short-range van der Waals cutoff (in nm)
DispCorr                = EnerPres  ; account for cut-off vdW scheme
; Electrostatics
coulombtype             = PME       ; Particle Mesh Ewald for long-range electrostatics
pme_order               = 4         ; cubic interpolation
fourierspacing          = 0.16      ; grid spacing for FFT
; Temperature coupling is on
tcoupl                  = V-rescale             ; modified Berendsen thermostat
tc-grps                 = Protein Non-Protein   ; two coupling groups - more accurate
tau_t                   = 0.1     0.1           ; time constant, in ps
ref_t                   = 300     300           ; reference temperature, one for each group, in K
; Pressure coupling is on
pcoupl                  = Parrinello-Rahman     ; Pressure coupling on in NPT
pcoupltype              = isotropic             ; uniform scaling of box vectors
tau_p                   = 2.0                   ; time constant, in ps
ref_p                   = 1.0                   ; reference pressure, in bar
compressibility         = 4.5e-5                ; isothermal compressibility of water, bar^-1
refcoord_scaling        = com
; Periodic boundary conditions
pbc                     = xyz       ; 3-D PBC
; Velocity generation
gen_vel                 = no        ; Velocity generation is off 

 用grompp对文件整合成二进制文件tpr:

gmx grompp -f npt.mdp -c nvt.gro -r nvt.gro -t nvt.cpt -p topol.top -o npt.tpr-t: #检查点文件,来自上一步的NVT模拟

用md引擎开始跑:

gmx mdrun -deffnm npt

 同样也需要点时间

完成模拟后,用energy模块进行压力数据提取:

gmx energy -f npt.edr -o pressure.xvg

命令回车后,输入18 0

 压力的波动很大,图中红线是每10ps计算均值绘制出的曲线。

100ps模拟的压力均值是7.5 ± 160.5 bar,参考的压力设置为1bar,这在npt.mdp文件里可以找到

由于均值较大的RMSF(160.5 bar),尚不能从统计学上分析样本均值和参考均值有无差异。

用energy对密度进行提取:

gmx energy -f npt.edr -o density.xvg

输入24 0在光标处

 100ps内的平均密度是1019 ± 3 kg m-3,和实验值(1000 kg m-3)接近,使用的SPC/E model的预期密度是1008 kg m-3。

模拟过程中,密度、温度、压力达到稳定,体系达到平衡。

NPT模拟还需要延长点时间

7、成品模拟:

7.1、操作:

拷贝如下的模拟参数,命名为md.mdp

title                   = OPLS Lysozyme NPT equilibration 
; Run parameters
integrator              = md        ; leap-frog integrator
nsteps                  = 500000    ; 2 * 500000 = 1000 ps (1 ns)
dt                      = 0.002     ; 2 fs
; Output control
nstxout                 = 0         ; suppress bulky .trr file by specifying 
nstvout                 = 0         ; 0 for output frequency of nstxout,
nstfout                 = 0         ; nstvout, and nstfout
nstenergy               = 5000      ; save energies every 10.0 ps
nstlog                  = 5000      ; update log file every 10.0 ps
nstxout-compressed      = 5000      ; save compressed coordinates every 10.0 ps
compressed-x-grps       = System    ; save the whole system
; Bond parameters
continuation            = yes       ; Restarting after NPT 
constraint_algorithm    = lincs     ; holonomic constraints 
constraints             = h-bonds   ; bonds involving H are constrained
lincs_iter              = 1         ; accuracy of LINCS
lincs_order             = 4         ; also related to accuracy
; Neighborsearching
cutoff-scheme           = Verlet    ; Buffered neighbor searching
ns_type                 = grid      ; search neighboring grid cells
nstlist                 = 10        ; 20 fs, largely irrelevant with Verlet scheme
rcoulomb                = 1.0       ; short-range electrostatic cutoff (in nm)
rvdw                    = 1.0       ; short-range van der Waals cutoff (in nm)
; Electrostatics
coulombtype             = PME       ; Particle Mesh Ewald for long-range electrostatics
pme_order               = 4         ; cubic interpolation
fourierspacing          = 0.16      ; grid spacing for FFT
; Temperature coupling is on
tcoupl                  = V-rescale             ; modified Berendsen thermostat
tc-grps                 = Protein Non-Protein   ; two coupling groups - more accurate
tau_t                   = 0.1     0.1           ; time constant, in ps
ref_t                   = 300     300           ; reference temperature, one for each group, in K
; Pressure coupling is on
pcoupl                  = Parrinello-Rahman     ; Pressure coupling on in NPT
pcoupltype              = isotropic             ; uniform scaling of box vectors
tau_p                   = 2.0                   ; time constant, in ps
ref_p                   = 1.0                   ; reference pressure, in bar
compressibility         = 4.5e-5                ; isothermal compressibility of water, bar^-1
; Periodic boundary conditions
pbc                     = xyz       ; 3-D PBC
; Dispersion correction
DispCorr                = EnerPres  ; account for cut-off vdW scheme
; Velocity generation
gen_vel                 = no        ; Velocity generation is off

进行信息整合为一个二进制的tpr文件:

gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -o md_0_1.tpr

grompp 将打印 PME 负载的估计值,这将指示应将多少处理器专用于 PME 计算,以及有多少处理器专用于 PP 计算。

开始成品模拟:

gmx mdrun -deffnm md_0_1 -nt 4-nt:#使用多少线程

我机子能开8个线程,但这里占了我60~70%的CPU

Gabba Gabba Hey! 

7.2、RMSD分析:

现在我们已经模拟了我们的蛋白质,我们应该对系统进行一些分析。哪些类型的数据很重要?这是运行模拟之前要问的一个重要问题,因此您应该对要在自己的系统中收集的数据类型有一些想法。在本教程中,将介绍一些基本工具。

第一个是trjconv,它被用作后处理工具,用于剥离坐标,校正周期性或手动更改轨迹(时间单位,帧频率等)。在本练习中,我们将使用 trjconv 来解释系统中的任何周期性。蛋白质将通过晶胞扩散,可能看起来“破碎”或可能“跳”到盒子的另一侧。要解释此类行为,请发出以下问题:

gmx trjconv -s md_0_1.tpr -f md_0_1.xtc -o md_0_1_noPBC.xtc -pbc mol -center

选择 1(“蛋白质”)作为要居中的组,选择 0(“系统”)作为输出。我们将对这种“修正”的轨迹进行所有分析。让我们先看一下结构稳定性。GROMACS有一个内置的RMSD计算实用程序,称为rms。要使用 rms,请发出以下命令:

 gmx rms -s md_0_1.tpr -f md_0_1_noPBC.xtc -o rmsd.xvg -tu ns

 选择 4(“主干”)作为最小二乘拟合和用于 RMSD 计算的组。-tu 标志将以 ns 为单位输出结果,即使轨迹是用 ps 写的。这样做是为了输出的清晰度(特别是如果你有一个长时间的模拟 - 1e + 05 ps看起来不如100 ns)。输出图将显示相对于最小化平衡系统中存在的结构的RMSD:

如果想要将能量最小化后的结构(晶体结构)作为RMSD计算的参考结构,可以用如下的命令:

gmx rms -s em.tpr -f md_0_1_noPBC.xtc -o rmsd_xtal.xvg -tu ns

 两个时间序列都显示RMSD水平降至~0.1 nm(1 Å),表明结构非常稳定。

图之间的细微差异表明t = 0 ns时的结构与该晶体结构略有不同。这是意料之中的,因为它已被能量最小化,并且因为位置约束不是 100% 完美的,如前所述。

7.3、Rg分析:

蛋白质的回转半径(Rg)是一种衡量它的紧凑性的参数。 如果一个蛋白质是稳定的折叠,它将有可能保持相对稳定的Rg。 如果一个蛋白质的在模拟过程中展开,其Rg将随着时间而改变。 

gmx gyrate -s md_0_1.tpr -f md_0_1_noPBC.xtc -o gyrate.xvg

 选择 1(“蛋白质”)作为分析的组

图形绘制如下:

我们可以看到从合理的不变Rg值的蛋白质仍然非常稳定,在其紧凑(折叠)的形式过程中1ns在300K.这种结果并不意外,但说明了一个先进的能力GROMACS分析,来建立 

 

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

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

相关文章

Java jakarta.websocket.server.ServerContainer not available(已解决)

在SpringBoot做测试用例&#xff0c;遇到如下报错 jakarta.websocket.server.ServerContainer not available 测试类的注解修改如下&#xff1a; SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT)

Python 数组操作指南:使用示例和方法解析

什么是 Python 数组? 数组是一种基本数据结构,也是大多数编程语言的重要组成部分。在 Python 中,它们是能够同时存储多个项目的容器。具体来说,它们是元素的有序集合,每个值都具有相同的数据类型。这是关于 Python 数组需要记住的最重要的事情 - 它们只能保存相同类型的多…

【STM32+ESP8266上云连载①】给ESP8266烧录AT固件

文章目录 一、给NodeMCU烧录固件1.1硬件准备1.2软件准备1.3AT固件下载1.4配置设置1.5开始烧录 二、给ESP8266-01S烧录固件2.1硬件准备2.2AT固件下载2.3连线2.4烧录配置 三、给ESP-12E/F/S单片烧录固件四、指令测试4.1HTTP测试4.2MQTT测试 我在使用ESP8266的时候遇到了一些问题&…

神经网络基础-神经网络补充概念-57-多任务学习

概念 多任务学习&#xff08;Multi-Task Learning&#xff0c;MTL&#xff09;是一种机器学习方法&#xff0c;旨在同时学习多个相关任务&#xff0c;通过共享特征表示来提高模型的性能。在多任务学习中&#xff0c;不同任务之间可以是相关的&#xff0c;共享的&#xff0c;或…

OCR的发明人是谁?

OCR的发明背景可以追溯到早期计算机科学和图像处理的研究。随着计算机技术的不断发展&#xff0c;人们开始探索如何将印刷体文字转换为机器可读的文本。 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;的发明涉及多个人的贡献&#xff0c…

思腾云计算

近年来&#xff0c;游戏行业发展迅猛&#xff0c;市场容量不断扩大。从游戏产业发展来看&#xff0c;玩家对于游戏内容和体验的需求不断攀升。那如何在同质化的游戏市场&#xff0c;通过 AI 来提高游戏探索和交互的趣味度&#xff1f; 行业存在以下痛点&#xff1a; 1、游戏迭…

JVM中对象和GC Root之间的四种引用关系

1. 强引用 只有所有 GC Roots 对象都不通过【强引用】引用该对象&#xff0c;该对象才能被垃圾回收 由GC Root直接new出来的对象是强引用&#xff0c;只有当GC Root不再引用该对象的时候&#xff0c;才会被回收 例子&#xff1a; List<String> list new ArrayList<&…

vue2.0/vue3.0学习笔记——2022.08.16

vue2&#xff08;查漏补缺&#xff09; 一、vue基础 内置指令&#xff08;查漏补缺&#xff09; 1、v-text 更新元素的textContent 2、v-html 更新元素的innerHtml 3、v-cloak 防止闪现&#xff0c;与css配合: [v-cloak] {dispaly: none} 4、v-once 在初次动态渲染厚&#x…

数据链路层

数据链路层和网络层的对比 如果说网络层实现的是路由的功能&#xff0c;那么数据链路层就是实打实的实现具体的传输。 就像导航&#xff0c;网络层告诉我们下一步该去哪个主机&#xff0c;而数据链路层则是实现去下一个主机的方法。 网络层的IP地址告诉我们目的地在哪里&#x…

Spring 框架入门介绍及IoC的三种注入方式

目录 一、Spring 简介 1. 简介 2. spring 的核心模块 ⭐ 二、IoC 的概念 2.1 IoC 详解 2.2 IoC的好处 2.3 谈谈你对IoC的理解 三、IoC的三种注入方式 3.1 构造方法注入 3.2 setter方法注入 3.3 接口注入&#xff08;自动分配&#xff09; 3.4 spring上下文与tomcat整…

MySQL--存储过程--详解/示例

MySQL中的存储过程详解 在MySQL数据库中&#xff0c;存储过程是一种预先编译好的SQL代码块&#xff0c;可以被重复调用。它们允许我们将常用的操作逻辑封装起来&#xff0c;并简化数据库交互。本文将介绍MySQL存储过程的基本语法和使用示例。 创建存储过程 使用CREATE PROCE…

前端JavaScript企业框架的全面解析

引言 在现代Web开发中&#xff0c;前端JavaScript框架扮演着至关重要的角色。它们提供了丰富的功能和工具&#xff0c;帮助开发人员构建功能强大且易于维护的企业级应用程序。本篇博客将全面解析前端JavaScript企业框架&#xff0c;介绍其优势、使用场景和常见的框架选择。 什…

第三届OceanBase数据库大赛启动,升级为国家级竞赛

近日&#xff0c;第三届OceanBase数据库大赛启动报名。本届大赛进一步升级为全国大学生计算机系统能力大赛&#xff0c;由系统能力培养研究专家组发起&#xff0c;全国高等学校计算机教育研究会、系统能力培养研究项目发起高校主办&#xff0c;OceanBase承办&#xff0c;旨在培…

【Linux】Linux工具篇(yum、vim、gcc/g++、gdb、Makefile、git)

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f9;Linux &#x1f6f8;C &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff…

nvm命令

1. 常见命令 1. nvm -v //查看nvm版本 nvm --version &#xff1a;显示 nvm 版本 2. nvm list //显示版本列表 nvm list &#xff1a;显示已安装的版本&#xff08;同 nvm list installednvm list installed&#xff1a;显示已安装的版本nvm list available&#xff1a;显示所有…

【java】常用工具——包装类

1. Java中的数据类型 #mermaid-svg-8QZByhDXxJpYzQ8U {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8QZByhDXxJpYzQ8U .error-icon{fill:#552222;}#mermaid-svg-8QZByhDXxJpYzQ8U .error-text{fill:#552222;stroke…

图数据库_Neo4j学习cypher语言_使用CQL_构建明星关系图谱_导入明星数据_导入明星关系数据_创建明星关系---Neo4j图数据库工作笔记0009

首先找到明星数据 可以看到有一个sheet1,是,记录了所有的关系的数据 然后比如我们搜索一个撒贝宁,可以看到撒贝宁的数据 然后这个是构建的CQL语句 首先我们先去启动服务 neo4j console 然后我们再来看一下以前导入的,可以看到导入很简单, 就是上面有CQL 看一下节点的属性

【HarmonyOS】鸿蒙应用获取华为帐号手机号码步骤(API7及以下)

【写在前面】 本文主要介绍使用API7及以下版本开发HarmonyOS应用时&#xff0c;通过华为帐号SDK和云侧接口获取手机号码的主要开发步骤&#xff0c;注意&#xff1a;开发过程中集成的华为帐号SDK仅支持API7及以下版本的HarmonyOS应用。 【前提准备】 1、HarmonyOS应用已申请获…

搭载KaihongOS的工业平板、机器人、无人机等产品通过3.2版本兼容性测评,持续繁荣OpenHarmony生态

近日&#xff0c;搭载深圳开鸿数字产业发展有限公司&#xff08;简称“深开鸿”&#xff09;KaihongOS软件发行版的工业平板、机器人、无人机等商用产品均通过OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;3.2 Release版本兼容性测评&#xff0c;获颁O…

centos7安装 postgresql postgis pgrouting

centos7 源码编译太烦了。直接yum install ...... 一、版本信息&#xff1a; CentOS版本&#xff1a;CentOS Linux release 7.9.2009 (Core) PostgreSQL版本&#xff1a; PostgreSQL 12.0 PostGIS版本&#xff1a;postgis31 二、PostgresSQL PostGIS 安装 1、官网安装链接&…