GithubHelp home page GithubHelp logo

ryanzr / labodock Goto Github PK

View Code? Open in Web Editor NEW
31.0 2.0 9.0 5.11 MB

LABODOCK: A Colab-Based Molecular Docking Tools

License: MIT License

Jupyter Notebook 100.00%
autodock-vina cheminformatics drug-design google-colab molecular-docking plip virtual-screening

labodock's Introduction

LABODOCK

Effortless Docking with Google Colab

status version license DOI

LABODOCK hosts a collection of Jupyter Notebooks that provides straightforward approach to molecular docking on Google Colab with minimal coding proficiency. Through leveraging well-established cheminformatic tools and Google Colab's cloud computing capabilities, this repository aimed to streamline the entire molecular docking protocols, automating various pre- and post-docking processes for seamless, intuitive and interactive in-silico experimentation. Current available notebooks are:

Important

Do not use the Run all option at the beginning. Run the Install dependencies and softwares cell individually and wait for the session to restart. After that, you can use the Run all options if you want.

Features

  • Intuitive and user-friendly form field
  • Autodock Vina-driven molecular docking operation
  • PLIP-integrated binding interaction analysis with bar chart
  • ✨ Automated docking result clustering: **
    • Best-Pose: Pose with best docking score from each ligand
    • LABO-RMSD: Pose with lowest LABO-RMSD from each ligand
  • Six grid box defining methods:
    • LaBOX
    • eBoxSize
    • eBoxSize-Mod
    • Autodock-Grid
    • Manual-Mode
    • Defined-by-Res
  • Three RMSD calculation methods:
    • LABO_RMSD: Based on RDKit's maximum common substructure search
    • HUNG_RMSD: Based on spyrmsd's Hungarian algorithm calculation
    • SYMM_RMSD: Based on spyrmsd's symmetrical-corrected calculation
  • ✨ Maximum common substructure PNG generation
  • ✨ 3D basic informative molecular visualization with colour scale:
    • Hydrophobicity scale (Kyte and Doolittle, 1982)
    • Isoelectric points scale

** Exclusive for virtual screening protocol.

Images

BMD Redocked Fenebrutinib (red) Superimposed on 9AJ (gray) with PDB 5VFI
BMD Docking Scores and RMSDs of Redocked Fenebrutinib
VS Docked CHEMBL161052 in Slab View with PDB 4PH9 sagittal section
VS PLIP Binding Interaction Frequency Bar Chart
VS Top 10 Poses with Lowest LABO-RMSD from each ligands

Limitation

  • These notebooks are designed for Google Colab and may not work on other platform.
  • These notebooks provide a simple pipeline for illustrating molecular docking and do not necessarily reflect the standard protocol.

References

  1. Adasme, M. F., Linnemann, K. L., Bolz, S. N., Kaiser, F., Salentin, S., Haupt, V. J., & Schroeder, M. (2021). PLIP 2021: Expanding the scope of the protein–ligand interaction profiler to DNA and RNA. Nucleic Acids Research, 49(W1), Article W1. https://doi.org/10.1093/nar/gkab294
  2. Feinstein, W. P., & Brylinski, M. (2015). Calculating an optimal box size for ligand docking and virtual screening against experimental and predicted binding pockets. Journal of Cheminformatics, 7, 18. https://doi.org/10.1186/s13321-015-0067-5
  3. Meli, R., & Biggin, P. C. (2020). spyrmsd: Symmetry-corrected RMSD calculations in Python. Journal of Cheminformatics, 12(1), 49. https://doi.org/10.1186/s13321-020-00455-2
  4. O’Boyle, N. M., Banck, M., James, C. A., Morley, C., Vandermeersch, T., & Hutchison, G. R. (2011). Open Babel: An open chemical toolbox. Journal of Cheminformatics, 3, 33. https://doi.org/10.1186/1758-2946-3-33
  5. Seshadri, K., Liu, P., & Koes, D. R. (2020). The 3Dmol.js learning environment: A classroom response system for 3D chemical structures. Journal of Chemical Education, 97(10), 3872–3876. https://doi.org/10.1021/acs.jchemed.0c00579
  6. Trott, O., & Olson, A. J. (2010). AutoDock Vina: Improving the speed and accuracy of docking with a new scoring function, efficient optimization and multithreading. (Journal of Computational Chemistry*, 31(2), Article 2. https://doi.org/10.1002/jcc.21334

License

Copyright (c) 2023 Ryan Loke
Distributed under the MIT License.
See LICENSE file for more information.

labodock's People

Contributors

ryanzr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

labodock's Issues

Google colab and CUDA 12.2

Hello Ryan,
Thanks for writing such great notebooks for the community. Google colab is shifted to CUDA 12.2. As a result, the mamba installation script are not getting success.
!mamba install -c conda-forge -c bioconda mgltools=1.5.7 biopython=1.80 openbabel=3.1.1 plip=2.2.2 zlib=1.2.13 xlsxwriter=3.0.3

The installation log generates,

No package can be installed for pin: cudatoolkit 12.2.*

I tried different things, like mentioning cudatoolkit=12.2 in the script, also remove the package version details, so that conda installs the appropriate version by itself. Nothing is working.
Will you be able to update the code?
Thanks

Issue with ligand preparation

Hi Ryan.
First of all, what a delightful piece of work you got here! It's so didactic that I'm planning to use it with my students.
Unfortunately, after a careful reading of your instructions, I am unable to move forward beyond 04 preparing the ligand step, despite I separetely ran the first cell of software installation. However, the issue is particular to the Parameterise ligand with Gasteiger charges, where the pdbqt cannot be found, hence, no docking calculation can be performed.
I attach the error:
"
FileNotFoundError Traceback (most recent call last)
in <cell line: 19>()
17 os.makedirs(LIG_dFLD, exist_ok=True)
18 get_ipython().system('mk_prepare_ligand.py -i {LIG_sdf_lFile} -o {LIG_pdbqt_dFFile} > /dev/null 2>&1')
---> 19 pdbqt_add_chid(LIG_pdbqt_dFFile)
20
21 print(f'+ Parameterisation: {LIG_sdf} > {LIG_pdbqt}')

in pdbqt_add_chid(inpt_file)
5
6 def pdbqt_add_chid(inpt_file: str) -> None:
----> 7 with open(inpt_file, 'r') as inpt:
8 data = inpt.read()
9 new_data = data.replace(' UNL ', ' UNL A')

FileNotFoundError: [Errno 2] No such file or directory: '/content/7KBS_/DOCKING/RLXF/RLXF.pdbqt'
"

I hope you can help me.
Again, such a great work and thanks for sharing,

Abe

mk_prepare_ligand.py causes ModuleNotFoundError: No module named 'pandas'

In the 'virtual_screening.ipynb' in the step 'Parameterise ligands with Gasteiger charges'
the following command
!mk_prepare_ligand.py -i {LIG_sdf_lFile} -o {LIG_pdbqt_dFFile}

causes this error:

Traceback (most recent call last):
  File "/usr/local/bin/mk_prepare_ligand.py", line 14, in <module>
    from meeko import MoleculePreparation
  File "/usr/local/lib/python3.10/site-packages/meeko/__init__.py", line 36, in <module>
    from . import analysis
  File "/usr/local/lib/python3.10/site-packages/meeko/analysis/__init__.py", line 7, in <module>
    from .fingerprint_interactions import FingerprintInteractions
  File "/usr/local/lib/python3.10/site-packages/meeko/analysis/fingerprint_interactions.py", line 10, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

Typo in notebook 'virtual_screening' in the 'Generate ligand SD files' step

I noticed a typo in the notebook 'virtual_screening.ipynb', which causes an error

in "Generate ligand SD files"

    !obabel -:{'"'+LIG_SMI+'"'} -O {LIG_sdf_lFile} --title {LIG_ID} --gen3d \
    --best --minimize --ff {Force_field} --steps {Maximum_steps} \
    --crit {Convergence_criteria} --log 2>> {CMPLIB_obmin_log_lfile}

should probably be:

    !obabel -:{'"'+LIG_SMI+'"'} -O {LIG_sdf_lFile} --title {LIG_ID} --gen3d \
    --best --minimize --ff {Force_field} --steps {Maximum_steps} \
    --crit {Convergence_criteria} --log &>> {CMPLIB_obmin_log_lfile}

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.