{"id":19423081,"url":"https://github.com/quantori/scip-dockinginterface","last_synced_at":"2025-02-25T04:28:55.015Z","repository":{"id":105047918,"uuid":"583774422","full_name":"quantori/scip-dockinginterface","owner":"quantori","description":"DockingInterface is a Python wrapper for open-source molecular docking programs: Autodock Vina, Smina, QVina2, and rDock.","archived":false,"fork":false,"pushed_at":"2022-12-31T11:33:41.000Z","size":128,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-07T18:52:10.931Z","etag":null,"topics":["docking","drug-discovery","molecular-docking","python","virtual-screening"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quantori.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-30T21:52:45.000Z","updated_at":"2023-01-05T07:22:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ee0f132-1dee-4eb2-9e52-d50bb702daa4","html_url":"https://github.com/quantori/scip-dockinginterface","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantori%2Fscip-dockinginterface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantori%2Fscip-dockinginterface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantori%2Fscip-dockinginterface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantori%2Fscip-dockinginterface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quantori","download_url":"https://codeload.github.com/quantori/scip-dockinginterface/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240602748,"owners_count":19827573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docking","drug-discovery","molecular-docking","python","virtual-screening"],"created_at":"2024-11-10T13:36:37.783Z","updated_at":"2025-02-25T04:28:54.990Z","avatar_url":"https://github.com/quantori.png","language":"MATLAB","readme":"# DockingInterface\n\nCopyright (c) 2022 Quantori.\n\nDockingInterface is a Python wrapper for open-source molecular docking programs: Autodock Vina, Smina, QVina2, and rDock.\n\n## Bundle\n\nDockingInterface is usually installed as part of [Quantori DockingFactory Bundle](https://github.com/quantori/scip-dockingfactory-bundle). Other projects that are also parts of the bundle are:\n- [DockingFactory](https://github.com/quantori/scip-dockingfactory)\n- [Vina](https://github.com/quantori/scip-vina)\n- [Smina](https://github.com/quantori/scip-smina)\n- [QVina 2](https://github.com/quantori/scip-qvina)\n- [rDock](https://github.com/quantori/scip-rdock)\n\n## Requirements\n\nPython 3.6 or higher is required\n\nCMake (`cmake`) 2.8.12 or higher is required.\n\nboost 1.53 or higher is required.\n\u003cbr\u003e For vina/qvina \n\u003cbr\u003e(`libboost-program-options-dev`, `libboost-system-dev`, `libboost-thread-dev`, `libboost-filesystem-dev`)\n\u003cbr\u003e For smina, in addition to the libraries specified for vina / qvina, you need:\n\u003cbr\u003e(`libboost-regex-dev`, `libboost-serialization-dev`, `libboost-timer-dev`, `libboost-iostreams-dev`)\n\nFor smina, Openbabel `libopenbabel-dev` 2.4.1 or higher is required.\n\nIf installing system-wide boost and Openbabel is not an option, you can use a local installation (see BOOST_ROOT and OPENBABEL2_ROOT / OPENBABEL3_ROOT options below).\n\n\n## Building libraries\n\n1. Clone vina, smina, and qvina repositories.\n2. In each of them, do:\n   ```\n    mkdir lib \u0026\u0026 cd lib\n    cmake ..\n    make %target_name%\n   ```\n\nWhere `%target_name%` is `vinaDynamic`, `sminaDynamic`, or `qvinaDynamic` respectively.\n\nIf you have a multiprocessor machine, you can use a parallel build:\n\n```make -j4 %target_name%```\n\nYou can provide BOOST_ROOT to cmake to use a specific boost installation:\n\n```\ncmake .. -DBOOST_ROOT=/path/to/my/boost\n```\n\nIn smina, similar option is provided for Openbabel 2 or 3:\n\n```\ncmake .. -DOPENBABEL2_ROOT=/path/to/my/openbabel2\n```\n\n```\ncmake .. -DOPENBABEL3_ROOT=/path/to/my/openbabel3\n```\n\nYou are allowed to combine `BOOST_ROOT` with `OPENBABEL2_ROOT` or `OPENBABEL3_ROOT`,\nbut not the latter two.\n\n\n## Installing DockingInterface\n\n```\npython3 -m pip install DockingInterface/\n```\n\n\n## Where to put libraries\n\nBy default the DockingInterface looking for the dynamic libraries in the *C_Dynamic_Libs* subfolder\nof the DockingInterface source code. So you should copy or create symlinks for *qvina/lib/libqvinaDynamic.so*,\n*smina/lib/libsminaDynamic.so* and *qvina/lib/libqvinaDynamic.so* into one of the following folders:\n\n - *DockingInterface/C_Dynamic_Libs/Linux/x86_64*\n - *DockingInterface/C_Dynamic_Libs/Linux/arm64*\n - *DockingInterface/C_Dynamic_Libs/macOS/x86_64*\n - *DockingInterface/C_Dynamic_Libs/macOS/arm64*\n - *DockingInterface/C_Dynamic_Libs/win*\n\ndepending on your system architecture. But you can re-configure this behaviour using an environment variable\n\n    ```\n    export DOCKING_LIBRARY_PATH=/usr/lib/DockingInterface:/usr/local/lib/DockingInterface\n    ```\n\nIn the example above the libraries are expected in one of directory: */usr/lib/DockingInterface* and */usr/local/lib/DockingInterface*.\n\n\n---\n\n## Using Docking Interface (class DockingInterface)\n\nUse `DockingInterface` to run vina/smina/qvina inside Python script without spawning sub-process.\n\n### Initialization\nFirst you call constructor with no arguments:\n\u003cbr\u003e```docking = DockingInterface()``` \n\n### Setting the parameters\n1. ```set_handler('\u003chandler\u003e')``` - \u003chandler\u003e == vina or smina or qvina\n2. ```docking.set_ligand(./path/to/your/ligand.pdbqt)``` - takes a path to pdbqt file\n3. ```docking.set_center(x, y, z)``` - takes double values x, y, z\n4. ```docking.set_size(x, y, z)``` - takes double values x, y, z\n5. ```docking.set_exhaustiveness(exhaustiveness)``` - takes int value. Default == 8;\n6. ```docking.set_log_file(./path/to/your/log.txt)``` - use this setter if you need all output in txt file - takes a path to txt file\n7. ```docking.set_receptor(./path/to/your/receptor.pdbqt)``` - takes a path to pdbqt file\n8. ```docking.set_config(./path/to/your/config.txt)```- takes a path to txt file. In config file must be center and size, may be exhaustiveness. You can use config or setter (center or size)\n9. ```docking.set_output(./path/to/your/output.pdbqt)``` takes a path to pdbqt file\n10. ```docking.set_autobox_ligand(./path/to/your/crystal_ligand.pdbqt)``` takes a path to pdbqt file\n11. ```docking.set_scoring_function(scoring_function)``` takes scoring functions name. You can use:\n   \u003cbr\u003e\u003ct\u003e9.1 ```ad4_scoring```\n   \u003cbr\u003e\u003ct\u003e9.2 ```default```\n   \u003cbr\u003e\u003ct\u003e9.3 ```dkoes_fast```\n   \u003cbr\u003e\u003ct\u003e9.4 ```dkoes_scoring```\n   \u003cbr\u003e\u003ct\u003e9.5 ```dkoes_scoring_old```\n   \u003cbr\u003e\u003ct\u003e9.6 ```vina```\n   \u003cbr\u003e\u003ct\u003e9.7 ```vinardo```\n### Runing the docking\nAfter the parameters are set up, call the `docking` method:\n\n```docking.docking()```\n\n### Geting the results\nWhen docking ends, use this function to get results as list of lists of numbers:\n\n\u003cbr\u003e```result = docking.get_result()``` \n\u003cbr\u003e After getting the result (it is an object of class `DockingResult`),\nyou can use getters:\n\u003cbr\u003e `result.get_number_of_models()` - get the number of models\n\u003cbr\u003e `result.get_values_by_index(i)` - for a given model index, get a list containing: model index, affinity, rms lower bound and upper bound.\n\u003cbr\u003e `result.get_model_by_index()` - get text (PDBQT) representation of the model by index\n\n## Example\n```\nfrom DockingInterface import *\n\nif __name__ == \"__main__\":\n    docking = DockingInterface()\n    docking.set_handler('qvina')\n    docking.set_log_file('logfile.txt')\n    docking.set_ligand('ligand.pdbqt')\n    docking.set_receptor('receptor.pdbqt')\n    docking.set_center(17.3564, 1.5176, 12.9464)\n    docking.set_size(25.0, 25.0, 25.0)\n    docking.set_exhaustiveness(8)\n    docking.docking()\n    result = docking.get_result()\n    for i in range(a.get_number_of_models()):\n        print(result.get_values_by_index(i))\n        print(result.get_model_by_index(i))\n```\n\n## License\n\nQuantori DockingInterface is released under [Apache License, Version 2.0](LICENSE.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantori%2Fscip-dockinginterface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquantori%2Fscip-dockinginterface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantori%2Fscip-dockinginterface/lists"}