Dokowanie molekularne Andrzej Bąk
Import bibliotek sys, pybel, openbabel oraz gzip niezbędnych do wykonania ćwiczenia. import sys sys.path.append('/usr/lib/pymodules /python2.6') try: import sys import os from pybel import * from openbabel import * import gzip except ImportError,e: print 'Error: %s' %e sys.exit(1)
Użytkownik może wygenerować kod SMILES używając programu JME html('<applet code="jme.class" name="jme" archive="./jme.jar" width="360" height="335"><param name="options" value=""></applet> ')
Użytkownik może wygenerować własny kod SMILES smiles=cccc1ccccc1o' print 'Kod smiles generowany przez program JME: %s' %smiles Kod smiles generowany przez program JME: CCCc1ccccc1O
Utworzenie ciągu znaków w formacie 3D SDF ### utworzenie obiektu OBMol ### mol=obsmi2mol(smiles=cansmi) ### konwersja typu zmiennej steps ### steps=500 steps=int(steps) sdfilestring=obmol2molfilestring (mol=mol,forcefield='mmff94',ste ps=steps) print sdfilestring
Ciąg znaków w formacie 3D SDF 22 22 0 0 0 0 0 0 0 0999 V2000 0.7589 0.2368 0.0005 C 0 0 0 0 0 2.2578-0.0397 0.0051 C 0 0 0 0 0 3.0587 1.2621 0.0095 C 0 0 0 0 0 4.5739 1.2593-0.0546 C 0 0 0 0 0 5.1620 2.5469-0.0519 C 0 0 0 0 0 6.5437 2.7335-0.1360 C 0 0 0 0 0 7.3818 1.6324-0.2265 C 0 0 0 0 0 6.8310 0.3538-0.2371 C 0 0 0 0 0 5.4455 0.1688-0.1491 C 0 0 0 0 0 5.0613-1.1395-0.1761 O 0 0 0 0 0 0.1999-0.7042-0.0016 H 0 0 0 0 0 0.4658 0.8090-0.8853 H 0 0 0 0 0 0.4635 0.8040 0.8894 H 0 0 0 0 0 2.5075-0.6400-0.8767 H 0 0 0 0 0 2.4850-0.6276 0.9008 H 0 0 0 0 0 2.7794 1.8143 0.9179 H 0 0 0 0 0 2.7102 1.8629-0.8424 H 0 0 0 0 0 4.5272 3.4303 0.0063 H 0 0 0 0 0 6.9582 3.7383-0.1366 H 0 0 0 0 0 8.4580 1.7638-0.2925 H 0 0 0 0 0 7.4850-0.5117-0.3091 H 0 0 0 0 0 4.2484-1.2353 0.3347 H 0 0 0 0 0 1 2 1 0 0 0 1 11 1 0 0 0 1 12 1 0 0 0 1 13 1 0 0 0 2 3 1 0 0 0 2 14 1 0 0 0 2 15 1 0 0 0 3 4 1 0 0 0 3 16 1 0 0 0 3 17 1 0 0 0 4 5 2 0 0 0 4 9 1 0 0 0 5 6 1 0 0 0 5 18 1 0 0 0 6 7 2 0 0 0 6 19 1 0 0 0 7 8 1 0 0 0 7 20 1 0 0 0 8 9 2 0 0 0 8 21 1 0 0 0 9 10 1 0 0 0 10 22 1 0 0 0 M END $$$$
Zapisanie pliku w formacie 3D SDF w podanej lokalizacji. sdfilepath=data sdfname='%s.sdf' %cansmi print sdfname CCCc1ccccc1O.sdf OBmolfilestring2molfile(molfile=sdfilestring,molfilepath=sdfilepa th,molname=sdfname) Zapisano plik /home/sage/.sage/sage_notebook.sagenb/home/andrzej.bak/48/data/c CCc1ccccc1O.sdf
Wizualizacja przestrzennej struktury cząsteczki w progamie JMol. jmol_file(filename="cccc1ccccc1o.sdf",size=350)
Zapisanie pliku w formacie PDB w podanej lokalizacji pdbfilepath=data pdbfname='%s.pdb' %smiles print pdbfname CCCc1ccccc1O.pdb OBmolfilestring2molfile(molfile=sdfilestring,molfilepath=pdbfi lepath,molname=pdbfname,outformat='pdb') Zapisano plik /home/sage/.sage/sage_notebook.sagenb/home/andrzej.bak/48/data/ CCCc1ccccc1O.pdb
Import biblioteki subprocess import subprocess; from subprocess import call Ustawienie zmiennych ze ścieżkami dostępu do skryptu pythonsh oraz prepare_ligand4. pythonsh='/usr/local/bin/pythonsh' prepare_ligand4='/usr/local/mgltools_x86_64linux2_1.5.4/mglt oolspckgs/prepare_ligand4.py' Zdefiniowanie lokalizacji pliku z geometrią ligandu w formacie pdb. smiles='cccc1ccccc1o' pdbfname='%s.pdb' %smiles ligand_in=os.path.join(data,pdbfname)#polacze nie sciezki print ligand_in /home/sageserver/sage_notebook.sagenb/home/abak/49/data/cccc1ccc cc1o.pdb
Pliki PDBQT Zdefinowanie lokalizaci pliku z geometrią ligandu oraz ładunkami w formacie pdbqt. ligand_out='%s.pdbqt' %smiles ligand_out=os.path.join(data,lig and_out)#polaczenie sciezki print ligand_out /home/sageserver/sage_notebook.sagenb/home/abak/49/data/cccc1cccc c1o.pdbqt Ustawienie opcji dla programu prepare_ligand4.py options='-l %s -v -A hydrogens -U nphs_lps -o %s' %(ligand_in,ligand_out) print options -l /home/sageserver/sage_notebook.sagenb/home/abak/49/data/cccc1ccc cc1o.pdb -v -A hydrogens -U nphs_lps -o /home/sageserver/sage_notebook.sagenb/home/abak/49/data/cccc1ccc cc1o.pdb qt
Pliki PDBQT Wykonanie programu prepare_ligand4.py p=subprocess.popen([pythonsh,prepare_ligand4,options],stdout=su bprocess.pipe,stderr=subprocess.pipe); Analiza wyniku wykonania programu prepare_ligand4.py result,err=p.communicate();print result setting PYTHONHOME environment set verbose to True set repairs to hydrogens set cleanup to merge nphs_lps set outputfilename to /home/sageserver/sage_notebook.sagenb/home/abak/49/data/cccc1ccc cc1o.pdbqt read /home/sageserver/sage_notebook.sagenb/home/abak/49/data/cccc1ccc cc1o.pdb setting up LPO with mode= automatic and outputfilename= /home/sageserver/sage_notebook.sagenb/home/abak/49/data/cccc1ccc cc1o.pdbqt and check_for_fragments= False and bonds_to_inactivate= returning 0 No change in atomic coordinates
Pliki PDBQT Ustawienie zmiennych ze ścieżką dostępu do skryptu prepare_receptor4.py prepare_receptor4='/usr/local/mgltools_x86_64linux2_1.5.4/mgltoo lspckgs/prepare_receptor4.py' Zdefinowanie lokalizaci pliku z geometrią receptora w formacie pdb. UWAGA: Plik musi zostać pobrany z repozytorium PDB oraz odpowiednio przygotowany np. 3htb_apo.pdb, który dostępny jest w skrypcie. receptor_in='3htb_apo.pdb' receptor_in=os.path.join(data,receptor_in)#polaczenie sciezki print receptor_in /home/sageserver/sage_notebook.sagenb/home/abak/49/data/3htb_apo. pdb Zdefinowanie lokalizacji pliku z geometrią receptora oraz ładunkami w formacie pdbqt. receptor_out='3htb_apo.pdbqt' receptor_out=os.path.join(data,receptor_out)#polaczenie sciezki print receptor_out /home/sageserver/sage_notebook.sagenb/home/abak/49/data/3htb_apo.pdbqt
Pliki PDBQT Ustawienie opcji dla programu repair_receptor4.py options='-r %s -v -A bonds_hydrogens -U nphs_lps -o %s' %(receptor_in,receptor_out) print options -r /home/sageserver/sage_notebook.sagenb/home/abak/49/data/3htb_apo.pdb -v -A bonds_hydrogens -U nphs_lps -o /home/sageserver/sage_notebook.sagenb/home/abak/49/data/3htb_apo.pdbqt Wykonanie programu prepare_receptor4.py p=subprocess.popen([pythonsh,prepare_receptor4,options],stdout=s ubprocess.pipe,stderr=subprocess.pipe);
Pliki PDBQT Analiza wyniku wykonania programu prepare_receptor4.py result,err=p.communicate();print result setting PYTHONHOME environment set verbose to True set repairs to bonds_hydrogens set cleanup to nphs_lps set outputfilename to /home/sageserver/sage_notebook.sagenb/home/abak/49/data/3htb_apo. pdbqt read /home/sageserver/sage_notebook.sagenb/home/abak/49/data/3htb_apo. pdb setting up RPO with mode= automatic and outputfilename= /home/sageserver/sage_notebook.sagenb/home/abak/49/data/3htb_apo. pdbqt charges_to_add= gasteiger delete_single_nonstd_residues= None adding gasteiger charges to peptide
Dokowanie molekularne W celu wykonania poprawnej procedury dokowania molekularnego należy zdefiniować parametry dokowania dla programu Autdock Vina. Parametry dokowania można przechowywać w pliku config.txt, który został przygotowany w celu wykonania ćwiczeń skryptu. Ustawienie zmiennej ze ścieżką dostepu do programu Autodock Vina. vina='/usr/local/bin/vina' Ustawienie opcji dla programu Autodock Vina. config='config.txt' config=os.path.join(data,config)#polaczenie sciezki print config dock_out_vina='dock_out_vina.pdbqt' dock_out_vina=os.path.join(data,dock_out_vina)#polacze nie sciezki print dock_out_vina /home/sageserver/sage_notebook.sagenb/home/abak/49/data/ config.txt /home/sageserver/sage_notebook.sagenb/home/abak/49/data/dock_out _vina.pdbqt
Dokowanie molekularne Wykonanie dokowania molekularnego przy pomocy programu Autodock Vina. p=subprocess.popen([vina,'--ligand',ligand_out,'-- receptor',receptor_out,'--config',config,'-- out',dock_out_vina],stdout=subprocess.pipe,stderr=subprocess.pi PE) result,err=p.communicate();print result
Dokowanie molekularne ################################################################# #If you used AutoDock Vina in your work, please cite: # # O. Trott, A. J. Olson, # # AutoDock Vina: improving the speed and accuracy of docking # # with a new scoring function, efficient optimization and # # multithreading, Journal of Computational Chemistry 31 (2010) # # 455-461 # # # # DOI 10.1002/jcc.21334 # # Please see http://vina.scripps.edu for more information. # ################################################################# Detected 4 CPUs Reading input... done. Setting up the scoring function... done. Analyzing the binding site... done. Using random seed: -241626148 Performing search... 0% 10 20 30 40 50 60 70 80 90 100% ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- *************************************************** done. Refining results... done. mode affinity dist from best mode (kcal/mol) rmsd l.b. rmsd u.b. -----+------------+----------+---------- 1-7.0 0.000 0.000 2-6.6 1.594 2.176 3-5.8 1.295 1.766 4-5.6 1.388 4.065 5-5.2 1.471 3.769 6-5.1 1.471 4.226 7-4.5 1.055 1.735 8-4.3 2.158 4.153 9-4.1 2.175 3.146 Writing output... done.
Dokowanie molekularne