VMD-L Mailing List
From: Josh Vermaas (joshua.vermaas_at_gmail.com)
Date: Thu Nov 05 2020 - 14:24:19 CST
- Next message: Mariano Spivak: "Re: Potential bugs in ffTK dihedral optimization"
- Previous message: John Stone: "Re: Analysis of DLG filles"
- In reply to: John Stone: "Re: Analysis of DLG filles"
- Next in thread: Jeff Saxon: "Re: Analysis of DLG filles"
- Reply: Jeff Saxon: "Re: Analysis of DLG filles"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Hi Jeff,
While there isn't a plugin, it is pretty straightforward to convert a DLG
file to a multiframe pdb file. This is a script I put together to do some
analysis, and is written in python to interpret AutoDock-GPU outputs (which
match AutoDock's as far as I can tell). The key function for you in this
case would be dlg_to_multiframepdb.
-Josh
import glob
import os
import subprocess
import numpy as np
import vmdnumpy as vnp
from Molecule import *
from atomsel import *
def dlg_to_multiframepdb(fname):
inputstrings = subprocess.check_output("grep \"DOCKED:\" %s" %
fname, shell=True).split("\n")
output = ""
for s in inputstrings:
if s[8:12] == "ATOM" or s[8:12] == "HETA":
output += s[8:] + "\n"
elif s[8:14] == "ENDMDL":
output += "ENDMDL\n"
return output
def dlg_to_energy(fname):
inputstrings = subprocess.check_output("grep \"Estimated\" %s | sed
's/=//g' | awk '{print $8}'" % fname, shell=True).split("\n")[:-1]
energies = np.array(inputstrings).astype(np.float)
return energies
def pdbqt_to_pdb(fname):
inputstrings = subprocess.check_output("cat %s" % fname,
shell=True).split("\n")
output = ""
for s in inputstrings:
if s[:4] == "ATOM" or s[:4] == "HETA":
output += s + "\n"
elif s[:6] == "ENDMDL":
output += "ENDMDL\n"
return output
os.chdir("data")
dirlist = glob.glob("*/")
print dirlist
results = np.empty((len(dirlist), 4, 3), dtype=np.float)
for i, d in enumerate(dirlist):
fout = open(d+"xray.pdb", "w")
fout.write(pdbqt_to_pdb(d+"flex-xray.pdbqt"))
fout.close()
ref = Molecule()
ref.load(d+"xray.pdb")
refsel = atomsel("all")
for j, dlgtype in enumerate(['CUDAout', 'CUDAout10', 'OpenCLout',
'OpenCLout10']):
for k in range(3):
dlgfile = d + dlgtype + "-%d.dlg" % k
energies = dlg_to_energy(dlgfile)
fout = open(d+dlgtype+"-%d.pdb" % k, "w")
fout.write(dlg_to_multiframepdb(dlgfile))
fout.close()
mol = Molecule()
mol.load(d+dlgtype+"-%d.pdb" % k)
sel = atomsel("all", frame=np.argmin(energies))
print d, sel.rmsd(refsel)
results[i][j][k] = sel.rmsd(refsel)
print results
np.savez("../dockedrmsds.npz", cuda10=results[:,1,:].flatten(),
cuda100=results[:,0,:].flatten(), opencl10=results[:,3,:].flatten(),
opencl100=results[:,2,:].flatten())
exit()
On Thu, Nov 5, 2020 at 10:14 AM John Stone <johns_at_ks.uiuc.edu> wrote:
> Hi,
> There isn't an existing DLG plugin for VMD, but this seems like
> it would be a great thing for someone to write. The AutoDock
> pages suggest using "ADT" (autodock tools) to work with these files.
> That being said, if you are willing to share complete example file
> sets for one of your autodock runs, I would love to collect those
> with the hope that we would be able to find someone to look into
> developing such a plugin down the road.
>
> Best regards,
> John Stone
> vmd_at_ks.uiuc.edu
>
> On Thu, Nov 05, 2020 at 05:45:19PM +0100, Jeff Saxon wrote:
> > Dear VMD users!
> > Could you tell me whether there is some vmd's plugin that allows me to
> > read directly DLG filles (produced by autodock) and make some basic
> > operations on the conformational ensembles of the ligand?
> > I've tried to load directly DLG files from terminal command line
> > vmd *.dlg
> > but it recognized it as an attempt to load PDB files and eventually did
> nothing.
> >
> > Thank you for your help
> > J.
>
> --
> NIH Center for Macromolecular Modeling and Bioinformatics
> Beckman Institute for Advanced Science and Technology
> University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
> http://www.ks.uiuc.edu/Research/vmd/
>
>
- Next message: Mariano Spivak: "Re: Potential bugs in ffTK dihedral optimization"
- Previous message: John Stone: "Re: Analysis of DLG filles"
- In reply to: John Stone: "Re: Analysis of DLG filles"
- Next in thread: Jeff Saxon: "Re: Analysis of DLG filles"
- Reply: Jeff Saxon: "Re: Analysis of DLG filles"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]