小分子结合位点/成药位点识别工具-PointSite

一、PointSite背景简单介绍

现在有很多AI开发的各种方法和工具,可以替代传统的CADD工具。这里介绍的PointSite这个工具可以从原子级别识小分子的结合位点,参考文章来源于Zhen Li的工作,原文链接:

PointSite: a point cloud segmentation tool for identification of protein ligand binding atoms (biorxi​​​​​​v.org)


 

 PointSite将原始的3D蛋白质结构转译成点云(point clouds), 然后使用基于U-Net的Submanifold Sparse Convolution (SSC)进行分割。PointSite在位点的原子层级识别上较其他方法获得显著的提升,当与其他口袋层面的识别方法相结合,可以获得最优的性能。

文章还是很有意思的,感兴趣的同学可以看看。

二、PointSite的安装及使用

PointSite提供了源代码:PointSite/PointSite: PointSite: a point cloud segmentation tool for identification of protein ligand binding atoms (github.com)

## 安装方法

#复制源代码
git clone --recursive https://github.com/PointSite/PointSite_Inference.git
cd PointSite_Inference/
#建立conda虚拟环境,安装使用到的包
./install.sh 

在执行 /install.sh可能会出现pytroch装不上的情况。单独使用conda安装一下即可,安装1.4.0或者1.5.0都可以:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
运行案例:
conda activate pointsite_inference
chmod +x ./util/PDB_Tool
chmod +x ./util/PDB_To_XYZ
python inference.py --output blind_out --data example/blind --select_list example/blind_list
conda deactivate

程序根据example/blind_list中的PDB名单,从example/blind目录中提取PDB文件,将结果保存在blind_out文件夹内。example/blind_list中包含了81个蛋白,单V100 GPU的机子,运行时间大概为10分钟左右。

blind_out文件夹内每一个输入的PDB会产生一个结果文件夹,其中有*_output.xyz文件和可视化文件夹,即为预测的结果。

三、实际检测

这里,以5T1A为例子,其中包含了两个小分子,一个为底物小分子,一个为变构调剂小分子。如下图:

PointSite的预测结果如下图,大致相关位置:

可以到看预测的位置还是很准的,位置很接近。主要的是,连变构小分子的位置都可以被标记到!

但是存在一个问题,PointSite仅给出了可视化的文件,预测为结合口袋的残基标为红色。但是并没有直接给出每一个氨基酸的标签(True/False)。

四、pymol标记Pointsite的结果

我们查看了代码发现,PointSite先使用了PDB-Tool工具将pdb文件进行了预处理,删除了不必要的水分子等,然后从生成的pdb文件中提取原子,用于点云分割,最后给出每一个原子的颜色标记。

源代码中的预处理方式:

下面给出了,使用PointSite进行位点预测,并将预测出来的位点使用dpb文件中的Bfactor标记出来的代码 PointSite_Predict_Visual.py

#encoding=utf-8

SOURCE_DATA_FOLDER = './PDB-Pool'
OUT_PATH = './Result'
HANDLE_PDB = SOURCE_DATA_FOLDER+'-out'
SOURCE_DATA_LIST = 'test' #用于保存源数据中的PDB名

import os

#根据PDB-Pool文件夹,生成PDB文件列表
files = os.listdir(SOURCE_DATA_FOLDER)
files = [i[:-4] for i in files]
with open(SOURCE_DATA_LIST, 'w') as f:
    for pdb in files:
        f.write(pdb+'\n')

#使用PointSite寻找小分子的结合位点,结果在Test文件夹中
 cmd_ = './pointsite_run.sh {} {} {} ./'.format(SOURCE_DATA_LIST, 
         SOURCE_DATA_FOLDER, OUT_PATH)
 os.system(cmd_)

# 获取PointSite处理以后的蛋白文件
out_dir = HANDLE_PDB
os.system('mkdir {}'.format(out_dir))
files = os.listdir(SOURCE_DATA_FOLDER)
for file in files:
    file = file[:-4]
    cmd_ = './util/PDB_Tool -i ./PDB-Pool/{}.pdb -r _ -R 1 -o ./PDB-Pool-out/{}-out.pdb'.format(file, file)
    os.system(cmd_)

# 将PointSite和PDB_Tool处理的结果整合起来,得到每一个残基是否被预测为结合口袋
pdb_out_list = os.listdir(HANDLE_PDB)
point_out_list = os.listdir(OUT_PATH)
point_out_list = [file for file in point_out_list if len(file)==4 ]

#整合起来结果保存在pdb文件中
for pdb in point_out_list:
    print(pdb)
    #打开pointsit结果文件
    with open (OUT_PATH+"/{}/visual/{}_atom_pred.obj".format(pdb, pdb), 'r') as f:
        lines = f.readlines()
    qs = [line.split()[4] for line in lines]
    qs = [" 200.0" if i=='255' else "  10.0" for i in qs]
    with open (HANDLE_PDB+"/{}-out.pdb".format(pdb), 'r') as f:
        lines = f.readlines()
    for i in range(len(lines)):
        lines[i]=lines[i][:61]+qs[i]+lines[i][67:] #pdb的第
    #写入PDB文件
    with open(OUT_PATH+"/{}/visual/{}_pointsite_pred.pdb".format(pdb, pdb),'w') as f:
        f.writelines(lines)

使用方法:将该文件拷贝到Pointsite的目录下

python PointSite_Predict_Visual.py

运行完毕以后,就可以在Result文件夹内,找到相应的*_pointsite_pred.pdb文件,例如1A3W蛋白的结果文件在:./Result/1A3W/visual/1A3W_pointsite_pred.pdb。示意图如下,红色为Pointsite识别的结合位点。

(注:这个蛋白有两个成药位点,一个是变构调节功能位点,一个是底物功能为点,说明Pointsite也可以识别变构位点)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值