Giter Site home page Giter Site logo

deepsurf's Introduction

DeepSurf

A surface-based deep learning approach for the prediction of ligand binding sites on proteins (https://doi.org/10.1093/bioinformatics/btab009)

Setup

Experiments were conducted on an Ubuntu 18.04 machine with Python 3.6.9 and CUDA 10.0

  1. Install dependencies
sudo apt-get update && apt-get install python3-venv, p7zip, swig, libopenbabel-dev, g++
  1. Clone this repository
git clone https://github.com/stemylonas/DeepSurf
cd DeepSurf
  1. Create environment and install python dependencies
python3 -m venv venv --prompt DeepSurf
source venv/bin/activate
pip install -r requirements.txt
  1. Compile custom LDS module
cd lds
chmod a+x compile.sh
./compile.sh
cd ..
  1. Download pretrained models
pip install gdown
gdown 1nIBoD3_5nuMqgRGx4G1OHZwLsiUjb7JG
p7zip -d models.7z
  1. Collect and install DMS
wget www.cgl.ucsf.edu/Overview/ftp/dms.zip
unzip dms.zip
rm dms.zip
cd dms
sudo make install
cd ..

Usage example

python predict.py -p protein.pdb -mp model_path -o output_path

For more input options, check 'predict.py'. All other molecules (waters, ions, ligands) should be removed from the structure. If the input protein has not been protonated, add --protonate to the execution command.
The provided models have been trained on a subset of scPDB (training_subset_of_scpdb.proteins)

deepsurf's People

Contributors

stemylonas avatar

Stargazers

 avatar  avatar Jourmore avatar Revathy Menon avatar Thuan Phu NGUYEN-VO avatar Eva Notari avatar FangzhengZhu avatar Orhun avatar Akash Bahai avatar Leela S. Dodda avatar Alexander Goncearenco avatar Dohoon Lee avatar Kim Shuo avatar Qizhi Pei avatar Leon Song avatar Montserrat Goles avatar Adam LI avatar  avatar  avatar  avatar Takshan avatar  avatar Kaiyu (Rossmann) Qiu avatar Arian Jamasb avatar  avatar Yan avatar Thought Vectors avatar Lorenzo Vitale avatar Dachuan Zhang avatar Diego Javier Zea avatar Shuangjia Zheng avatar Joe Greener avatar yamasakih avatar Jacob L North avatar Talha Karabıyık avatar  avatar Marta Stepniewska-Dziubinska avatar

Watchers

 avatar  avatar

deepsurf's Issues

How to compile lds module on CUDA 12.0

I am using the system:

GPU: V100 Tesla
OS:  SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux
Cuda compilation tools, release 12.0, V12.0.76
Build cuda_12.0.r12.0/compiler.31968024_0

Please show me the way to install it on my system. Thank you very much.

Question about Protein Surface

Hi, nice work on the protein-ligand problem, and make this code public.

However, I cannot find the part corresponding to the generation of the protein surface. Can you please show me how to obtain the surface of any protein given its atomic coordinates?

Thanks

Issues with setting up

I found multiple issues until I managed to make this work:

  • The import of resnet_3d_utils.py in net/resnet_3d.py does not consider the relative path
  • pip installs the latest protobuf, which doesn't work. Had to force 3.6.1.
  • As I used conda, didn't manage to get a proper CUDA 9.0 toolkit to make it run. Using tensorflow 1.13.1 with CUDA 10.0 did the trick.
  • The "lds/compile" step is unclear, whether it has to be executed from the root folder, or within the lds folder. Due to the file construction, I guess running it within lds is the proper way. The lib folder should be created by the script. The gcc version could be checked there as well.

Fatal error: can't create pdb_read.o: Permission denied when make dms

I followed your installation guide. There is an error when making dms using sudo make install:

cd libpdb ; make OPT="-O"
make[1]: Entering directory '/home/ubuntu/tools/DeepSurf/dms/libpdb'
cc -O    -c -o pdb_read.o pdb_read.c
Assembler messages:
Fatal error: can't create pdb_read.o: Permission denied
make[1]: *** [<builtin>: pdb_read.o] Error 1
make[1]: Leaving directory '/home/ubuntu/tools/DeepSurf/dms/libpdb'
make: *** [GNUmakefile:42: pdb] Error 2

Please help me to solve this.

Question about DCC and DCA.

Hi and thanks for the great work. I was wondering how you calculated the DCC/DCA metrics, but there isn't any code about it on this git repro. It would be great if you could provide some hints.

Error in predict.py script

1570 atoms
9981 points (3420 contact, 6561 reentrant)
8636.33 sq. A (3006.94 contact, 5629.39 reentrant)
1.16 pts/sq.A (1.14 contact, 1.17 reentrant)
Traceback (most recent call last):
File "predict.py", line 42, in
prot = Protein(args.prot_file,args.protonate,args.expand,args.f,args.output, args.discard_points)
File "/home/jeevan/DeepSurf/protein.py", line 25, in init
self.surf_points, self.surf_normals = simplify_dms(surfpoints_file,f)
File "/home/jeevan/DeepSurf/lib.py", line 73, in simplify_dms
kmeans = KMeans(n_clusters=nCl,max_iter=300,n_init=1).fit(coords)
File "/home/jeevan/anaconda3/envs/deepsurf/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 896, in fit
return_n_iter=True)
File "/home/jeevan/anaconda3/envs/deepsurf/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 346, in k_means
x_squared_norms=x_squared_norms, random_state=random_state)
File "/home/jeevan/anaconda3/envs/deepsurf/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 395, in kmeans_single_elkan
x_squared_norms=x_squared_norms)
File "/home/jeevan/anaconda3/envs/deepsurf/lib/python3.5/site-packages/sklearn/cluster/k_means
.py", line 684, in init_centroids
x_squared_norms=x_squared_norms)
File "/home/jeevan/anaconda3/envs/deepsurf/lib/python3.5/site-packages/sklearn/cluster/k_means
.py", line 79, in _k_init
centers = np.empty((n_clusters, n_features), dtype=X.dtype)
TypeError: 'float' object cannot be interpreted as an integer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.