GROMACS Tutorial 5: Protein-Ligand Complex 中文实战教程

news2024/11/22 5:55:17

GROMACS Tutorial 5: Protein-Ligand Complex 中文实战教程

  • 前言
  • 系统环境
  • 特别强调
  • 一、预处理阶段
    • 1.1 蛋白质配体分离以及除水操作
    • 1.2 选择力场识别JZ4配体
      • 1.2.1 使用在线力场解析
      • 1.2.2 使用官方推荐力场CHARMM36解析
    • 1.3 蛋白的top文件准备
    • 1.4 配体的top文件准备
    • 1.5 使用CgenFF生成配体top文件
    • 1.6 组合蛋白质和配体,修改生成的gro文件和top文件,生成complex文件
      • 1.6.1 修改gro文件
      • 1.6.2 修改top文件
  • 二、添加离子
    • 2.1 定义盒子并添加溶剂
    • 2.2 添加离子准备
    • 2.3 添加离子
  • 三、能量最小化
  • 四、限制配体及体系平衡
    • 4.1 限制复合物
    • 4.2 nvt平衡
      • 4.2.1 nvt平衡设置
      • 4.2.2 nvt画图
    • 4.3 npt平衡
      • 4.3.1 npt平衡设置
      • 4.3.2 npt画图
  • 五、成品模拟
  • 六、分析
    • 6.1 分析准备工作
    • 6.2 能量分析
  • 总结


前言

因为我觉得GROMACS官方英文教程和李继存老师的GROMACS的中文教程对于新手非常不友好,并且有很多细节的地方并没有详细说明,导致有很多困难的地方。这里记录一下自己成功的实验案例。

书接上回,我们做完了GROMACS Tutorial 1,想必已经对基本操作有了足够的熟悉,这次我们来做蛋白质与配体的复合物教程。


提示:以下是本篇文章正文内容,下面案例可供参考

系统环境

这个和GROMACS Tutorial 1保持一致

电脑系统:win11(大部分操作) linux:ubuntu22.04 (小部分操作)
我知道gromacs很多在linux上搞,但我就要在windows上搞,windows可以很方便的可视化
python环境:3.6.13
大家还是最好创建一个新的conda环境,我以前就是用的3.11的python结果很多地方报错,最好还是和我用的版本一样
gromacs版本:gmx2020.6_AVX2_CUDA_win64
英文官方教程推荐using a GROMACS version in the 2018.x series,别用老的,老的以前不能使用gpu加速,之后处理会非常慢,除非你用超算,但这就不属于个人电脑能处理的,我是希望能在自己的电脑上跑出来
GPU:GTX1060 6G
相当老的甜品级显卡了,不要用AMD的显卡就行
重要软件:VSCode
我们很多操作都在用VSCode打开并且修改,必须要有,vscode里也装上gromacs的插件,更好看一点
其他软件:pymol3.8 VMD Avogadro(1.4配体准备时需要加氢操作会用到Avogadro)
如果环境不会搭的话我会再出一期专门配置环境的,环境配置并不是我们这次教程的重点


这章GROMACS英文教程地址:[GROMACS英文教程地址](http://www.mdtutorials.com/gmx/lysozyme/index.html)

特别强调

我们所有在的命令操作都要在工作目录中进行!

一、预处理阶段

我先放英文教程,再说我的。
在这里插入图片描述

1.1 蛋白质配体分离以及除水操作

下载T4溶菌酶 3HTB 这个是蛋白质和配体一起,我们第一步还是除水。
在这里插入图片描述
用pymol打开3HTB,可以看到最中间的就是配体部分,在GROMACS Tutorial 1我们用的VsCode进行除水,今天再介绍另一种方法,用pymol进行除水。
用pymol打开3HTB,外围有很多红色的小分子,都是水
在这里插入图片描述
点击3htb的Action(A)选项选择remove waters,再点击右下角S,显示序列信息。
在这里插入图片描述
处理完之后发现上方显示序列信息并且水已经除去。
在这里插入图片描述
并且发现166之后有个JZ4的配体文件。我们点击JZ4,选择将其摘出。
在这里插入图片描述

这下生成obj01,这个我们摘出的JZ4配体
在这里插入图片描述
之后我们针对原先3THB蛋白,删除除了蛋白质以外的部分。就是删除P04和JZ4,只保留蛋白。因为JZ4被摘除了,所以刚刚JZ4的地方显示为BME
在这里插入图片描述
点击P04,P04,BME之后,鼠标右键选择remove。在这里插入图片描述
这样我们就得到了一个蛋白质文件和一个配体文件
在这里插入图片描述
然后将两个文件分别保存。
在这里插入图片描述

依次保存蛋白质文件和配体文件到工作目录!并且分别命名为3thb_myclean.pdb和jz4.pdb文件(注意文件命名,之后操作要与文件名对应)
在这里插入图片描述
得到两个文件
在这里插入图片描述

1.2 选择力场识别JZ4配体

因为GROMACS提供的所有力场都不能识别JZ4配体,所以需要采用推荐力场
两种方式 1、采用在线 2、采用官方力场

1.2.1 使用在线力场解析

针对1.2.1使用在线力场解析,我这里不多讲解,有兴趣的同学可以自己研究一下。我着重会讲解官方推荐的方法,在1.2.2里。

由于力场无法自动处理配体,我们需要第三方的方法获得配体的力场参数,使用ACPYPE在线版处理配体
在这里插入图片描述
上传jz4.pdb文件得到
在这里插入图片描述

1.2.2 使用官方推荐力场CHARMM36解析

在这里插入图片描述
点击MacKerell lab website,选择for GROMACS
在这里插入图片描述

下载力场及相应的py文件在这里插入图片描述
在这里插入图片描述

我选择的是charmm36_ljpme-jul2022.ff.tgz力场文件,因为我的python版本是3.8,所以我选择的是cgenff_charmm2gmx_py3_nx2.py脚本文件。
将下载好的力场文件和python文件放进工作目录中,并且将力场文件进行解压。
这是下载好的python文件
在这里插入图片描述
力场压缩版解压后得到一个文件夹。

在这里插入图片描述

这里的文件夹和python文件都要放在工作目录中

1.3 蛋白的top文件准备

在这里插入图片描述

进入控制台,进入工作目录。(工作目录cmd或者conda promp进工作目录)

gmx pdb2gmx -f 3HTB_clean.pdb -o 3HTB_processed.gro -ter

这里的文件要与1.1保存的文件一致,比如我刚刚保存的蛋白质文件叫3HTB_myclean.pdb,那么执行代码也要相应的变化。
在这里插入图片描述
选择刚刚装上的力场 1
选择1回车
之后选择水模型 选择TIP3P
在这里插入图片描述
选择1回车
之后选择终端类型 选择NH3+
在这里插入图片描述
选择1回车
之后选择羧基端类型 选择COO-
在这里插入图片描述
选择0 选择COO-
生成结构文件gro 拓扑文件top 位置限制文件itp
在这里插入图片描述蛋白质准备结束

1.4 配体的top文件准备

在这里插入图片描述
我们的力场选择了官方推荐的charmm36力场,自然选择后续的CGenFF(The official CHARMM General Force Field server)
但是使用CgenFF之前要加氢 使用Avogadro来进行加氢
使用Avogadro打开我们的jz4.pbd文件,选择Add Hydrogens
选择完成后File->Save as保存成mol2格式。
在这里插入图片描述
保存mol2格式,加完氢的文件得到
在这里插入图片描述
用vscode打开
在这里插入图片描述
这个文件是不行的,配体名字没有,只有原子信息。我们需要修改他。
在vscode中在工作目录创建一个新的文件,命名为jz4_h_jz4.mol2,将刚刚的jz4_h.mol2的文件内容全部复制粘贴过去。
修改我画圈的地方(1、将*******改成配体名字JZ4;2、将LIG1改成配体名字JZ4)
在这里插入图片描述
修改好的jz4_h_jz4.mol2文件如下
在这里插入图片描述
保存jz4_h_jz4.mol2文件
在这里插入图片描述

对于修改好的jz4_h_jz4.mol2要进行键的修饰
使用sort_mol2_bonds.pl进行修饰,点击这里是文件信息,将其复制粘贴之后,进入linux中,上传我们修改好名字的jz4_h_jz4.mol2文件和sort_mol2_bonds.pl,在linux终端中运行

perl sort_mol2_bonds.pl jz4_h_jz4.mol2 jz4_fix.mol2

在这里插入图片描述
得到文件jz4_fix.mol2文件,将其从linux文件中传回windows里的工作目录。
在这里插入图片描述
将这个文件上传到CgenFF进行,点击这里是CgenFF的网址
登录后选择最上方uploda molecule
在这里插入图片描述
上传我们已经修饰好键的mol2文件。
在这里插入图片描述
cgenff从mol2文件生成str文件,将其下载,用vscode打开
在这里插入图片描述
生成的str文件是CgenFF自己给你的top文件进行打分,如果小于10则cgenff认为你这个top很不错 10-50凑活 大于50不能用
可以用cgenff来检查自己的蛋白质复合物的配体的情况

1.5 使用CgenFF生成配体top文件

py脚本使用在这里插入图片描述
配体立场使用在这里插入图片描述

python cgenff_charmm2gmx.py JZ4 jz4_fix.mol2 jz4.str charmm36-jul2022.ff

这里的JZ4一定是在1.4里你自己修改的*******那里的名字。一定要对应上,否则gromacs就会报错。
在这里插入图片描述
第一次运行报错,提示gbk不能被识别,这是我们python脚本有问题,修改一下编码格式。
打开我们的cgenff_charmm2gmx_py3_nx2.py脚本文件。
将里面所有的f = open(str_filename, 'r')改为f = open(str_filename, 'r',encoding='utf-8')
注意是所有的f = open(str_filename, 'r')改为f = open(str_filename, 'r',encoding='utf-8')!!!!

修改好后再进行执行,成功
在这里插入图片描述

生成的文件如下:拓扑文件top 位置限制文件itp
在这里插入图片描述

gmx editconf -f jz4_ini.pdb -o jz4.gro

在这里插入图片描述
生成结构gro文件和拓扑文件top
在这里插入图片描述

1.6 组合蛋白质和配体,修改生成的gro文件和top文件,生成complex文件

1.6.1 修改gro文件

针对上一步生成的3HTB_processed.gro(1.3生成的)和这一步生成的jz4.gro
要将jz4粘贴进去生成新的complex.grp(先复制一份3HTB_processed.gro,再把jz4.gro加进去)

1.3生成的3HTB_processed.gro用vscode打开如下,注意第二行2614显示原子个数
在这里插入图片描述
1.5生成的jz4.gro用vscode打开如下,注意第二行22显示原子个数
先复制一份3HTB_processed.gro命名为complex_1.gro,再把jz4.gro加进去,加到最后一行之前即可,修改好的complex_1.gro文件如下

在这里插入图片描述
针对已经添加的jz4.gro的complex_1.gro文件,还要修改在第二行修改原子个数,complex_1.gro的原子个数等于3HTB_processed.gro的原子个数+jz4.gro的原子个数,也就是2614+22=2636
把complex_1.gro的原子个数改为2636
在这里插入图片描述

1.6.2 修改top文件

针对1.5生成的topol.top和jz4.itp文件
在前面环境说明条件中增加条件jz4.ptm文件
在这里插入图片描述
在生成的topol.top文件的水模型前加配体文件
在这里插入图片描述
在最后一行添加配体文件
在这里插入图片描述
保存top文件,准备工作结束。

二、添加离子

2.1 定义盒子并添加溶剂

定义12面体的盒子

gmx editconf -f complex_1.gro -o newbox.gro -bt dodecahedron -d 1.0

在这里插入图片描述
生成
在这里插入图片描述
往盒子中添加溶剂
gmx solvate -cp newbox.gro -cs spc216.gro -p topol.top -o solv.gro
在这里插入图片描述
前后top文件对比
在这里插入图片描述
在这里插入图片描述
多出了SOL溶剂
生成
在这里插入图片描述
理论上应该是十二面体并且蛋白质在最中间
可视化有些问题,不过无伤大雅
在这里插入图片描述

2.2 添加离子准备

第一步生成蛋白质top时复合物带6个正电荷
先生成配置mdp文件,在工作目录中用vscode创建ions.mdp文件,点击这里复制粘贴进ions.mdp并保存。
在这里插入图片描述

gmx grompp -f ions.mdp -c solv.gro -p topol.top -o ions.tpr

在这里插入图片描述
生成
在这里插入图片描述

2.3 添加离子

官方给的代码,这个不可以复制粘贴直接使用,必须根据相应力场文件里的ions.itp中找相应离子缩写,这个我在GROMACS Tutorial 1的3.3说的很详细了,可以去回看一下。GROMACS Tutorial 1

gmx genion -s ions.tpr -o solv_ions.gro -p topol.top -pname NA -nname CL -neutral

在charmm36力场里,钠离子叫SOD,氯离子叫CLA,因此我们的代码应该改成

gmx genion -s ions.tpr -o solv_ions.gro -p topol.top -pname SOD -nname CLA -neutral

在这里插入图片描述
选择15 SOL进行包埋离子,离子要替换掉的对象一定是溶剂
在这里插入图片描述
生成
在这里插入图片描述
查看top文件,topol文件中已经加入cla离子
因为蛋白质带6个正电荷,所以要补6个氯离子
在这里插入图片描述
用pymol可视化一下
在这里插入图片描述

肉眼可见添加了六个cl离子

三、能量最小化

准备配置文件em.mdp,先生成配置mdp文件,在工作目录中用vscode创建em.mdp文件,点击这里复制粘贴进em.mdp并保存。
在这里插入图片描述

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

生成
在这里插入图片描述
gmx mdrun -v -deffnm em

在这里插入图片描述
生成
在这里插入图片描述

四、限制配体及体系平衡

4.1 限制复合物

在这里插入图片描述

gmx make_ndx -f jz4.gro -o index_jz4.ndx

在这里插入图片描述
输入

0 & ! a H*

再输入

q

生成
在这里插入图片描述

gmx genrestr -f jz4.gro -n index_jz4.ndx -o posre_jz4.itp -fc 1000 1000 1000

在这里插入图片描述
选择3

修改top文件
在这里插入图片描述

gmx make_ndx -f em.gro -o index.ndx

在这里插入图片描述
先组合蛋白和配体
选择1|13
还需要把水和离子组合一下
选择14|15
再选择q,这里生成的组合很重要!!!后面要用!!!!!
蛋白质配体组合叫Protein_JZ4
水离子组合叫CLA_Water
在这里插入图片描述

生成
在这里插入图片描述

4.2 nvt平衡

4.2.1 nvt平衡设置

准备配置文件nvt.mdp,先生成配置mdp文件,在工作目录中用vscode创建nvt.mdp文件,点击这里复制粘贴进nvt.mdp并保存。
这里不能直接用官方文档给的代码,要将里面的tc-grps修改成我们刚刚组合的东西。蛋白质配体组合叫Protein_JZ4,水离子组合叫CLA_Water
在这里插入图片描述
改成
在这里插入图片描述
之后保存
在这里插入图片描述

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

生成
在这里插入图片描述

gmx mdrun -v -deffnm nvt

在这里插入图片描述
生成
在这里插入图片描述

4.2.2 nvt画图

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

在这里插入图片描述
选16 0

在这里插入图片描述
python画图(具体代码在GROMACS Tutorial 1里详细讲过,可以回看一下)
在这里插入图片描述

4.3 npt平衡

4.3.1 npt平衡设置

准备配置文件npt.mdp,先生成配置mdp文件,在工作目录中用vscode创建npt.mdp文件,点击这里复制粘贴进npt.mdp并保存。
这里不能直接用官方文档给的代码,要将里面的tc-grps修改成我们刚刚组合的东西。蛋白质配体组合叫Protein_JZ4,水离子组合叫CLA_Water
改成
在这里插入图片描述

gmx grompp -f npt.mdp -c nvt.gro -t nvt.cpt -r nvt.gro -p topol.top -n index.ndx -o npt.tpr

生成
在这里插入图片描述

gmx mdrun -v -deffnm npt

生成
在这里插入图片描述

4.3.2 npt画图

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

在这里插入图片描述选17 0
在这里插入图片描述
python画图
在这里插入图片描述

五、成品模拟

准备配置文件md.mdp,先生成配置mdp文件,在工作目录中用vscode创建md.mdp文件,点击这里复制粘贴进npt.mdp并保存。
这里不能直接用官方文档给的代码,要将里面的tc-grps修改成我们刚刚组合的东西。蛋白质配体组合叫Protein_JZ4,水离子组合叫CLA_Water
改成
在这里插入图片描述
生成
在这里插入图片描述

gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -n index.ndx -o md_0_10.tpr

生成
在这里插入图片描述

gmx mdrun -v -deffnm md_0_1 -nb gpu

在这里插入图片描述
在这里插入图片描述

gtx1060预计从18点45跑到22点01,预计跑4个小时
生成
在这里插入图片描述

六、分析

6.1 分析准备工作

消除周期性

gmx trjconv -s md_0_10.tpr -f md_0_10.xtc -o md_0_10_center.xtc -center -pbc mol -ur compact

在这里插入图片描述
选择1作为体系进行偏移
在这里插入图片描述选择0为输出结果
生成
在这里插入图片描述
因为蛋白质复合物涉及许多跨越周期边界,因此需要确定一个定心的自定义索引组

gmx trjconv -s md_0_10.tpr -f md_0_10_center.xtc -o start.pdb -dump 0

在这里插入图片描述
选择0
生成
在这里插入图片描述
为了更平滑的可视化,执行旋转和平移拟合

gmx trjconv -s md_0_10.tpr -f md_0_10_center.xtc -o md_0_10_fit.xtc -fit rot+trans

生成
在这里插入图片描述

6.2 能量分析

准备配置文件ie.mdp,先生成配置mdp文件,在工作目录中用vscode创建ie.mdp文件,点击这里复制粘贴进ie.mdp并保存。
生成
在这里插入图片描述

gmx grompp -f ie.mdp -c npt.gro -t npt.cpt -p topol.top -n index.ndx -o ie.tpr

生成
在这里插入图片描述

gmx mdrun -v -deffnm ie -rerun md_0_10.xtc -nb cpu

生成
在这里插入图片描述

gmx energy -f ie.edr -o interaction_energy.xvg

这个只是示例,根据你选的选项生成不同图,比如the short-range Lennard-Jones energy(LJ-SR)或者The average short-range Coulombic interaction energy(Coul-SR)
在这里插入图片描述
在这里插入图片描述

gmx energy -f ie.edr -o LJ_SR.xvg

选择22 0
在这里插入图片描述
能量为-99±7.0 kj/mol对应官方文档the short-range Lennard-Jones energy为-99.1±7.2 kj/mol
在这里插入图片描述

gmx energy -f ie.edr -o coul_SR.xvg

选择 21 0
在这里插入图片描述能量为-19±7.8kj/mol对应官方文档The average short-range Coulombic interaction energy为-20.5±7.4kj/mol
在这里插入图片描述

总结

这就是GROMACS Tutorial 5: Protein-Ligand Complex 中文实战教程的所有内容啦,因为我的专业是软件工程,gromacs有时候科研的时候会用到,踩了很多坑,希望学弟学妹们就别绕远路了。欢迎大家在我的评论区留言讨论。

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

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

相关文章

【Java每日一题】— —第十九题:用二维数组存放九九乘法表,并将其输出。(2023.10.03)

🕸️Hollow,各位小伙伴,今天我们要做的是第十九题。 🎯问题: 用二维数组存放九九乘法表,并将其输出。 测试结果如下: 🎯 答案: System.out.println("九九乘法表如…

Stable Diffusion云服务器部署完整版教程

Stable Diffusion云服务器部署完整版教程 2023年07月04日 22:30 3607浏览 18喜欢 22评论 <span class"bili-avatar-icon bili-avatar-right-icon "></span> </div>薯片_AI 粉丝&#xff1a; 1513 文章&#xff1a; 1 设置分组取消关注 已关注 …

CRMEB商城源码开源标准版v5.2.0+后端+前端uni-app开源包安装教程

CRMEB打通版是一款全开源支持商用的PHP多语言商城系统,系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步&#xff0c;可快速打包生成APP&#xff1b; 播播资源整合格安装测试了CRMEB商城系统功能非常全&#xff0c;官方的文档教程也非常多&#xff0c;包括如何打包…

linux 笔记 安装 anaconda

1 找到anaconda 安装包 Free Download | Anaconda 2 在linux环境中安装对应安装包 3 安装完毕后查看是否安装好 发现不行&#xff0c;需要配置环境变量 4 配置环境变量 vim /etc/profile使用这个&#xff0c;发现对应的文件是只读文件 sudo vim /etc/profile在最下面加一…

【数据结构与算法】- 数组

数组 1.1 数组的定义1.2 数组的创建1.3 数组在内存中的情况2.1 初始化数组2.2 插入元素2.3 删除元素2.4 读取元素2.5 遍历数组 1.1 数组的定义 数组中的是在内存中是连续存储的&#xff0c;内存是由一个个内存单元组成的&#xff0c;每一个内存单元都有自己的地址&#xff0c;…

【匠心打造】从0打造uniapp 可视化拖拽设计 c_o 第十篇

一、click one for uniapp置顶&#xff1a; 全部免费开源 (你商业用途也没关系&#xff0c;不过可以告诉我公司名或者项目名&#xff0c;放在官网上好看点。哈哈-_-) 二、写在之前 距离上一篇更新已经大约4个月了&#xff0c;公司的事情&#xff0c;自己的一些琐事一直没时间…

蓝队分析研判工具箱V0.81,支持14种哥斯拉流量解密|溯源辅助|佛法搜索|shiro、log4j2解密|各种java反编译...

Part1 前言 大家好&#xff0c;我是ABC_123。“蓝队分析研判工具箱”就是把我平时写的蓝队小工具集合起来形成的&#xff0c;重点解决蓝队分析工作中的一些痛点问题。此0.81版本支持哥斯拉webshell全部14种加密流量的解密&#xff0c;感谢"小黑"的帮助&#xff0c;添…

管道-有名管道

一、有名管道 有名管道与匿名管道的不同&#xff1a; 有名管道提供了一个路径名&#xff0c;并以FIFO的文件形式存在于文件系统中。与匿名管道不同&#xff0c;有名管道可以被不相关的进程使用&#xff0c;只要它们可以访问该路径&#xff0c;就能够通过有名管道进行通信。 FI…

7.wifi开发【智能家居:终】,实践总结:智能开关,智能采集温湿,智能灯。项目运行步骤与运行细节,技术归纳与提炼,项目扩展

一。项目运行步骤与运行细节 1.项目运行步骤&#xff08;一定有其他的运行方式&#xff0c;我这里只提供一种我现在使用的编译方式&#xff09; &#xff08;1&#xff09;项目运行使用软件与技术&#xff1a; 1.Virtual linux 使用这个虚拟机进行程序的编译 2.Makefile与shl…

构建捡垃圾机器人的 ROS 2 项目

一、说明 本系列是关于学习如何使用 ROS2、Docker 和 Github 设计、设置和维护机器人项目。 先决条件 — ROS2 软件包的基本知识、实现发布者、订阅者、操作并连接它们。 我们之前在 ROS2 中了解了不同的部分。但是&#xff0c;在我们转向实际的基于硬件的项目之前&#xff0c;…

【C++】C++11——C++11介绍、初始化列表、声明、auto、decltype、nullptr、范围for循环

文章目录 C111.C11介绍2.初始化列表2.1&#xff5b;&#xff5d;初始化2.2 std::initializer_list 3.声明3.1auto3.2decltype3.3nullptr 4.范围for循环 C11 1.C11介绍 C11是C编程语言的一个版本&#xff0c;于2011年发布。C11引入了很多新特性&#xff0c;比如&#xff1a;类型…

多线程 - 单例模式

单例模式 ~~ 单例模式是常见的设计模式之一 什么是设计模式 你知道象棋,五子棋,围棋吗?如果,你想下好围棋,你就不得不了解一个东西,”棋谱”,设计模式好比围棋中的 “棋谱”. 在棋谱里面,大佬们,把一些常见的对局场景,都给推演出来了,照着棋谱来下棋,基本上棋力就不会差到哪…

思科:iOS和iOSXe软件存在漏洞

思科警告说,有人试图利用iOS软件和iOSXe软件中的一个安全缺陷,这些缺陷可能会让一个经过认证的远程攻击者在受影响的系统上实现远程代码执行。 中严重程度的脆弱性被追踪为 CVE-2023-20109 ,并以6.6分得分。它会影响启用Gdoi或G-Ikev2协议的软件的所有版本。 国际知名白帽黑客…

CSS鼠标指针表

(机翻)搬运自:cursor - CSS: Cascading Style Sheets | MDN (mozilla.org) 类型Keyword演示注释全局autoUA将基于当前上下文来确定要显示的光标。例如&#xff0c;相当于悬停文本时的文本。default 依赖于平台的默认光标。通常是箭头。none不会渲染光标。链接&状态contex…

最短路径专题2 Dijkstra 最短距离(堆优化版)

题目&#xff1a;样例&#xff1a; 输入 6 6 0 0 1 2 0 2 5 0 3 1 2 3 2 1 2 1 4 5 1 输出 0 2 3 1 -1 -1 思路&#xff1a; 根据题意&#xff0c;数据范围也小&#xff0c;也可以用朴素版的Dijsktra来做&#xff0c;朴素版的Dijsktra我做过了一遍了&#xff0c;可以看以一下我…

【统计学】Top-down自上而下的角度模型召回率recall,精确率precision,特异性specificity,模型评价

最近在学 logistic regression model&#xff0c;又遇见了几个之前的老面孔。 召回率recall, 精确率precision&#xff0c;特异性spcificity&#xff0c;准确率accuracy&#xff0c;True positive rate&#xff0c;false positive rate等等名词在学习之初遇到的困难在于&#x…

Vue3最佳实践 第六章 Pinia,Vuex与axios,VueUse 2(Vuex)

Vuex 状态管理 Vuex 是一种集中管理所有组件中数据的机制。它和Pinia一样都是解决使用 props 和 $emit 事件在组件之间传递数据时&#xff0c;当组件之间频繁传递&#xff0c;层级增加时管理数据就变得困难。Vue 的官方状态管理库已更改为Pinia&#xff0c;Pinia 具有与 Vue 几…

微信小程序-1

微信开发文档 https://developers.weixin.qq.com/miniprogram/dev/framework/ 报错在调试器的console里找 一、结构 Ctrl 放大字体 Ctrl - 缩小 设置 - - - 外观设置 - - - 可以修改喜欢的主题颜色 index.js index.json index.wxml 》 html <view class"box&qu…

【kubernetes】kubernetes中的StatefulSet使用

TOC 1 为什么需要StatefulSet 常规的应用通常使用Deployment&#xff0c;如果需要在所有机器上部署则使用DaemonSet&#xff0c;但是有这样一类应用&#xff0c;它们在运行时需要存储一些数据&#xff0c;并且当Pod在其它节点上重建时也希望这些数据能够在重建后的Pod上获取&…

Python爬虫案例入门教程(纯小白向)——夜读书屋小说

Python爬虫案例——夜读书屋小说 前言 如果你是python小白并且对爬虫有着浓厚的兴趣&#xff0c;但是面对网上错综复杂的实战案例看也看不懂&#xff0c;那么你可以尝试阅读我的文章&#xff0c;我也是从零基础python开始学习爬虫&#xff0c;非常清楚在过程中所遇到的困难&am…