Python包,用于生成和对接针对大分子的分子

gendock的Python项目详细描述


金多克

GenDock是一个Python脚本,它既可以随机生成分子,也可以使用预先存在的分子库,使用AutoDock Vina筛选大分子(或多个大分子),以帮助寻找新的受体结合配体。机器学习算法也被设计用来帮助识别过程。在

GenDock是不是设计来对配体-受体结合进行高度详细的计算分析,但是是为高通量筛选而设计的,其结果可用于进一步分析。在

设置

GenDock仅在macOS和Linux上受支持。Windows用户可以使用WSL安装Ubuntu并从那里使用GenDock。在

我建议使用Anaconda来设置python环境。GenDock依赖于autodock vinardkitopenbabelscikit learn——所有这些都可以由Anaconda处理,并且应该安装到单个环境中。在

准备受体

将大分子/受体保存在receptor目录中为[name].pdbqt,然后Autodock Vina配置文件必须命名为[name]-配置文件。这些应该用你的vina属性、网格大小和位置等进行编辑。我建议使用AutoDock工具找出适合你的接收器的网格大小和位置,并保存为.pdbqt文件格式。已经有一个名为receptor1的默认配置文件-配置文件参数设置为:

receptor = receptor/receptor.pdbqt

center_x =  0
center_y =  0
center_z =  0

size_x = 30
size_y = 30
size_z = 30

num_modes = 10

奔跑的GenDock

确保从工作目录运行gendock,即在名为receptors的目录中包含receptors的gendock。应遵循以下命令运行GenDock:

^{pr2}$

其中:

name是实验的名称,所有文件都将保存在data目录中。GenDock将用这个参数给出的实验名称创建一个目录(如果还不存在的话)。在

target_mass是要生成的分子的近似质量。在

可选nligands是要生成的分子数,如果给定一个参数,则将生成所有可能的分子(这可能包括数千万个分子-注意)。如果给定一个数字,那么这个数量的分子将从可能产生的分子中随机选择。在

可选mol是一个RDKit mol对象,它包含通配符原子,即“[*]”原子。例如,可以通过以下方法生成RDKit mol:

from rdkit import Chem
import gendock as gd
m = Chem.MolFromSmiles('[*]c1cccc[*]c1')
gd.generate('test', 150, mol=m)

可选receptors是受体文件的名称,即1ELN(在此不包括“.pdbqt”)。这必须是一个列表,即使你只使用一个受体。在

可选ligand_num是要开始的配体。如果你已经生成了1000个配体,然后在对接500个配体后被切断,那么这是很有用的。设置为501,它将从停止的地方继续。在

结果

GenDock将在data/exp_name/目录中保存一个CSV文件,其中包含配体的SMILES字符串以及其他化学性质,以及每个受体的最佳结合能。GenDock将AutoDock Vina筛选的结果存储在Vina_文件目录中。每个目录中都有PDBQT文件和日志文件。它们被命名为ligand_X-r.pdbqt或.txt,其中X是配体编号,r是受体名称。在

功能组

功能组可以在scripts/Functional中找到_groups.py作为微笑字符串的列表。它们作为s_listnt_listt_list导入,并且可以像运行gendock之前的任何其他python列表一样进行编辑。在

import gendock as gd
gd.s_list.append('CCC[*]')
gd.s_list.remove('CCC[*]')

参考文献

AutoDock Vina:J计算机化学。2010年1月30日;31(2):455-61。doi:10.1002/jcc.21334

打开巴贝尔:J.Cheminf。2011年3月33日。doi:10.1186/1758-2946-3-33

化学信息与机器学习软件。RDKit.org

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有主构造函数的java继承类   java目录和文件名连接不起作用   我有一个Java应用程序在JRE 6中运行,但在JRE 7中没有。如何在JRE7中运行应用程序   Java中数字字符串的udp NumberFormatException   java试图用<br/>替换<br>、<br>、<br+属性>标记   java Android视图不能被其他线程触及?   java语言对整个单词进行文本匹配?   java RESTEasy/JAXRS规范版本?   Java扩展泛型   java在安卓示例蓝牙聊天应用程序中,这个tmp变量的用途是什么   gwt这在java中代表什么?   java如何访问try块中的参数?   为什么在不同的类中使用相同的“For循环”会在Java中产生不同的输出?   java Google AppEngine 500错误   删除目录时的Java Ant性能   java如何仅在我的应用程序中获取运行线程   java将我的jar导入spark shell   Java流的性能。concat VS Collection。阿道尔   rest在这个Java代码中“entry”是什么意思?