├── #files# ├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── README.md~ ├── conda.txt ├── conda_channels.txt ├── files ├── 0.pdb ├── 0.pdbqt ├── 1.pdb ├── 1.pdbqt ├── 2.pdb ├── 2.pdbqt ├── 3.pdb ├── 3.pdbqt ├── 4.pdb ├── 4.pdbqt ├── 5WIU-CAC.pdb ├── 5WIU-CAC.pdbqt ├── 5WIU-receptor.pdb ├── 5WIU-receptor.pdbqt └── 5wiu.pdb ├── mol.png ├── requirements.txt ├── run_smina.ipynb ├── stApp.py └── viz.html /#files#: -------------------------------------------------------------------------------- 1 | mv0;95;0c * -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # celery beat schedule file 95 | celerybeat-schedule 96 | 97 | # SageMath parsed files 98 | *.sage.py 99 | 100 | # Environments 101 | .env 102 | .venv 103 | env/ 104 | venv/ 105 | ENV/ 106 | env.bak/ 107 | venv.bak/ 108 | 109 | # Spyder project settings 110 | .spyderproject 111 | .spyproject 112 | 113 | # Rope project settings 114 | .ropeproject 115 | 116 | # mkdocs documentation 117 | /site 118 | 119 | # mypy 120 | .mypy_cache/ 121 | .dmypy.json 122 | dmypy.json 123 | 124 | # Pyre type checker 125 | .pyre/ 126 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 ljmartin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docking curation with streamlit and py3dmol 2 | 3 | see [the app](https://share.streamlit.io/ljmartin/dockviz/main/stApp.py) 4 | 5 | see [intro post](https://ljmartin.github.io/sideprojects/dockviz.html) for motivation. 6 | 7 | ## blurb 8 | This is a streamlit app to visualize docking hits for the purposes of manual curation before moving to _in vitro_ testing. You might use this to prioritize a ranked list of docking hits so that you only spend money on buying the ligands with the best chance of successfully binding the target. 9 | 10 | In this test case, the 5 example ligands have been docked against the D4 receptor, crystal structure 5WIU bound to nemonapride. The ligands were pulled from a public dataset in [doi](https://doi.org/10.1038/s41586-019-0917-9)). Smina was used for docking, and obabel for file conversion to/from pdbqt/pdb. The docking can be done within `run_smina.ipynb` assuming you have smina installed. 11 | 12 | ## how to use 13 | Load the app, and select whether or not to use Annotations that describe the pharmacophores (these can be helpful but sometimes messy). Write a number, from 0 - 4 inclusive, and press enter to load one of the docked ligand poses. How you judge the likelihood of a hit is up to you ;) 14 | 15 | ## how to adapt 16 | Have a set of docked ligands named `0.pdb`, `1.pdb`, etc... in the `files` dir, up to as many as you want. You'll also need to have a receptor pdb file in the `files` dir, and change the name in `stApp.py` to the name of your receptor. Same goes for the co-crystallized ligand. 17 | 18 | ## credits 19 | This pulls together some amazing libraries written by others: 20 | 21 | - `py3dmol` for 3d visualization: https://3dmol.csb.pitt.edu/ , Rego & Koes: https://doi.org/10.1093/bioinformatics/btu829 22 | - molecular properties are calculated with the `RDKit`: https://www.rdkit.org/ 23 | - docking used `smina`: https://sourceforge.net/projects/smina/ 24 | - docking pipeline was described by `Esben Jannik Bjerrum` at https://www.cheminformania.com/ligand-docking-with-smina/ 25 | - ligands are from a publicly available dataset from `Lyu et al`: https://doi.org/10.1038/s41586-019-0917-9 26 | - structure file conversions by obabel: https://openbabel.org/docs/dev/Command-line_tools/babel.html 27 | - and the pieces were put together by lewis martin: https://ljmartin.github.io/ -------------------------------------------------------------------------------- /README.md~: -------------------------------------------------------------------------------- 1 | # Docking curation with streamlit and py3dmol 2 | 3 | see [the app](https://share.streamlit.io/ljmartin/dockviz/main/stApp.py) 4 | see [intro post](https://ljmartin.github.io/sideprojects/dockviz.html) for motivation. 5 | 6 | ## blurb: 7 | This is a streamlit app to visualize docking hits for the purposes of manual curation before moving to _in vitro_ testing. You might use this to prioritize a ranked list of docking hits so that you only spend money on buying the ligands with the best chance of successfully binding the target. 8 | 9 | ## 10 | 11 | 12 | st.write("""## Credits:""") 13 | st.write("This uses `py3dmol` for 3d visualization: https://3dmol.csb.pitt.edu/ , Rego & Koes: https://doi.org/10.1093/bioinformatics/btu829") 14 | st.write("Molecular properties are calculated with the `RDKit`: https://www.rdkit.org/") 15 | st.write("Docking used `smina`: https://sourceforge.net/projects/smina/") 16 | st.write("Docking pipeline was described by `Esben Jannik Bjerrum` at https://www.cheminformania.com/ligand-docking-with-smina/") 17 | st.write("Ligands are from a publicly available dataset from `Lyu et al`: https://doi.org/10.1038/s41586-019-0917-9") 18 | st.write("and these pieces were put together by lewis martin: https://ljmartin.github.io/") -------------------------------------------------------------------------------- /conda.txt: -------------------------------------------------------------------------------- 1 | libgcc=5.2.0 2 | rdkit 3 | xorg-libxrender 4 | py3dmol 5 | -------------------------------------------------------------------------------- /conda_channels.txt: -------------------------------------------------------------------------------- 1 | conda-forge 2 | rdkit 3 | 4 | -------------------------------------------------------------------------------- /files/0.pdb: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -9.20573044 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 5 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_7 and C_8 8 | REMARK 2 A between atoms: C_10 and C_11 9 | REMARK 3 A between atoms: C_11 and N_12 10 | REMARK 4 A between atoms: C_16 and C_17 11 | REMARK 5 A between atoms: C_17 and N_18 12 | REMARK x y z vdW Elec q Type 13 | REMARK _______ _______ _______ _____ _____ ______ ____ 14 | COMPND = 15 | AUTHOR GENERATED BY OPEN BABEL 3.1.0 16 | ATOM 1 C UNL 1 -16.353 15.613 -15.205 1.00 0.00 C 17 | ATOM 2 C UNL 1 -15.911 16.418 -16.223 1.00 0.00 C 18 | ATOM 3 C UNL 1 -17.053 17.161 -16.619 1.00 0.00 C 19 | ATOM 4 N UNL 1 -18.037 17.004 -15.724 1.00 0.00 N 20 | ATOM 5 O UNL 1 -17.588 16.040 -14.819 1.00 0.00 O 21 | ATOM 6 CL UNL 1 -13.614 15.618 -13.599 1.00 0.00 Cl 22 | ATOM 7 C UNL 1 -14.600 14.251 -14.017 1.00 0.00 C 23 | ATOM 8 C UNL 1 -14.030 13.007 -13.712 1.00 0.00 C 24 | ATOM 9 C UNL 1 -14.736 11.836 -13.984 1.00 0.00 C 25 | ATOM 10 C UNL 1 -15.996 11.915 -14.541 1.00 0.00 C 26 | ATOM 11 C UNL 1 -16.563 13.148 -14.885 1.00 0.00 C 27 | ATOM 12 C UNL 1 -15.857 14.343 -14.659 1.00 0.00 C 28 | ATOM 13 C UNL 1 -17.240 17.910 -17.932 1.00 0.00 C 29 | ATOM 14 N UNL 1 -17.579 17.111 -19.133 1.00 0.00 N 30 | ATOM 15 C UNL 1 -16.440 16.936 -20.045 1.00 0.00 C 31 | ATOM 16 C UNL 1 -16.573 18.028 -21.082 1.00 0.00 C 32 | ATOM 17 C UNL 1 -18.074 18.129 -21.265 1.00 0.00 C 33 | ATOM 18 C UNL 1 -18.707 17.642 -19.948 1.00 0.00 C 34 | ATOM 19 C UNL 1 -19.836 16.621 -20.237 1.00 0.00 C 35 | ATOM 20 N UNL 1 -20.805 16.535 -19.144 1.00 0.00 N 36 | ATOM 21 C UNL 1 -20.999 17.398 -18.107 1.00 0.00 C 37 | ATOM 22 N UNL 1 -21.973 16.949 -17.337 1.00 0.00 N 38 | ATOM 23 C UNL 1 -22.344 15.798 -17.958 1.00 0.00 C 39 | ATOM 24 N UNL 1 -21.662 15.497 -19.068 1.00 0.00 N 40 | CONECT 1 2 5 12 41 | CONECT 2 3 1 42 | CONECT 3 13 2 4 43 | CONECT 4 3 5 44 | CONECT 5 4 1 45 | CONECT 6 7 46 | CONECT 7 12 12 8 6 47 | CONECT 8 7 9 9 48 | CONECT 9 10 8 8 49 | CONECT 10 11 11 9 50 | CONECT 11 12 10 10 51 | CONECT 12 1 11 7 7 52 | CONECT 13 14 3 53 | CONECT 14 15 18 13 54 | CONECT 15 16 14 55 | CONECT 16 17 15 56 | CONECT 17 16 18 57 | CONECT 18 17 19 14 58 | CONECT 19 18 20 59 | CONECT 20 19 24 21 60 | CONECT 21 20 22 22 61 | CONECT 22 21 21 23 62 | CONECT 23 24 24 22 63 | CONECT 24 20 23 23 64 | MASTER 0 0 0 0 0 0 0 0 24 0 24 0 65 | END 66 | -------------------------------------------------------------------------------- /files/0.pdbqt: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -9.20573044 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 5 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_7 and C_8 8 | REMARK 2 A between atoms: C_10 and C_11 9 | REMARK 3 A between atoms: C_11 and N_12 10 | REMARK 4 A between atoms: C_16 and C_17 11 | REMARK 5 A between atoms: C_17 and N_18 12 | REMARK x y z vdW Elec q Type 13 | REMARK _______ _______ _______ _____ _____ ______ ____ 14 | ROOT 15 | ATOM 1 C UNL 1 -16.353 15.613 -15.205 0.00 0.00 +0.000 A 16 | ATOM 2 C UNL 1 -15.911 16.418 -16.223 0.00 0.00 +0.000 A 17 | ATOM 3 C UNL 1 -17.053 17.161 -16.619 0.00 0.00 +0.000 A 18 | ATOM 4 N UNL 1 -18.037 17.004 -15.724 0.00 0.00 +0.000 NA 19 | ATOM 5 O UNL 1 -17.588 16.040 -14.819 0.00 0.00 +0.000 OA 20 | ENDROOT 21 | BRANCH 1 12 22 | ATOM 6 CL UNL 1 -13.614 15.618 -13.599 0.00 0.00 +0.000 Cl 23 | ATOM 7 C UNL 1 -14.600 14.251 -14.017 0.00 0.00 +0.000 A 24 | ATOM 8 C UNL 1 -14.030 13.007 -13.712 0.00 0.00 +0.000 A 25 | ATOM 9 C UNL 1 -14.736 11.836 -13.984 0.00 0.00 +0.000 A 26 | ATOM 10 C UNL 1 -15.996 11.915 -14.541 0.00 0.00 +0.000 A 27 | ATOM 11 C UNL 1 -16.563 13.148 -14.885 0.00 0.00 +0.000 A 28 | ATOM 12 C UNL 1 -15.857 14.343 -14.659 0.00 0.00 +0.000 A 29 | ENDBRANCH 1 12 30 | BRANCH 3 13 31 | ATOM 13 C UNL 1 -17.240 17.910 -17.932 0.00 0.00 +0.000 C 32 | BRANCH 13 14 33 | ATOM 14 N UNL 1 -17.579 17.111 -19.133 0.00 0.00 +0.000 NA 34 | ATOM 15 C UNL 1 -16.440 16.936 -20.045 0.00 0.00 +0.000 C 35 | ATOM 16 C UNL 1 -16.573 18.028 -21.082 0.00 0.00 +0.000 C 36 | ATOM 17 C UNL 1 -18.074 18.129 -21.265 0.00 0.00 +0.000 C 37 | ATOM 18 C UNL 1 -18.707 17.642 -19.948 0.00 0.00 +0.000 C 38 | BRANCH 18 19 39 | ATOM 19 C UNL 1 -19.836 16.621 -20.237 0.00 0.00 +0.000 C 40 | BRANCH 19 20 41 | ATOM 20 N UNL 1 -20.805 16.535 -19.144 0.00 0.00 +0.000 N 42 | ATOM 21 C UNL 1 -20.999 17.398 -18.107 0.00 0.00 +0.000 A 43 | ATOM 22 N UNL 1 -21.973 16.949 -17.337 0.00 0.00 +0.000 NA 44 | ATOM 23 C UNL 1 -22.344 15.798 -17.958 0.00 0.00 +0.000 A 45 | ATOM 24 N UNL 1 -21.662 15.497 -19.068 0.00 0.00 +0.000 NA 46 | ENDBRANCH 19 20 47 | ENDBRANCH 18 19 48 | ENDBRANCH 13 14 49 | ENDBRANCH 3 13 50 | TORSDOF 5 51 | ENDMDL 52 | -------------------------------------------------------------------------------- /files/1.pdb: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -9.1740799 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 5 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: N_4 and C_5 8 | REMARK 2 A between atoms: C_5 and C_6 9 | REMARK 3 A between atoms: N_10 and C_11 10 | REMARK 4 A between atoms: C_11 and C_12 11 | REMARK 5 A between atoms: C_14 and C_15 12 | REMARK x y z vdW Elec q Type 13 | REMARK _______ _______ _______ _____ _____ ______ ____ 14 | COMPND = 15 | AUTHOR GENERATED BY OPEN BABEL 3.1.0 16 | ATOM 1 C UNL 1 -18.168 18.184 -17.021 1.00 0.00 C 17 | ATOM 2 C UNL 1 -19.371 17.864 -19.215 1.00 0.00 C 18 | ATOM 3 C UNL 1 -19.321 16.487 -19.880 1.00 0.00 C 19 | ATOM 4 C UNL 1 -17.851 16.197 -20.039 1.00 0.00 C 20 | ATOM 5 C UNL 1 -17.208 16.890 -18.852 1.00 0.00 C 21 | ATOM 6 N UNL 1 -18.088 18.012 -18.476 1.00 0.00 N 22 | ATOM 7 C UNL 1 -20.738 18.082 -18.525 1.00 0.00 C 23 | ATOM 8 C UNL 1 -23.028 18.857 -21.033 1.00 0.00 C 24 | ATOM 9 N UNL 1 -23.756 17.855 -20.463 1.00 0.00 N 25 | ATOM 10 C UNL 1 -22.978 17.425 -19.501 1.00 0.00 C 26 | ATOM 11 N UNL 1 -21.824 18.151 -19.492 1.00 0.00 N 27 | ATOM 12 N UNL 1 -21.827 19.071 -20.477 1.00 0.00 N 28 | ATOM 13 C UNL 1 -17.118 17.424 -16.224 1.00 0.00 C 29 | ATOM 14 C UNL 1 -17.176 16.191 -15.590 1.00 0.00 C 30 | ATOM 15 C UNL 1 -15.889 15.707 -15.157 1.00 0.00 C 31 | ATOM 16 C UNL 1 -14.920 16.669 -15.367 1.00 0.00 C 32 | ATOM 17 S UNL 1 -15.529 18.072 -16.128 1.00 0.00 S 33 | ATOM 18 C UNL 1 -15.557 14.382 -14.607 1.00 0.00 C 34 | ATOM 19 C UNL 1 -14.477 14.216 -13.720 1.00 0.00 C 35 | ATOM 20 C UNL 1 -14.116 12.949 -13.247 1.00 0.00 C 36 | ATOM 21 C UNL 1 -14.831 11.828 -13.657 1.00 0.00 C 37 | ATOM 22 C UNL 1 -15.907 11.973 -14.525 1.00 0.00 C 38 | ATOM 23 C UNL 1 -16.270 13.241 -14.997 1.00 0.00 C 39 | CONECT 1 6 13 40 | CONECT 2 3 7 6 41 | CONECT 3 4 2 42 | CONECT 4 3 5 43 | CONECT 5 4 6 44 | CONECT 6 2 5 1 45 | CONECT 7 11 2 46 | CONECT 8 12 12 9 47 | CONECT 9 8 10 10 48 | CONECT 10 9 9 11 49 | CONECT 11 12 10 7 50 | CONECT 12 8 8 11 51 | CONECT 13 1 17 14 14 52 | CONECT 14 13 13 15 53 | CONECT 15 14 16 16 18 54 | CONECT 16 17 15 15 55 | CONECT 17 13 16 56 | CONECT 18 15 23 23 19 57 | CONECT 19 18 20 20 58 | CONECT 20 19 19 21 59 | CONECT 21 22 22 20 60 | CONECT 22 23 21 21 61 | CONECT 23 18 18 22 62 | MASTER 0 0 0 0 0 0 0 0 23 0 23 0 63 | END 64 | -------------------------------------------------------------------------------- /files/1.pdbqt: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -9.1740799 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 5 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: N_4 and C_5 8 | REMARK 2 A between atoms: C_5 and C_6 9 | REMARK 3 A between atoms: N_10 and C_11 10 | REMARK 4 A between atoms: C_11 and C_12 11 | REMARK 5 A between atoms: C_14 and C_15 12 | REMARK x y z vdW Elec q Type 13 | REMARK _______ _______ _______ _____ _____ ______ ____ 14 | ROOT 15 | ATOM 1 C UNL 1 -18.168 18.184 -17.021 0.00 0.00 +0.000 C 16 | ENDROOT 17 | BRANCH 1 6 18 | ATOM 2 C UNL 1 -19.371 17.864 -19.215 0.00 0.00 +0.000 C 19 | ATOM 3 C UNL 1 -19.321 16.487 -19.880 0.00 0.00 +0.000 C 20 | ATOM 4 C UNL 1 -17.851 16.197 -20.039 0.00 0.00 +0.000 C 21 | ATOM 5 C UNL 1 -17.208 16.890 -18.852 0.00 0.00 +0.000 C 22 | ATOM 6 N UNL 1 -18.088 18.012 -18.476 0.00 0.00 +0.000 NA 23 | BRANCH 2 7 24 | ATOM 7 C UNL 1 -20.738 18.082 -18.525 0.00 0.00 +0.000 C 25 | BRANCH 7 11 26 | ATOM 8 C UNL 1 -23.028 18.857 -21.033 0.00 0.00 +0.000 A 27 | ATOM 9 N UNL 1 -23.756 17.855 -20.463 0.00 0.00 +0.000 NA 28 | ATOM 10 C UNL 1 -22.978 17.425 -19.501 0.00 0.00 +0.000 A 29 | ATOM 11 N UNL 1 -21.824 18.151 -19.492 0.00 0.00 +0.000 N 30 | ATOM 12 N UNL 1 -21.827 19.071 -20.477 0.00 0.00 +0.000 NA 31 | ENDBRANCH 7 11 32 | ENDBRANCH 2 7 33 | ENDBRANCH 1 6 34 | BRANCH 1 13 35 | ATOM 13 C UNL 1 -17.118 17.424 -16.224 0.00 0.00 +0.000 A 36 | ATOM 14 C UNL 1 -17.176 16.191 -15.590 0.00 0.00 +0.000 A 37 | ATOM 15 C UNL 1 -15.889 15.707 -15.157 0.00 0.00 +0.000 A 38 | ATOM 16 C UNL 1 -14.920 16.669 -15.367 0.00 0.00 +0.000 A 39 | ATOM 17 S UNL 1 -15.529 18.072 -16.128 0.00 0.00 +0.000 S 40 | BRANCH 15 18 41 | ATOM 18 C UNL 1 -15.557 14.382 -14.607 0.00 0.00 +0.000 A 42 | ATOM 19 C UNL 1 -14.477 14.216 -13.720 0.00 0.00 +0.000 A 43 | ATOM 20 C UNL 1 -14.116 12.949 -13.247 0.00 0.00 +0.000 A 44 | ATOM 21 C UNL 1 -14.831 11.828 -13.657 0.00 0.00 +0.000 A 45 | ATOM 22 C UNL 1 -15.907 11.973 -14.525 0.00 0.00 +0.000 A 46 | ATOM 23 C UNL 1 -16.270 13.241 -14.997 0.00 0.00 +0.000 A 47 | ENDBRANCH 15 18 48 | ENDBRANCH 1 13 49 | TORSDOF 5 50 | ENDMDL 51 | -------------------------------------------------------------------------------- /files/2.pdb: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -8.55776691 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 9 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_1 and C_2 8 | REMARK 2 A between atoms: C_2 and C_3 9 | REMARK 3 A between atoms: C_2 and N_12 10 | REMARK 4 A between atoms: C_3 and C_4 11 | REMARK 5 A between atoms: C_4 and C_5 12 | REMARK 6 A between atoms: N_12 and C_13 13 | REMARK 7 A between atoms: C_13 and C_14 14 | REMARK 8 A between atoms: C_13 and C_18 15 | REMARK 9 A between atoms: C_14 and C_15 16 | REMARK x y z vdW Elec q Type 17 | REMARK _______ _______ _______ _____ _____ ______ ____ 18 | COMPND = 19 | AUTHOR GENERATED BY OPEN BABEL 3.1.0 20 | ATOM 1 N UNL 1 -17.900 16.680 -17.162 1.00 0.00 N 21 | ATOM 2 H UNL 1 -18.579 15.926 -17.018 1.00 0.00 H 22 | ATOM 3 C UNL 1 -18.209 16.439 -14.696 1.00 0.00 C 23 | ATOM 4 C UNL 1 -17.722 17.321 -15.854 1.00 0.00 C 24 | ATOM 5 C UNL 1 -16.198 17.586 -15.652 1.00 0.00 C 25 | ATOM 6 C UNL 1 -15.290 16.429 -16.099 1.00 0.00 C 26 | ATOM 7 C UNL 1 -14.602 15.727 -14.947 1.00 0.00 C 27 | ATOM 8 C UNL 1 -13.503 16.319 -14.310 1.00 0.00 C 28 | ATOM 9 C UNL 1 -12.841 15.664 -13.266 1.00 0.00 C 29 | ATOM 10 C UNL 1 -13.267 14.404 -12.844 1.00 0.00 C 30 | ATOM 11 C UNL 1 -14.360 13.806 -13.463 1.00 0.00 C 31 | ATOM 12 C UNL 1 -15.021 14.469 -14.500 1.00 0.00 C 32 | ATOM 13 F UNL 1 -16.067 13.866 -15.082 1.00 0.00 F 33 | ATOM 14 C UNL 1 -18.412 17.479 -18.304 1.00 0.00 C 34 | ATOM 15 C UNL 1 -19.843 17.035 -18.671 1.00 0.00 C 35 | ATOM 16 C UNL 1 -20.160 16.487 -19.931 1.00 0.00 C 36 | ATOM 17 C UNL 1 -21.449 16.046 -20.233 1.00 0.00 C 37 | ATOM 18 C UNL 1 -22.460 16.154 -19.286 1.00 0.00 C 38 | ATOM 19 C UNL 1 -22.176 16.689 -18.034 1.00 0.00 C 39 | ATOM 20 C UNL 1 -20.880 17.115 -17.725 1.00 0.00 C 40 | ATOM 21 C UNL 1 -17.485 17.571 -19.538 1.00 0.00 C 41 | ATOM 22 C UNL 1 -16.330 16.595 -19.633 1.00 0.00 C 42 | ATOM 23 N UNL 1 -15.136 17.103 -20.036 1.00 0.00 N 43 | ATOM 24 O UNL 1 -16.473 15.388 -19.473 1.00 0.00 O 44 | ATOM 25 H UNL 1 -14.959 18.098 -19.975 1.00 0.00 H 45 | ATOM 26 H UNL 1 -14.346 16.466 -20.031 1.00 0.00 H 46 | CONECT 1 14 2 4 47 | CONECT 2 1 48 | CONECT 3 4 49 | CONECT 4 1 5 3 50 | CONECT 5 6 4 51 | CONECT 6 5 7 52 | CONECT 7 6 12 12 8 53 | CONECT 8 7 9 9 54 | CONECT 9 8 8 10 55 | CONECT 10 11 11 9 56 | CONECT 11 12 10 10 57 | CONECT 12 13 7 7 11 58 | CONECT 13 12 59 | CONECT 14 21 15 1 60 | CONECT 15 16 16 14 20 61 | CONECT 16 17 15 15 62 | CONECT 17 16 18 18 63 | CONECT 18 17 17 19 64 | CONECT 19 18 20 20 65 | CONECT 20 15 19 19 66 | CONECT 21 22 14 67 | CONECT 22 23 21 24 24 68 | CONECT 23 26 25 22 69 | CONECT 24 22 22 70 | CONECT 25 23 71 | CONECT 26 23 72 | MASTER 0 0 0 0 0 0 0 0 26 0 26 0 73 | END 74 | -------------------------------------------------------------------------------- /files/2.pdbqt: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -8.55776691 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 9 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_1 and C_2 8 | REMARK 2 A between atoms: C_2 and C_3 9 | REMARK 3 A between atoms: C_2 and N_12 10 | REMARK 4 A between atoms: C_3 and C_4 11 | REMARK 5 A between atoms: C_4 and C_5 12 | REMARK 6 A between atoms: N_12 and C_13 13 | REMARK 7 A between atoms: C_13 and C_14 14 | REMARK 8 A between atoms: C_13 and C_18 15 | REMARK 9 A between atoms: C_14 and C_15 16 | REMARK x y z vdW Elec q Type 17 | REMARK _______ _______ _______ _____ _____ ______ ____ 18 | ROOT 19 | ATOM 1 N UNL 1 -17.900 16.680 -17.162 0.00 0.00 +0.000 NA 20 | ATOM 2 H UNL 1 -18.579 15.926 -17.018 0.00 0.00 +0.000 HD 21 | ENDROOT 22 | BRANCH 1 4 23 | ATOM 3 C UNL 1 -18.209 16.439 -14.696 0.00 0.00 +0.000 C 24 | ATOM 4 C UNL 1 -17.722 17.321 -15.854 0.00 0.00 +0.000 C 25 | BRANCH 4 5 26 | ATOM 5 C UNL 1 -16.198 17.586 -15.652 0.00 0.00 +0.000 C 27 | BRANCH 5 6 28 | ATOM 6 C UNL 1 -15.290 16.429 -16.099 0.00 0.00 +0.000 C 29 | BRANCH 6 7 30 | ATOM 7 C UNL 1 -14.602 15.727 -14.947 0.00 0.00 +0.000 A 31 | ATOM 8 C UNL 1 -13.503 16.319 -14.310 0.00 0.00 +0.000 A 32 | ATOM 9 C UNL 1 -12.841 15.664 -13.266 0.00 0.00 +0.000 A 33 | ATOM 10 C UNL 1 -13.267 14.404 -12.844 0.00 0.00 +0.000 A 34 | ATOM 11 C UNL 1 -14.360 13.806 -13.463 0.00 0.00 +0.000 A 35 | ATOM 12 C UNL 1 -15.021 14.469 -14.500 0.00 0.00 +0.000 A 36 | ATOM 13 F UNL 1 -16.067 13.866 -15.082 0.00 0.00 +0.000 F 37 | ENDBRANCH 6 7 38 | ENDBRANCH 5 6 39 | ENDBRANCH 4 5 40 | ENDBRANCH 1 4 41 | BRANCH 1 14 42 | ATOM 14 C UNL 1 -18.412 17.479 -18.304 0.00 0.00 +0.000 C 43 | BRANCH 14 15 44 | ATOM 15 C UNL 1 -19.843 17.035 -18.671 0.00 0.00 +0.000 A 45 | ATOM 16 C UNL 1 -20.160 16.487 -19.931 0.00 0.00 +0.000 A 46 | ATOM 17 C UNL 1 -21.449 16.046 -20.233 0.00 0.00 +0.000 A 47 | ATOM 18 C UNL 1 -22.460 16.154 -19.286 0.00 0.00 +0.000 A 48 | ATOM 19 C UNL 1 -22.176 16.689 -18.034 0.00 0.00 +0.000 A 49 | ATOM 20 C UNL 1 -20.880 17.115 -17.725 0.00 0.00 +0.000 A 50 | ENDBRANCH 14 15 51 | BRANCH 14 21 52 | ATOM 21 C UNL 1 -17.485 17.571 -19.538 0.00 0.00 +0.000 C 53 | BRANCH 21 22 54 | ATOM 22 C UNL 1 -16.330 16.595 -19.633 0.00 0.00 +0.000 C 55 | ATOM 23 N UNL 1 -15.136 17.103 -20.036 0.00 0.00 +0.000 N 56 | ATOM 24 O UNL 1 -16.473 15.388 -19.473 0.00 0.00 +0.000 OA 57 | ATOM 25 H UNL 1 -14.959 18.098 -19.975 0.00 0.00 +0.000 HD 58 | ATOM 26 H UNL 1 -14.346 16.466 -20.031 0.00 0.00 +0.000 HD 59 | ENDBRANCH 21 22 60 | ENDBRANCH 14 21 61 | ENDBRANCH 1 14 62 | TORSDOF 8 63 | ENDMDL 64 | -------------------------------------------------------------------------------- /files/3.pdb: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -10.394145 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 6 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_1 and C_2 8 | REMARK 2 A between atoms: C_2 and C_3 9 | REMARK 3 A between atoms: C_2 and N_16 10 | REMARK 4 A between atoms: N_5 and C_6 11 | REMARK 5 A between atoms: C_19 and O_20 12 | REMARK 6 A between atoms: C_19 and C_21 13 | REMARK x y z vdW Elec q Type 14 | REMARK _______ _______ _______ _____ _____ ______ ____ 15 | COMPND = 16 | AUTHOR GENERATED BY OPEN BABEL 3.1.0 17 | ATOM 1 C UNL 1 -17.608 16.523 -15.566 1.00 0.00 C 18 | ATOM 2 O UNL 1 -18.163 16.275 -14.494 1.00 0.00 O 19 | ATOM 3 N UNL 1 -16.513 15.813 -16.037 1.00 0.00 N 20 | ATOM 4 H UNL 1 -15.883 16.300 -16.656 1.00 0.00 H 21 | ATOM 5 C UNL 1 -15.966 14.733 -15.301 1.00 0.00 C 22 | ATOM 6 C UNL 1 -16.653 13.514 -15.281 1.00 0.00 C 23 | ATOM 7 C UNL 1 -16.138 12.421 -14.592 1.00 0.00 C 24 | ATOM 8 C UNL 1 -14.935 12.546 -13.902 1.00 0.00 C 25 | ATOM 9 C UNL 1 -14.232 13.761 -13.889 1.00 0.00 C 26 | ATOM 10 C UNL 1 -13.049 13.878 -13.144 1.00 0.00 C 27 | ATOM 11 C UNL 1 -12.361 15.089 -13.072 1.00 0.00 C 28 | ATOM 12 C UNL 1 -12.840 16.197 -13.758 1.00 0.00 C 29 | ATOM 13 C UNL 1 -14.010 16.092 -14.517 1.00 0.00 C 30 | ATOM 14 C UNL 1 -14.731 14.880 -14.605 1.00 0.00 C 31 | ATOM 15 C UNL 1 -17.044 18.612 -16.998 1.00 0.00 C 32 | ATOM 16 C UNL 1 -18.132 17.673 -16.469 1.00 0.00 C 33 | ATOM 17 N UNL 1 -19.014 17.203 -17.553 1.00 0.00 N 34 | ATOM 18 C UNL 1 -18.384 17.065 -18.869 1.00 0.00 C 35 | ATOM 19 C UNL 1 -19.416 17.529 -19.891 1.00 0.00 C 36 | ATOM 20 C UNL 1 -20.749 17.525 -19.151 1.00 0.00 C 37 | ATOM 21 C UNL 1 -20.298 17.891 -17.723 1.00 0.00 C 38 | ATOM 22 C UNL 1 -21.460 16.183 -19.203 1.00 0.00 C 39 | ATOM 23 C UNL 1 -22.864 16.022 -19.746 1.00 0.00 C 40 | ATOM 24 C UNL 1 -22.613 15.855 -18.275 1.00 0.00 C 41 | ATOM 25 O UNL 1 -21.587 18.553 -19.674 1.00 0.00 O 42 | ATOM 26 H UNL 1 -21.769 18.322 -20.599 1.00 0.00 H 43 | CONECT 1 16 3 2 2 44 | CONECT 2 1 1 45 | CONECT 3 4 1 5 46 | CONECT 4 3 47 | CONECT 5 3 6 6 14 48 | CONECT 6 5 5 7 49 | CONECT 7 6 8 8 50 | CONECT 8 7 7 9 51 | CONECT 9 14 14 8 10 52 | CONECT 10 9 11 11 53 | CONECT 11 12 10 10 54 | CONECT 12 13 13 11 55 | CONECT 13 14 12 12 56 | CONECT 14 5 13 9 9 57 | CONECT 15 16 58 | CONECT 16 17 15 1 59 | CONECT 17 18 21 16 60 | CONECT 18 19 17 61 | CONECT 19 20 18 62 | CONECT 20 19 25 22 21 63 | CONECT 21 20 17 64 | CONECT 22 23 20 24 65 | CONECT 23 22 24 66 | CONECT 24 23 22 67 | CONECT 25 26 20 68 | CONECT 26 25 69 | MASTER 0 0 0 0 0 0 0 0 26 0 26 0 70 | END 71 | -------------------------------------------------------------------------------- /files/3.pdbqt: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -10.394145 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 6 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_1 and C_2 8 | REMARK 2 A between atoms: C_2 and C_3 9 | REMARK 3 A between atoms: C_2 and N_16 10 | REMARK 4 A between atoms: N_5 and C_6 11 | REMARK 5 A between atoms: C_19 and O_20 12 | REMARK 6 A between atoms: C_19 and C_21 13 | REMARK x y z vdW Elec q Type 14 | REMARK _______ _______ _______ _____ _____ ______ ____ 15 | ROOT 16 | ATOM 1 C UNL 1 -17.608 16.523 -15.566 0.00 0.00 +0.000 C 17 | ATOM 2 O UNL 1 -18.163 16.275 -14.494 0.00 0.00 +0.000 OA 18 | ATOM 3 N UNL 1 -16.513 15.813 -16.037 0.00 0.00 +0.000 N 19 | ATOM 4 H UNL 1 -15.883 16.300 -16.656 0.00 0.00 +0.000 HD 20 | ENDROOT 21 | BRANCH 3 5 22 | ATOM 5 C UNL 1 -15.966 14.733 -15.301 0.00 0.00 +0.000 A 23 | ATOM 6 C UNL 1 -16.653 13.514 -15.281 0.00 0.00 +0.000 A 24 | ATOM 7 C UNL 1 -16.138 12.421 -14.592 0.00 0.00 +0.000 A 25 | ATOM 8 C UNL 1 -14.935 12.546 -13.902 0.00 0.00 +0.000 A 26 | ATOM 9 C UNL 1 -14.232 13.761 -13.889 0.00 0.00 +0.000 A 27 | ATOM 10 C UNL 1 -13.049 13.878 -13.144 0.00 0.00 +0.000 A 28 | ATOM 11 C UNL 1 -12.361 15.089 -13.072 0.00 0.00 +0.000 A 29 | ATOM 12 C UNL 1 -12.840 16.197 -13.758 0.00 0.00 +0.000 A 30 | ATOM 13 C UNL 1 -14.010 16.092 -14.517 0.00 0.00 +0.000 A 31 | ATOM 14 C UNL 1 -14.731 14.880 -14.605 0.00 0.00 +0.000 A 32 | ENDBRANCH 3 5 33 | BRANCH 1 16 34 | ATOM 15 C UNL 1 -17.044 18.612 -16.998 0.00 0.00 +0.000 C 35 | ATOM 16 C UNL 1 -18.132 17.673 -16.469 0.00 0.00 +0.000 C 36 | BRANCH 16 17 37 | ATOM 17 N UNL 1 -19.014 17.203 -17.553 0.00 0.00 +0.000 NA 38 | ATOM 18 C UNL 1 -18.384 17.065 -18.869 0.00 0.00 +0.000 C 39 | ATOM 19 C UNL 1 -19.416 17.529 -19.891 0.00 0.00 +0.000 C 40 | ATOM 20 C UNL 1 -20.749 17.525 -19.151 0.00 0.00 +0.000 C 41 | ATOM 21 C UNL 1 -20.298 17.891 -17.723 0.00 0.00 +0.000 C 42 | BRANCH 20 22 43 | ATOM 22 C UNL 1 -21.460 16.183 -19.203 0.00 0.00 +0.000 C 44 | ATOM 23 C UNL 1 -22.864 16.022 -19.746 0.00 0.00 +0.000 C 45 | ATOM 24 C UNL 1 -22.613 15.855 -18.275 0.00 0.00 +0.000 C 46 | ENDBRANCH 20 22 47 | BRANCH 20 25 48 | ATOM 25 O UNL 1 -21.587 18.553 -19.674 0.00 0.00 +0.000 OA 49 | ATOM 26 H UNL 1 -21.769 18.322 -20.599 0.00 0.00 +0.000 HD 50 | ENDBRANCH 20 25 51 | ENDBRANCH 16 17 52 | ENDBRANCH 1 16 53 | TORSDOF 5 54 | ENDMDL 55 | -------------------------------------------------------------------------------- /files/4.pdb: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -10.0490551 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 6 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_1 and C_2 8 | REMARK 2 A between atoms: C_6 and C_7 9 | REMARK 3 A between atoms: C_7 and N_8 10 | REMARK 4 A between atoms: C_11 and O_12 11 | REMARK 5 A between atoms: C_20 and O_21 12 | REMARK 6 A between atoms: C_23 and C_24 13 | REMARK x y z vdW Elec q Type 14 | REMARK _______ _______ _______ _____ _____ ______ ____ 15 | COMPND = 16 | AUTHOR GENERATED BY OPEN BABEL 3.1.0 17 | ATOM 1 C UNL 1 -19.737 18.807 -22.130 1.00 0.00 C 18 | ATOM 2 C UNL 1 -18.902 18.329 -20.985 1.00 0.00 C 19 | ATOM 3 S UNL 1 -19.578 18.187 -19.421 1.00 0.00 S 20 | ATOM 4 C UNL 1 -18.119 17.609 -18.759 1.00 0.00 C 21 | ATOM 5 N UNL 1 -18.021 17.298 -17.451 1.00 0.00 N 22 | ATOM 6 C UNL 1 -16.803 16.846 -17.102 1.00 0.00 C 23 | ATOM 7 N UNL 1 -15.750 16.696 -17.932 1.00 0.00 N 24 | ATOM 8 C UNL 1 -15.911 17.039 -19.211 1.00 0.00 C 25 | ATOM 9 C UNL 1 -17.115 17.519 -19.710 1.00 0.00 C 26 | ATOM 10 C UNL 1 -17.566 17.955 -21.013 1.00 0.00 C 27 | ATOM 11 C UNL 1 -16.720 17.997 -22.248 1.00 0.00 C 28 | ATOM 12 O UNL 1 -14.783 16.893 -19.963 1.00 0.00 O 29 | ATOM 13 H UNL 1 -14.163 16.568 -19.285 1.00 0.00 H 30 | ATOM 14 C UNL 1 -16.529 16.546 -15.626 1.00 0.00 C 31 | ATOM 15 N UNL 1 -15.208 15.932 -15.282 1.00 0.00 N 32 | ATOM 16 C UNL 1 -14.357 16.938 -14.617 1.00 0.00 C 33 | ATOM 17 C UNL 1 -12.985 16.414 -14.223 1.00 0.00 C 34 | ATOM 18 C UNL 1 -13.125 15.167 -13.367 1.00 0.00 C 35 | ATOM 19 C UNL 1 -13.936 14.112 -14.125 1.00 0.00 C 36 | ATOM 20 C UNL 1 -14.066 12.815 -13.308 1.00 0.00 C 37 | ATOM 21 C UNL 1 -14.863 11.757 -14.063 1.00 0.00 C 38 | ATOM 22 C UNL 1 -16.222 12.289 -14.496 1.00 0.00 C 39 | ATOM 23 C UNL 1 -16.098 13.585 -15.292 1.00 0.00 C 40 | ATOM 24 C UNL 1 -15.333 14.676 -14.506 1.00 0.00 C 41 | ATOM 25 O UNL 1 -11.828 14.682 -13.027 1.00 0.00 O 42 | ATOM 26 H UNL 1 -11.380 14.450 -13.856 1.00 0.00 H 43 | CONECT 1 2 44 | CONECT 2 1 10 10 3 45 | CONECT 3 2 4 46 | CONECT 4 9 9 3 5 47 | CONECT 5 4 6 6 48 | CONECT 6 7 5 5 14 49 | CONECT 7 8 8 6 50 | CONECT 8 12 9 7 7 51 | CONECT 9 10 8 4 4 52 | CONECT 10 11 2 2 9 53 | CONECT 11 10 54 | CONECT 12 13 8 55 | CONECT 13 12 56 | CONECT 14 6 15 57 | CONECT 15 14 16 24 58 | CONECT 16 15 17 59 | CONECT 17 16 18 60 | CONECT 18 17 19 25 61 | CONECT 19 24 18 20 62 | CONECT 20 19 21 63 | CONECT 21 22 20 64 | CONECT 22 23 21 65 | CONECT 23 24 22 66 | CONECT 24 23 15 19 67 | CONECT 25 26 18 68 | CONECT 26 25 69 | MASTER 0 0 0 0 0 0 0 0 26 0 26 0 70 | END 71 | -------------------------------------------------------------------------------- /files/4.pdbqt: -------------------------------------------------------------------------------- 1 | MODEL 1 2 | REMARK minimizedAffinity -10.0490551 3 | REMARK minimizedRMSD -1 4 | REMARK Name = 5 | REMARK 6 active torsions: 6 | REMARK status: ('A' for Active; 'I' for Inactive) 7 | REMARK 1 A between atoms: C_1 and C_2 8 | REMARK 2 A between atoms: C_6 and C_7 9 | REMARK 3 A between atoms: C_7 and N_8 10 | REMARK 4 A between atoms: C_11 and O_12 11 | REMARK 5 A between atoms: C_20 and O_21 12 | REMARK 6 A between atoms: C_23 and C_24 13 | REMARK x y z vdW Elec q Type 14 | REMARK _______ _______ _______ _____ _____ ______ ____ 15 | ROOT 16 | ATOM 1 C UNL 1 -19.737 18.807 -22.130 0.00 0.00 +0.000 C 17 | ATOM 2 C UNL 1 -18.902 18.329 -20.985 0.00 0.00 +0.000 A 18 | ATOM 3 S UNL 1 -19.578 18.187 -19.421 0.00 0.00 +0.000 S 19 | ATOM 4 C UNL 1 -18.119 17.609 -18.759 0.00 0.00 +0.000 A 20 | ATOM 5 N UNL 1 -18.021 17.298 -17.451 0.00 0.00 +0.000 NA 21 | ATOM 6 C UNL 1 -16.803 16.846 -17.102 0.00 0.00 +0.000 A 22 | ATOM 7 N UNL 1 -15.750 16.696 -17.932 0.00 0.00 +0.000 NA 23 | ATOM 8 C UNL 1 -15.911 17.039 -19.211 0.00 0.00 +0.000 A 24 | ATOM 9 C UNL 1 -17.115 17.519 -19.710 0.00 0.00 +0.000 A 25 | ATOM 10 C UNL 1 -17.566 17.955 -21.013 0.00 0.00 +0.000 A 26 | ATOM 11 C UNL 1 -16.720 17.997 -22.248 0.00 0.00 +0.000 C 27 | ENDROOT 28 | BRANCH 8 12 29 | ATOM 12 O UNL 1 -14.783 16.893 -19.963 0.00 0.00 +0.000 OA 30 | ATOM 13 H UNL 1 -14.163 16.568 -19.285 0.00 0.00 +0.000 HD 31 | ENDBRANCH 8 12 32 | BRANCH 6 14 33 | ATOM 14 C UNL 1 -16.529 16.546 -15.626 0.00 0.00 +0.000 C 34 | BRANCH 14 15 35 | ATOM 15 N UNL 1 -15.208 15.932 -15.282 0.00 0.00 +0.000 NA 36 | ATOM 16 C UNL 1 -14.357 16.938 -14.617 0.00 0.00 +0.000 C 37 | ATOM 17 C UNL 1 -12.985 16.414 -14.223 0.00 0.00 +0.000 C 38 | ATOM 18 C UNL 1 -13.125 15.167 -13.367 0.00 0.00 +0.000 C 39 | ATOM 19 C UNL 1 -13.936 14.112 -14.125 0.00 0.00 +0.000 C 40 | ATOM 20 C UNL 1 -14.066 12.815 -13.308 0.00 0.00 +0.000 C 41 | ATOM 21 C UNL 1 -14.863 11.757 -14.063 0.00 0.00 +0.000 C 42 | ATOM 22 C UNL 1 -16.222 12.289 -14.496 0.00 0.00 +0.000 C 43 | ATOM 23 C UNL 1 -16.098 13.585 -15.292 0.00 0.00 +0.000 C 44 | ATOM 24 C UNL 1 -15.333 14.676 -14.506 0.00 0.00 +0.000 C 45 | BRANCH 18 25 46 | ATOM 25 O UNL 1 -11.828 14.682 -13.027 0.00 0.00 +0.000 OA 47 | ATOM 26 H UNL 1 -11.380 14.450 -13.856 0.00 0.00 +0.000 HD 48 | ENDBRANCH 18 25 49 | ENDBRANCH 14 15 50 | ENDBRANCH 6 14 51 | TORSDOF 4 52 | ENDMDL 53 | -------------------------------------------------------------------------------- /files/5WIU-CAC.pdb: -------------------------------------------------------------------------------- 1 | HETATM 1 CAA AQD A1201 -14.651 10.489 -12.085 1.00 29.80 B C 2 | HETATM 2 CAB AQD A1201 -16.765 11.793 -16.344 1.00 26.89 B C 3 | HETATM 3 CAC AQD A1201 -16.699 15.290 -19.320 1.00 33.08 B C 4 | HETATM 4 CAF AQD A1201 -23.565 17.421 -20.210 1.00 61.98 B C 5 | HETATM 5 CAG AQD A1201 -22.616 18.335 -20.665 1.00 59.38 B C 6 | HETATM 6 CAH AQD A1201 -23.166 16.184 -19.721 1.00 69.04 B C 7 | HETATM 7 CAI AQD A1201 -21.259 18.001 -20.632 1.00 53.54 B C 8 | HETATM 8 CAJ AQD A1201 -21.806 15.847 -19.682 1.00 58.81 B C 9 | HETATM 9 CAK AQD A1201 -15.231 12.434 -14.098 1.00 32.67 B C 10 | HETATM 10 CAL AQD A1201 -14.265 15.058 -13.780 1.00 32.20 B C 11 | HETATM 11 CAM AQD A1201 -18.166 17.653 -16.797 1.00 41.57 B C 12 | HETATM 12 CAN AQD A1201 -19.349 17.390 -17.881 1.00 61.28 B C 13 | HETATM 13 CAO AQD A1201 -19.331 16.401 -20.098 1.00 68.84 B C 14 | HETATM 14 CAS AQD A1201 -15.526 15.904 -15.744 1.00 33.92 B C 15 | HETATM 15 CAT AQD A1201 -20.852 16.758 -20.138 1.00 54.50 B C 16 | HETATM 16 CAU AQD A1201 -13.891 14.071 -12.887 1.00 35.13 B C 17 | HETATM 17 CAV AQD A1201 -14.376 12.763 -13.031 1.00 27.75 B C 18 | HETATM 18 CAW AQD A1201 -15.615 13.449 -14.994 1.00 27.18 B C 19 | HETATM 19 CAX AQD A1201 -15.118 14.748 -14.834 1.00 28.31 B C 20 | HETATM 20 CAY AQD A1201 -17.416 16.578 -18.817 1.00 51.93 B C 21 | HETATM 21 CAZ AQD A1201 -16.997 16.959 -17.469 1.00 40.86 B C 22 | HETATM 22 NAP AQD A1201 -13.960 11.763 -12.096 1.00 31.76 B N 23 | HETATM 23 NAQ AQD A1201 -16.638 15.809 -16.648 1.00 34.47 B N 24 | HETATM 24 OAD AQD A1201 -14.929 16.950 -15.642 1.00 36.55 B O 25 | HETATM 25 OAR AQD A1201 -16.479 13.184 -16.085 1.00 31.19 B O 26 | HETATM 26 NBA AQD A1201 -18.795 16.355 -18.773 1.00 60.99 B N 27 | HETATM 27 CLA AQD A1201 -12.777 14.490 -11.593 1.00 41.84 B CL 28 | CONECT 1 22 29 | CONECT 2 25 30 | CONECT 3 20 31 | CONECT 4 6 5 32 | CONECT 5 4 7 33 | CONECT 6 4 8 34 | CONECT 7 5 15 35 | CONECT 8 6 15 36 | CONECT 9 17 18 37 | CONECT 10 19 16 38 | CONECT 11 12 21 39 | CONECT 12 11 26 40 | CONECT 13 15 26 41 | CONECT 14 23 24 19 42 | CONECT 15 13 7 8 43 | CONECT 16 10 27 17 44 | CONECT 17 9 16 22 45 | CONECT 18 9 19 25 46 | CONECT 19 10 18 14 47 | CONECT 20 3 26 21 48 | CONECT 21 11 20 23 49 | CONECT 22 17 1 50 | CONECT 23 14 21 51 | CONECT 24 14 52 | CONECT 25 2 18 53 | CONECT 26 12 20 13 54 | CONECT 27 16 55 | END 56 | -------------------------------------------------------------------------------- /files/5WIU-CAC.pdbqt: -------------------------------------------------------------------------------- 1 | REMARK Name = 5WIU-CAC.pdb 2 | REMARK 6 active torsions: 3 | REMARK status: ('A' for Active; 'I' for Inactive) 4 | REMARK 1 A between atoms: CAO_13 and CAT_15 5 | REMARK 2 A between atoms: CAO_13 and NBA_26 6 | REMARK 3 A between atoms: CAS_14 and CAX_19 7 | REMARK 4 A between atoms: CAV_17 and NAP_22 8 | REMARK 5 A between atoms: CAW_18 and OAR_25 9 | REMARK 6 A between atoms: CAZ_21 and NAQ_23 10 | REMARK x y z vdW Elec q Type 11 | REMARK _______ _______ _______ _____ _____ ______ ____ 12 | ROOT 13 | ATOM 1 CAS AQD A1201 -15.526 15.904 -15.744 0.00 0.00 +0.000 C 14 | ATOM 2 NAQ AQD A1201 -16.638 15.809 -16.648 0.00 0.00 +0.000 NA 15 | ATOM 3 OAD AQD A1201 -14.929 16.950 -15.642 0.00 0.00 +0.000 OA 16 | ENDROOT 17 | BRANCH 1 9 18 | ATOM 4 CAK AQD A1201 -15.231 12.434 -14.098 0.00 0.00 +0.000 A 19 | ATOM 5 CAL AQD A1201 -14.265 15.058 -13.780 0.00 0.00 +0.000 A 20 | ATOM 6 CAU AQD A1201 -13.891 14.071 -12.887 0.00 0.00 +0.000 A 21 | ATOM 7 CAV AQD A1201 -14.376 12.763 -13.031 0.00 0.00 +0.000 A 22 | ATOM 8 CAW AQD A1201 -15.615 13.449 -14.994 0.00 0.00 +0.000 A 23 | ATOM 9 CAX AQD A1201 -15.118 14.748 -14.834 0.00 0.00 +0.000 A 24 | ATOM 10 CLA AQD A1201 -12.777 14.490 -11.593 0.00 0.00 +0.000 Cl 25 | BRANCH 7 12 26 | ATOM 11 CAA AQD A1201 -14.651 10.489 -12.085 0.00 0.00 +0.000 C 27 | ATOM 12 NAP AQD A1201 -13.960 11.763 -12.096 0.00 0.00 +0.000 NA 28 | ENDBRANCH 7 12 29 | BRANCH 8 14 30 | ATOM 13 CAB AQD A1201 -16.765 11.793 -16.344 0.00 0.00 +0.000 C 31 | ATOM 14 OAR AQD A1201 -16.479 13.184 -16.085 0.00 0.00 +0.000 OA 32 | ENDBRANCH 8 14 33 | ENDBRANCH 1 9 34 | BRANCH 2 19 35 | ATOM 15 CAC AQD A1201 -16.699 15.290 -19.320 0.00 0.00 +0.000 C 36 | ATOM 16 CAM AQD A1201 -18.166 17.653 -16.797 0.00 0.00 +0.000 C 37 | ATOM 17 CAN AQD A1201 -19.349 17.390 -17.881 0.00 0.00 +0.000 C 38 | ATOM 18 CAY AQD A1201 -17.416 16.578 -18.817 0.00 0.00 +0.000 C 39 | ATOM 19 CAZ AQD A1201 -16.997 16.959 -17.469 0.00 0.00 +0.000 C 40 | ATOM 20 NBA AQD A1201 -18.795 16.355 -18.773 0.00 0.00 +0.000 NA 41 | BRANCH 20 21 42 | ATOM 21 CAO AQD A1201 -19.331 16.401 -20.098 0.00 0.00 +0.000 C 43 | BRANCH 21 27 44 | ATOM 22 CAF AQD A1201 -23.565 17.421 -20.210 0.00 0.00 +0.000 A 45 | ATOM 23 CAG AQD A1201 -22.616 18.335 -20.665 0.00 0.00 +0.000 A 46 | ATOM 24 CAH AQD A1201 -23.166 16.184 -19.721 0.00 0.00 +0.000 A 47 | ATOM 25 CAI AQD A1201 -21.259 18.001 -20.632 0.00 0.00 +0.000 A 48 | ATOM 26 CAJ AQD A1201 -21.806 15.847 -19.682 0.00 0.00 +0.000 A 49 | ATOM 27 CAT AQD A1201 -20.852 16.758 -20.138 0.00 0.00 +0.000 A 50 | ENDBRANCH 21 27 51 | ENDBRANCH 20 21 52 | ENDBRANCH 2 19 53 | TORSDOF 6 54 | -------------------------------------------------------------------------------- /mol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ljmartin/dockviz/f2678278e9f428cb2d18e061a31df9a44324ebc7/mol.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | streamlit==0.75.0 3 | 4 | -------------------------------------------------------------------------------- /run_smina.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import numpy\n", 10 | "import pandas as pd\n", 11 | "import tqdm" 12 | ] 13 | }, 14 | { 15 | "cell_type": "markdown", 16 | "metadata": {}, 17 | "source": [ 18 | "https://www.cheminformania.com/ligand-docking-with-smina/\n", 19 | "\n", 20 | "```python\n", 21 | "fetch 5WIU\n", 22 | "remove resn HOH\n", 23 | "h_add elem O or elem N\n", 24 | "select 1OYT-FSN, resn FSN #Create a selection called 1OYT-FSN from the ligand\n", 25 | "select 1OYT-receptor, 1OYT and not 1OYT-FSN #Select all that is not the ligand\n", 26 | "save 1OYT-FSN.pdb, 1OYT-FSN\n", 27 | "save 1OYT-receptor.pdb, 1OYT-receptor\n", 28 | "```\n", 29 | "\n", 30 | "\n", 31 | "```\n", 32 | "obabel 1OYT-receptor.pdb -xr -O 1OYT-receptor.pdbqt\n", 33 | "obabel 1OYT-FSN.pdb -O 1OYT-FSN.pdbqt\n", 34 | "\n", 35 | "```\n", 36 | "\n", 37 | "```\n", 38 | "smina.static -r 1OYT-receptor.pdbqt -l 1OYT-FSN.pdbqt --autobox_ligand 1OYT-FSN.pdbqt --autobox_add 8 --exhaustiveness 16 -o 1OYT-redock.pdbqt\n", 39 | "```" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 15, 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "df = pd.read_csv('https://gist.githubusercontent.com/ljmartin/82f0dfe9f58e584a3e5186afe6e75973/raw/4315cb08931628f03781546da46c0b98875c453b/41586_2019_917_MOESM4_ESM.csv')\n", 49 | "df = df['SMILES'][:5]" 50 | ] 51 | }, 52 | { 53 | "cell_type": "code", 54 | "execution_count": 4, 55 | "metadata": {}, 56 | "outputs": [ 57 | { 58 | "name": "stdout", 59 | "output_type": "stream", 60 | "text": [ 61 | "1 molecule converted\n", 62 | "==============================\n", 63 | "*** Open Babel Warning in PerceiveBondOrders\n", 64 | " Failed to kekulize aromatic bonds in OBMol::PerceiveBondOrders (title is 5WIU-receptor.pdb)\n", 65 | "\n", 66 | "1 molecule converted\n" 67 | ] 68 | } 69 | ], 70 | "source": [ 71 | "#convert ligand:\n", 72 | "!obabel 5WIU-CAC.pdb -O 5WIU-CAC.pdbqt\n", 73 | "\n", 74 | "#convert receptor\n", 75 | "!obabel 5WIU-receptor.pdb -xr -O 5WIU-receptor.pdbqt" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": 18, 81 | "metadata": {}, 82 | "outputs": [ 83 | { 84 | "data": { 85 | "text/plain": [ 86 | "0 Cc1ccc(C[C@@H](CO)N[C@@H](C)CCc2ccccc2[N+](=O)...\n", 87 | "1 C[C@H](C(=O)Nc1cc([N+](=O)[O-])ccc1Cl)N(C)C[C@...\n", 88 | "2 C[C@@H](NC[C@](C)(O)c1ccccc1)c1cn(-c2ccccc2)nn1\n", 89 | "3 C[C@H](Nc1cc(-n2cccn2)nc(N)n1)[C@H](c1ccccc1)N...\n", 90 | "4 COC(=O)C[C@H]1CSCCN1Cc1cn(-c2cccc(C)c2)nc1C\n", 91 | "Name: SMILES, dtype: object" 92 | ] 93 | }, 94 | "execution_count": 18, 95 | "metadata": {}, 96 | "output_type": "execute_result" 97 | } 98 | ], 99 | "source": [ 100 | "df" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": null, 106 | "metadata": { 107 | "scrolled": true 108 | }, 109 | "outputs": [ 110 | { 111 | "name": "stderr", 112 | "output_type": "stream", 113 | "text": [ 114 | ":4: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n", 115 | "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n", 116 | " for count, smi in tqdm.tqdm_notebook(enumerate(df)):\n" 117 | ] 118 | }, 119 | { 120 | "data": { 121 | "application/vnd.jupyter.widget-view+json": { 122 | "model_id": "4a420360ac374e87b4364dd508a81723", 123 | "version_major": 2, 124 | "version_minor": 0 125 | }, 126 | "text/plain": [ 127 | "HBox(children=(FloatProgress(value=1.0, bar_style='info', layout=Layout(width='20px'), max=1.0), HTML(value=''…" 128 | ] 129 | }, 130 | "metadata": {}, 131 | "output_type": "display_data" 132 | }, 133 | { 134 | "name": "stdout", 135 | "output_type": "stream", 136 | "text": [ 137 | "1 molecule converted\n", 138 | "\n", 139 | "0% 10 20 30 40 50 60 70 80 90 100%\n", 140 | "|----|----|----|----|----|----|----|----|----|----|\n", 141 | "***************************************************\n", 142 | "Refine time 9.27113\n", 143 | "Loop time 10.8096\n", 144 | "1 molecule converted\n", 145 | "1 molecule converted\n", 146 | "\n", 147 | "0% 10 20 30 40 50 60 70 80 90 100%\n", 148 | "|----|----|----|----|----|----|----|----|----|----|\n", 149 | "***************************************************\n", 150 | "Refine time 7.67843\n", 151 | "Loop time 9.54028\n", 152 | "1 molecule converted\n", 153 | "1 molecule converted\n", 154 | "\n", 155 | "0% 10 20 30 40 50 60 70 80 90 100%\n", 156 | "|----|----|----|----|----|----|----|----|----|----|\n", 157 | "*************************************" 158 | ] 159 | } 160 | ], 161 | "source": [ 162 | "\n", 163 | "#./smina.static -r 5WIU-receptor.pdbqt --quiet -l nam.pdbqt --cpu 2 --autobox_ligand 5WIU-CAC.pdbqt --autobox_add 8 --log hi.log --exhaustiveness 4 >/dev/null\n", 164 | " \n", 165 | "for count, smi in tqdm.tqdm_notebook(enumerate(df)):\n", 166 | " #convert the ligand:\n", 167 | " !obabel -:\"$smi\" --gen3d ---errorlevel 1 --partial_charges gasteiger -O nam.pdbqt >/dev/null\n", 168 | " \n", 169 | " #perform docking: \n", 170 | " !./smina.static -r 5WIU-receptor.pdbqt --quiet -l nam.pdbqt --cpu 2 --autobox_ligand 5WIU-CAC.pdbqt --autobox_add 8 --log hi.log --exhaustiveness 4 --num_modes 1 -o \"$count\".pdbqt\n", 171 | " \n", 172 | " #save as a pdb:\n", 173 | " !obabel -ipdbqt \"$count\".pdbqt -O \"$count\".pdb\n", 174 | " " 175 | ] 176 | }, 177 | { 178 | "cell_type": "code", 179 | "execution_count": 10, 180 | "metadata": {}, 181 | "outputs": [ 182 | { 183 | "data": { 184 | "image/png": "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\n", 185 | "text/plain": [ 186 | "" 187 | ] 188 | }, 189 | "execution_count": 10, 190 | "metadata": {}, 191 | "output_type": "execute_result" 192 | } 193 | ], 194 | "source": [ 195 | "from rdkit import Chem\n", 196 | "Chem.MolFromPDBFile('0.pdb')" 197 | ] 198 | } 199 | ], 200 | "metadata": { 201 | "kernelspec": { 202 | "display_name": "Python 3", 203 | "language": "python", 204 | "name": "python3" 205 | }, 206 | "language_info": { 207 | "codemirror_mode": { 208 | "name": "ipython", 209 | "version": 3 210 | }, 211 | "file_extension": ".py", 212 | "mimetype": "text/x-python", 213 | "name": "python", 214 | "nbconvert_exporter": "python", 215 | "pygments_lexer": "ipython3", 216 | "version": "3.7.8" 217 | } 218 | }, 219 | "nbformat": 4, 220 | "nbformat_minor": 4 221 | } 222 | -------------------------------------------------------------------------------- /stApp.py: -------------------------------------------------------------------------------- 1 | import streamlit as st 2 | 3 | import pandas as pd 4 | import numpy as np 5 | import os 6 | 7 | from rdkit import Chem, RDConfig 8 | from rdkit.Chem import Draw, ChemicalFeatures, Descriptors, Crippen 9 | 10 | import py3Dmol 11 | 12 | 13 | st.set_page_config( 14 | layout='wide', 15 | ) 16 | 17 | ##Setup: 18 | 19 | def isRingAromatic(mol, atomRing): 20 | for id in atomRing: 21 | if not mol.GetAtomWithIdx(id).GetIsAromatic(): 22 | return False 23 | return True 24 | 25 | def calcAromCOM(pdb, ring): 26 | pos = pdb.GetConformer(0).GetPositions() 27 | return pos[np.array(ring)].mean(0) 28 | 29 | col = {'Donor':'green', 'Acceptor':'purple'} 30 | 31 | def main(): 32 | 33 | #print out some explanation stuff in the sidebar: 34 | #st.sidebar.title("Binding site viz with py3dmol") 35 | #st.sidebar.write("instructions") 36 | 37 | 38 | #and some intro text in the main frame: 39 | st.title('Docking viz for the D4 receptor using py3dmol') 40 | st.write("The co-crystallized ligand is present in blue. Input a docking rank (0-4) to see the best-scoring docking conformation, in orange.") 41 | st.write("Shift-click to zoom, and rotate with primary click") 42 | labels = st.radio("Annotate with pharmacophore labels", ('Yes', 'No')) 43 | 44 | selected_rank = st.text_input("Input Rank (i.e. `4`, ranks are zero-indexed)", "") 45 | if len(selected_rank)>=1: 46 | pdb = Chem.MolFromPDBFile('./files/'+selected_rank+'.pdb') 47 | molwt = Descriptors.MolWt(pdb) 48 | clogp = Crippen.MolLogP(pdb) 49 | formalcharge = sum([i.GetFormalCharge() for i in pdb.GetAtoms()]) 50 | st.write(f"**Rank**: {selected_rank}, **MW**: {molwt}, **cLogP**: {clogp}, **Formal Charge**: {formalcharge}") 51 | Draw.MolToFile(Chem.MolFromSmiles(Chem.MolToSmiles(pdb)), 'mol.png') 52 | st.image('mol.png') 53 | 54 | 55 | ###now the app: 56 | #camera: 57 | viewer = py3Dmol.view(width=1200, height=800) 58 | viewer.setBackgroundColor(0x000000) 59 | viewer.setCameraParameters({ 'fov': '50', 'z':150 }); 60 | 61 | 62 | #molecules: 63 | viewer.addModel(open('./files/5WIU-CAC.pdb', 'r').read(), 'pdb') 64 | viewer.zoomTo() 65 | viewer.addModel(open('./files/5WIU-receptor.pdb', 'r').read(), 'pdb') 66 | if len(selected_rank) >= 1: 67 | viewer.addModel(open('./files/'+selected_rank+'.pdb', 'r').read(), 'pdb') 68 | 69 | 70 | ri = pdb.GetRingInfo() 71 | for ring in ri.AtomRings(): 72 | if isRingAromatic(pdb, ring): 73 | com = calcAromCOM(pdb, ring) 74 | viewer.addSphere({'radius': 1.25, 75 | 'center': {'x':com[0], 'y':com[1], 'z':com[2]}, 76 | 'wireframe':'True', 77 | 'color':'brown'}) 78 | if labels=='Yes': 79 | viewer.addLabel('Aromatic', {'position': {'x':com[0], 'y':com[1], 'z':com[2]}, 'backgroundColor': "brown", 'backgroundOpacity': 0.8}) 80 | 81 | #features: 82 | fdefName = os.path.join(RDConfig.RDDataDir,'BaseFeatures.fdef') 83 | factory = ChemicalFeatures.BuildFeatureFactory(fdefName) 84 | feats = factory.GetFeaturesForMol(pdb) 85 | for f in [f for f in feats if (f.GetFamily()=='Donor' or f.GetFamily()=='Acceptor')]: 86 | p = np.array(f.GetPos()) 87 | viewer.addSphere({'radius': 0.7, 88 | 'center': {'x':p[0], 'y':p[1], 'z':p[2]}, 89 | 'wireframe':'False', 90 | 'color':'black', 91 | 'opacity':0.8}) 92 | offset = p + {'Donor':0.1, 'Acceptor':-0.1}[f.GetFamily()] 93 | if labels=='Yes': 94 | viewer.addLabel(f.GetFamily(), {'position': {'x':offset[0], 'y':offset[1], 'z':offset[2]}, 'backgroundColor': col[f.GetFamily()], 'backgroundOpacity': 0.8}); 95 | positions = pdb.GetConformer(0).GetPositions() 96 | for p in [positions[count] for count, i in enumerate(pdb.GetAtoms()) if i.GetFormalCharge()!=0]: 97 | viewer.addSphere({'radius': 0.8, 98 | 'center': {'x':p[0], 'y':p[1], 'z':p[2]}, 99 | #'wireframe':'True', 100 | 'color':'#00FF00','opacity':0.8}) 101 | if labels=='Yes': 102 | viewer.addLabel("Charge", {'position': {'x':p[0], 'y':p[1], 'z':p[2]}, 'backgroundColor': "pink", 'backgroundOpacity': 0.8}) 103 | 104 | 105 | ##selections and stylings: 106 | #binding residues: 107 | bresis=[87, 88, 90, 91, 94, 101, 111, 112,115, 116, 117, 108 | 119, 120, 123, 185, 186, 187, 192, 193, 194, 196, 109 | 197, 200, 407, 410, 411, 414, 434, 438,] 110 | #CCR5 111 | prot = {'resn': ["AQD", "UNL"], 'invert': 1} 112 | viewer.setStyle(prot, {'cartoon':{'colorscheme':'cyanCarbon'}}) 113 | viewer.addSurface(py3Dmol.SES,{'opacity':0.9, 'color': 'white'}, prot) 114 | 115 | viewer.setStyle({'resi':bresis}, {'stick': {'colorscheme': 'blueCarbon'}}) 116 | 117 | #maraviroc: 118 | viewer.setStyle({'resn':['AQD']}, {'stick': {'colorscheme': 'blueCarbon'}}) 119 | 120 | #docked ligands: 121 | viewer.setStyle({'resn':['UNL']}, {'stick': {'colorscheme': 'orangeCarbon'}}) 122 | #viewer.addSurface(py3Dmol.SES, {'opacity': 0.7}, {'resn':['UNL']}) 123 | 124 | 125 | #view it; 126 | viewer.render() 127 | 128 | 129 | t =viewer.js() 130 | f = open('viz.html', 'w') 131 | f.write(t.startjs) 132 | f.write(t.endjs) 133 | f.close() 134 | 135 | st.components.v1.html(open('viz.html', 'r').read(), width=1200, height=800) 136 | 137 | 138 | st.write("""## Credits:""") 139 | st.write("This uses `py3dmol` for 3d visualization: https://3dmol.csb.pitt.edu/ , Rego & Koes: https://doi.org/10.1093/bioinformatics/btu829") 140 | st.write("Molecular properties are calculated with the `RDKit`: https://www.rdkit.org/") 141 | st.write("Docking used `smina`: https://sourceforge.net/projects/smina/") 142 | st.write("Docking pipeline was described by `Esben Jannik Bjerrum` at https://www.cheminformania.com/ligand-docking-with-smina/") 143 | st.write("Ligands are from a publicly available dataset from `Lyu et al`: https://doi.org/10.1038/s41586-019-0917-9") 144 | st.write("structure file conversions by obabel: https://openbabel.org/docs/dev/Command-line_tools/babel.html") 145 | st.write("and these pieces were put together by lewis martin: https://ljmartin.github.io/") 146 | 147 | if __name__=="__main__": 148 | main() 149 | --------------------------------------------------------------------------------