UCSF DOCK 分子对接详细案例(05)- 遗传算法用于分子生成 DOCK_GA

news2024/9/24 15:23:10

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


前言

本文是UCSF DOCK的使用案例分享,关于DOCK中基于配体-靶标相互作用的遗传算法用于分子生成,模块名称 DOCK_GA。利用进化原理的构建方法, 包括分子重组、突变和自然选择, 以指导与靶标有特定相互作用的配体的从头设计。DOCK_GA可用于:
(1)生成与靶标具有特定相互作用的结构类似物;
(2)作为从分子片段生长分子的从头设计方法;
(3)作为筛选靶向结合位点分子的方法的补充。

一、软件及操作环境

操作环境: Ubuntu 22.04
软件版本:
UCSF DOCK 6.11
,安装可以参考这篇博文;
UCSF Chimera 1.17.3,UCSF ChimeraX 1.7.1,安装可以参考这篇博文。
作业管理Slurm:可参考作业调度开源软件Slurm的安装与使用

二、遗传算法

遗传算法是达尔文关于生物进化理论的一种算法,在个体突变的基础上控制引导种群进化方向,在算法上用来解决全局优化的问题。
遗传算法的介绍可参考:遗传算法详解 附python代码实现
在这里插入图片描述

在本实例中,我们将继续以布鲁顿氏酪氨酸激酶(BTK)蛋白作为靶点,使用DOCK_GA模块,完成从配体生成片段到构建新配体。

三、结构文件准备

输入文件来自于前一篇案例分享:UCSF DOCK 分子对接详细案例(01)

新建本案例的目录:

cd DOCK_workdir
mkdir 013_DOCK_GA && cd 013_DOCK_GA
cp ../001_structure/up9_rec_withH.mol2  ./

四、 DOCK_GA

使用DOCK_GA,首先生成配体片段库。

片段库是具有连接点(Dummy atom,Du表示)的基团,可以用Chimera或者ChimeraX查看,Du分别用洋红色与灰色表示。DOCK为了以实现更好的可视化,使用fragment_library_trans_origin参数将所有输出片段平移到原点,并以容易观察的方式展示给用户。

4.1 Fragment Library Generation

与之前的运行方式类似,我们首先生成一个参数输入文件,然后用dock6运行根据需要完善参数,检查运行,最后正式运行。

mkdir fraglib && cd fraglib

建立输入空文件:

touch 8u2e.fraglib.in

参考一下参数,设置输入参数。

conformer_search_type                                        flex
write_fragment_libraries                                     yes
fragment_library_prefix                                      8u2e_fraglib
fragment_library_freq_cutoff                                 1
fragment_library_sort_method                                 freq
fragment_library_trans_origin                                no
use_internal_energy                                          no
ligand_atom_file                                             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_AMBER_parm99.defn
flex_defn_file                                               $DOCKHOME/parameters/flex.defn
flex_drive_file                                              $DOCKHOME/parameters/flex_drive.tbl
ligand_outfile_prefix                                        8u2e_fraglib_output
write_orientations                                           no
num_scored_conformers                                        1
rank_ligands                                                 no

运行:

dock6 -i 8u2e.fraglib.in

产生与该片段文库相关的扭转环境文件,其名称为8u2e_fraglib_torenv.dat。

利用combine_torenv.py合并:

python ${DOCKHOME}/bin/combine_torenv.py 8u2e.fraglib_torenv.dat ${DOCKHOME}/parameters/fraglib_torenv.dat

生成一个新的列表:unique_full_sorted_fraglib. dat,这个文件记录了GA运行需要的Torsion Environments。

借助可合成性的原子环境(atom environments)的概念,DOCK使用Torsion Environments来表示分子等拓扑与键连接,并表示为一个正则字符串。用户配体分子的Torsion Environments可以与DOCK自带的合并,以提高遗传算法的成功率。可以使用自带的combine_torenv.py程序用于合并。

4.2 运行 GA

没有RDKit编译的情况

与4.1运行类似,产生一个空的输入文件 8u2e_GA.in:


```powershell
touch 8u2e_GA.in

运行:

dock6 -i 8u2e_GA.in

可以借鉴以下参数,完成交互式输入,完成后生成8u2e_GA.in文件。其中up9_rec_withH.mol2文件为,之前制备的配体输入文件。

conformer_search_type                                        genetic
ga_molecule_file                                             up9_rec_withH.mol2
ga_utilities                                                 no
ga_fraglib_scaffold_file                                     $DOCKHOME/parameters/fraglib_ga_scaffold.mol2
ga_fraglib_linker_file                                       $DOCKHOME/parameters/fraglib_linker.mol2
ga_fraglib_sidechain_file                                    $DOCKHOME/parameters/fraglib_sidechain.mol2
ga_torenv_table                                              unique_full_sorted_fraglib.dat
ga_max_generations                                           100
ga_xover_on                                                  yes
ga_xover_sampling_method_rand                                yes
ga_xover_max                                                 150
ga_bond_tolerance                                            0.5
ga_angle_cutoff                                              0.14
ga_check_overlap                                             no
ga_mutate_addition                                           yes
ga_mutate_deletion                                           yes../run_RF2.sh
ga_mutate_substitution                                       yes
ga_mutate_replacement                                        yes
ga_mutate_parents                                            yes
ga_pmut_rate                                                 0.3
ga_omut_rate                                                 0.7
ga_max_mut_cycles                                            5
ga_mut_sampling_method                                       rand
ga_num_random_picks                                          10
ga_max_root_size                                             5
ga_energy_cutoff                                             100
ga_heur_unmatched_num                                        2
ga_heur_matched_rmsd                                         2
ga_constraint_mol_wt                                         500
ga_constraint_rot_bon                                        10
ga_constraint_H_accept                                       10
ga_constraint_H_don                                          5
ga_constraint_formal_charge                                  4
ga_ensemble_size                                             200
ga_selection_method                                          elitism
ga_elitism_combined                                          no
ga_elitism_option                                            max
ga_max_num_gen_with_no_crossover                             1000
ga_name_identifier                                           8u2e.GA
ga_output_prefix                                             8u2e_GA_output
use_internal_energy                                          yes
internal_energy_rep_exp                                      12
internal_energy_cutoff                                       100
use_database_filter                                          no
orient_ligand                                                no
bump_filter                                                  no
score_molecules                                              yes
contact_score_primary                                        no
grid_score_primary                                           no
multigrid_score_primary                                      no
dock3.5_score_primary                                        no
continuous_score_primary                                     no
footprint_similarity_score_primary                           no
pharmacophore_score_primary                                  no
hbond_score_primary                                          no
internal_energy_score_primary                                no
descriptor_score_primary                                     yes
descriptor_use_grid_score                                    no
descriptor_use_multigrid_score                               no
descriptor_use_continuous_score                              no
descriptor_use_footprint_similarity                          no
descriptor_use_pharmacophore_score                           no
descriptor_use_tanimoto                                      no
descriptor_use_hungarian                                     no
descriptor_use_volume_overlap                                no
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
simplex_trans_step                                           1
simplex_rot_step                                             0.1
simplex_tors_step                                            10
simplex_anchor_max_iterations                                200
simplex_grow_max_iterations                                  200
simplex_grow_tors_premin_iterations                          00
simplex_random_seed                                          0
simplex_restraint_min                                        yes
simplex_coefficient_restraint                                10
atom_model                                                   all
vdw_defn_file                                                $DOCKHOME/parameters/vdw_AMBER_parm99.defn
flex_defn_file                                               $DOCKHOME/parameters/flex.defn
flex_drive_file                                              $DOCKHOME/parameters/flex_drive.tbl

运行:

dock6 -i 8u2e_GA.in -o 8u2e_GA.out

RDKit编译的情况

如果使用RDKit编译,可以在8u2e_GA.in加入以下参数:

sa_fraglib_path                                 $DOCKHOME/parameters/sa_fraglib.dat
PAINS_path                                      $DOCKHOME/parameters/pains_table_2019_09_01.dat

运行:

dock6.rdkit -i 8u2e_GA.in -o 8u2e_GA.out

结果文件中会增加RDKit描述符的数值。

在服务器上运行

创建slurm运行脚本:8u2e_GA.sh

输入以下内容:

#!/bin/bash
#SBATCH --time=48:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=12
#SBATCH --job-name=8u2e_GA_input
#SBATCH --output=8u2e_GA_output

dock6.mpi -i 8u2e_GA.in -o 8u2e_GA.out
#dock6.rdkit.mpi -i 8u2e_GA.in -o 8u2e_GA.out

运行:

sbatch 8u2e_GA.sh

运行~ 2 h。结果文件,保留了每代产生的分子。
*restart0000.mol2文件是DOCK_GA采样的初始文件;
8u2e_GA_output.restart0100.mol2,即为第100代产生的分子,包含有2400个新结构的分子。
可以通过ViewDock查看;可以看到生成了一系列与固有配体具有类似空间分布的分子结构。
在这里插入图片描述在8u2e_GA.in参数文件中,ga_max_generations控制遗传的代数;
simplex_random_seed可以将某一代的生成分子作为起始分子, 比如用第100代分子做起始,可将其设置为100。

以上生成的分子可以采用rigid,flex等方法重新打分,合理的打分结果可用来排序,最终用于分子挑选。

总结

本文是UCSF DOCK的使用案例,关于DOCK中DOCK_GA模块,基于配体-靶标相互作用的遗传算法用于分子从头设计。

参考资料

  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.coloradmin.cn/o/1491310.html

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

相关文章

能源大数据采集,为您提供专业数据采集服务

随着经济的不断发展,能源产业也逐渐成为国民经济的支柱产业之一。而对于能源行业来说,数据采集是一项至关重要的工作。以往,能源企业采集数据主要依靠人工收集、整理,但是这种方式不仅效率低下,而且容易出现数据不准确…

Spring——Bean的作用域

bean的作用域 Bean Scope Scope说明singleton(默认情况下)为每个Spring IoC容器将单个Bean定义的Scope扩大到单个对象实例。prototype将单个Bean定义的Scope扩大到任何数量的对象实例。session将单个Bean定义的Scope扩大到一个HTTP Session 的生命周期…

Python 面向对象编程——类的使用

一、学习目标 1.掌握类的定义和实例化对象。 2.熟练掌握类的构造函数__init__使用。 3.掌握类的继承机制和使用。 二、相关练习 1、定义一个玩具类Toy(),创建名字为“小汽车”、“手枪”和“积木”的玩具实例,计…

qt cmake添加resource文件

文章目录 方式一:方式二:qrc的使用 两种方式 方式一: 创建一个qrc文件,在qt_add_executable 中直接添加 qt_add_executable(helloworldmain.cppimageresources.qrc )方式二: 使用 qt_add_resources qt_add_resources(helloworld "app_images"PREFIX &…

tomcat nginx 动静分离

实验目的:当访问静态资源的时候,nginx自己处理 当访问动态资源的时候,转给tomcat处理 第一步 关闭防火墙 关闭防护 代理服务器操作: 用yum安装nginx tomcat (centos 3)下载 跟tomcat(centos 4&#xff0…

循环队列:一道使数据结构萌新知道什么是“愁滋味“的题目

这破题目肝了我一天半才搞明白,也正是因为这道题目,我才豁然明白了李煜所说的"剪不断,理还乱...别是一般滋味在心头"到底是什么"滋味".在完全搞明白之前,真的是放有放不下,理也理不清... 但是理解之后你会发现,嘛い---,也就那么个回事嘛O(∩_∩)O 目录 1…

瑞_Redis_短信登录(一)

文章目录 项目介绍1 项目准备1.1 导入SQL1.2 导入后端项目1.2 导入前端项目 🙊 前言:本文章为瑞_系列专栏之《Redis》的实战篇的短信登录章节的项目准备小节。由于博主是从B站黑马程序员的《Redis》学习其相关知识,所以本系列专栏主要是针对该…

Tonka Finance,BTCFi 浪潮的发动机

在 2023 年年初,Ordinals 技术方案为比特币 Layer1 带来了一种全新的资产发行方式,此后一场以比特币生态为主战场的新一轮资金、注意力价值争夺战打响,并且越来越多的加密原教旨主义者、密码极客们加入这场战争中。我们看到,铭文市…

【操作系统概念】 第1章:导论

文章目录 关于本书内容0.前言1.1操作系统的功能1.1.1 用户视角1.1.2 系统视角1.1.3 操作系统的定义 1.2 计算机系统的组成1.2.1 计算机系统的运行1.2.2 存储结构1.2.3 I/O结构 1.3 计算机系统体系结构1.4 操作系统的结构1.5 操作系统的执行1.5.1 双重模式与多重模式的执行1.5.2…

DolphinScheduler——介绍及架构设计

目录 一、DolphinScheduler介绍 1.1 概述 1.2 特性 1.2.1 简单易用 1.2.2 丰富的使用场景 1.2.3 High Reliability 1.2.4 High Scalability 1.3 名词解释 1.3.1 名词解释 1.3.2 模块介绍 二、DolphinScheduler架构原理 2.1 系统架构图 2.2 架构说明 2.2.1 Maste…

【AI视野·今日Sound 声学论文速览 第五十一期】Mon, 4 Mar 2024

AI视野今日CS.Sound 声学论文速览 Mon, 4 Mar 2024 Totally 6 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers VoxGenesis: Unsupervised Discovery of Latent Speaker Manifold for Speech Synthesis Authors Weiwei Lin, Chenhang He, Man Wai Mak, …

66-ES6:var,let,const,函数的声明方式,函数参数,剩余函数,延展操作符,严格模式

1.JavaScript语言的执行流程 编译阶段:构建执行函数;执行阶段:代码依次执行 2.代码块:{ } 3.变量声明方式var 有声明提升,允许重复声明,声明函数级作用域 访问:声明后访问都是正常的&…

最新LangChain+GLM4开发AI应用程序系列(三):RAG检索增强生成篇

最新LangChainGLM4开发AI应用程序系列(三):RAG检索增强生成篇 一、前言二、RAG介绍1、文档加载器2、文本分割器3、嵌入模型4、向量数据库 三、RAG开发案例1、创建智谱GLM4大模型对象2、加载文档3、文本分割4、向量化存储5、向量库检索6、生成…

初始网络 --- 网络基础

目录 0、 前言 1、 计算机网络发展背景 1.1. 局域网(LAN) && 广域网(WAN) 2、 认识并理解协议 3、 初始网络协议 3.1. 协议分层 4、 TCP/IP 五层(或四层)模型 4.1. 简单了解TCP/IP层状体系 4.2. TCP/IP协议层状结构和计算机层状结构的关系 5、 OSI七层模型 …

程序员如何选择职业赛道:探索未知,寻找激情

作为程序员,我们时常面临职业选择的难题。在这个充满变革的行业中,如何选择适合自己的职业赛道成为了我们关注的焦点。本文将探讨程序员如何选择职业赛道,帮助你找到适合自己的发展方向。 一、认识自己的兴趣和激情 首先,我们需要…

为什么要用云手机进行国外社媒监控?

随着全球化的不断发展,社交媒体已成为企业推动全球品牌知名度和业务流量的关键渠道。在这个数字时代,云手机作为一种强大的工具,为国外社交媒体监控提供了全新的可能性。在这篇文章中,我们将探讨使用云手机进行国外社媒监控的重要…

RHCSA练习2

一、实验题目 1、文件查找 (1)在当前目录及子目录中,查找小写字母开头的txt文件 [rootroot ~]# cd /etc [rootroot etc]# find . -type f -name [a-z]*.txt (2)在/etc及其子目录中,查找host开头的文件 …

Java解决杨辉三角

Java解决杨辉三角 01 题目 给定一个非负整数 *numRows,*生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRo…

人工智能-飞桨

文章目录 概要安装零基础教程基础知识小结 概要 集核心框架、基础模型库、端到端开发套件、丰富的工具组件于一体的深度学习平台 官方入口 安装 python安装 python官方下载 PaddlePaddle安装 python -m pip install paddlepaddle2.6.0 -i https://mirror.baidu.com/pypi/s…

【C++】类和对象终篇

个人主页 : zxctscl 文章封面来自:艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 友元2.1 友元函数2.2 友元类 3. 内部类4. 匿名对象5. 拷贝对象时的一些编译器优化6. 再次理解类和对象 1. 前言 在上一篇博客中提到了类和对象中的构造函数与stat…