def prepare(self): """ Overrides Executor method. """ Executor.prepare(self) ## if setGrid hasn't been called yet, create automatic grid if not self.gsize: self.setGrid() if self.protonate: reducer = Reduce(self.model, verbose=self.verbose, autocap=self.autocap, tempdir=self.tempdir, cwd=self.cwd, log=self.log, debug=self.debug) if self.verbose: self.log.add('adding hydrogen atoms to input structure\n') self.delphimodel = reducer.run() else: self.delphimodel = self.model.clone() self.delphimodel.xplor2amber() if not os.path.exists(self.f_radii): self.__prepareRadii() if not os.path.exists(self.f_charges): self.__prepareCharges(self.f_charges) self.delphimodel.writePdb(self.f_pdb)
def prepare( self ): """ Overrides Executor method. """ Executor.prepare( self ) ## self.__prepareFolder() ## if setGrid hasn't been called yet, create automatic grid if not self.gsize: self.setGrid() if self.protonate: reducer = Reduce( self.model, verbose=self.verbose, autocap=self.autocap, tempdir=self.tempdir, cwd=self.cwd, log=self.log, debug=self.debug ) if self.verbose: self.log.add('adding hydrogen atoms to input structure\n') self.delphimodel = reducer.run() else: self.delphimodel = self.model.clone() self.delphimodel.xplor2amber() if not os.path.exists( self.f_charges ): self.__prepareCharges( self.f_charges ) self.delphimodel.writePdb( self.f_pdb )
def cleanup(self): """ Tidy up the mess you created. """ if not self.debug: T.tryRemove(self.f_pdb) if not self.keep_map: T.tryRemove(self.f_map) Executor.cleanup(self)
def cleanup( self ): """ Tidy up the mess you created. """ if not self.debug: T.tryRemove( self.f_pdb ) if not self.keep_map: T.tryRemove( self.f_map ) Executor.cleanup( self )
def finish(self): """ Overrides Executor method """ Executor.finish(self) self.result = self.parseOutput()
def __init__(self, model, template=None, topologies=None, f_charges=None, f_radii=None, f_map=None, addcharge=True, protonate=True, autocap=False, indi=4.0, exdi=80.0, salt=0.15, ionrad=2, prbrad=1.4, bndcon=4, scale=2.3, perfil=60, **kw): """ @param model: structure for which potential should be calculated @type model: PDBModel @param template: delphi command file template [None=use default] @type template: str @param f_radii: alternative delphi atom radii file [None=use default] @type f_radii: str @param topologies: alternative list of residue charge/topology files [default: amber/residues/all*] @type topologies: [ str ] @param f_charges: alternative delphi charge file [default: create custom] @type f_charges: str @param f_map : output file name for potential map [None= discard] @type f_map : str @param addcharge: build atomic partial charges with AtomCharger [default: True] @type addcharge: bool @param protonate: (re-)build hydrogen atoms with reduce program (True) see L{Biskit.Reduce} @type protonate: bool @param autocap: add capping NME and ACE residues to any (auto-detected) false N- or C-terminal and chain breaks (default: False) see L{Biskit.Reduce} and L{Biskit.PDBCleaner} @type autocap: bool @param indi: interior dilectric (4.0) @param exdi: exterior dielectric (80.0) @param salt: salt conc. in M (0.15) @param ionrad: ion radius (2) @param prbrad: probe radius (1.4) @param bndcon: boundary condition (4, delphi default is 2) @param scale: grid spacing (2.3) @param perfil: grid fill factor in % (for automatic grid, 60) @param kw: additional key=value parameters for Executor: @type kw: key=value pairs :: debug - 0|1, keep all temporary files (default: 0) verbose - 0|1, print progress messages to log (log != STDOUT) node - str, host for calculation (None->local) NOT TESTED (default: None) nice - int, nice level (default: 0) log - Biskit.LogFile, program log (None->STOUT) (default: None) """ template = template or os.path.join(T.dataRoot(), 'delphi', self.F_PARAMS) tempdir = self.newtempfolder(tempdir=True) ## create new temp folder f_in = tempfile.mktemp('.inp', 'delphi_', dir=tempdir) self.f_pdb = tempfile.mktemp('.pdb', 'delphi_', dir=tempdir) self.keep_map = f_map is not None self.f_map = f_map or \ tempfile.mktemp( '_mapout.phi', 'delphi_', dir=tempdir ) ## self.f_map = None self.f_radiisrc = os.path.join(T.dataRoot(), 'delphi', self.F_RADII) self.f_radii = f_radii or os.path.join(tempdir, 'radii.siz') self.topologies = topologies or self.F_RESTYPES self.f_charges = f_charges or tempfile.mktemp( '.crg', 'delphi_', dir=tempdir) self.protonate = protonate self.autocap = autocap self.addcharge = addcharge ## DELPHI run parameters self.indi = indi # interior dilectric(4.0) self.exdi = exdi # exterior dielectric(80.0) self.salt = salt # salt conc. in M (0.15) self.ionrad = ionrad # ion radius (2) self.prbrad = prbrad # probe radius (1.4) self.bndcon = bndcon # boundary condition (4, delphi default is 2) ## DELPHI parameters for custom grid self.scale = scale # grid spacing (2.3) self.perfil = perfil # grid fill factor in % (for automatic grid, 60) self.gsize = None self.acenter = None self.strcenter = '(0.0,0.0,0.0)' kw['tempdir'] = tempdir kw['cwd'] = tempdir Executor.__init__(self, 'delphi', template=template, f_in=f_in, args=f_in, catch_err=True, **kw) self.model = model self.delphimodel = None
def finish( self ): """ Overrides Executor method """ Executor.finish( self ) self.result = self.parseOutput()
def __init__( self, model, template=None, topologies=None, f_charges=None, f_radii=None, f_map=None, addcharge=True, protonate=True, autocap=False, indi=4.0, exdi=80.0, salt=0.15, ionrad=2, prbrad=1.4, bndcon=4, scale=2.3, perfil=60, **kw ): """ @param model: structure for which potential should be calculated @type model: PDBModel @param template: delphi command file template [None=use default] @type template: str @param f_radii: alternative delphi atom radii file [None=use default] @type f_radii: str @param topologies: alternative list of residue charge/topology files [default: amber/residues/all*] @type topologies: [ str ] @param f_charges: alternative delphi charge file [default: create custom] @type f_charges: str @param f_map : output file name for potential map [None= discard] @type f_map : str @param addcharge: build atomic partial charges with AtomCharger [default: True] @type addcharge: bool @param protonate: (re-)build hydrogen atoms with reduce program (True) see L{Biskit.Reduce} @type protonate: bool @param autocap: add capping NME and ACE residues to any (auto-detected) false N- or C-terminal and chain breaks (default: False) see L{Biskit.Reduce} and L{Biskit.PDBCleaner} @type autocap: bool @param indi: interior dilectric (4.0) @param exdi: exterior dielectric (80.0) @param salt: salt conc. in M (0.15) @param ionrad: ion radius (2) @param prbrad: probe radius (1.4) @param bndcon: boundary condition (4, delphi default is 2) @param scale: grid spacing (2.3) @param perfil: grid fill factor in % (for automatic grid, 60) @param kw: additional key=value parameters for Executor: @type kw: key=value pairs :: debug - 0|1, keep all temporary files (default: 0) verbose - 0|1, print progress messages to log (log != STDOUT) node - str, host for calculation (None->local) NOT TESTED (default: None) nice - int, nice level (default: 0) log - Biskit.LogFile, program log (None->STOUT) (default: None) """ template = template or os.path.join(T.dataRoot(),'delphi',self.F_PARAMS) tempdir = self.newtempfolder( tempdir=True ) ## create new temp folder f_in = tempfile.mktemp( '.inp', 'delphi_', dir=tempdir ) self.f_pdb = tempfile.mktemp( '.pdb', 'delphi_', dir=tempdir) self.keep_map = f_map is not None self.f_map = f_map or \ tempfile.mktemp( '_mapout.phi', 'delphi_', dir=tempdir ) ## self.f_map = None self.f_radii = f_radii or os.path.join( T.dataRoot(),'delphi',self.F_RADII) self.topologies = topologies or self.F_RESTYPES self.f_charges = f_charges or tempfile.mktemp( '.crg', 'delphi_', dir=tempdir ) self.protonate = protonate self.autocap = autocap self.addcharge = addcharge ## DELPHI run parameters self.indi=indi # interior dilectric(4.0) self.exdi=exdi # exterior dielectric(80.0) self.salt=salt # salt conc. in M (0.15) self.ionrad=ionrad # ion radius (2) self.prbrad=prbrad # probe radius (1.4) self.bndcon=bndcon # boundary condition (4, delphi default is 2) ## DELPHI parameters for custom grid self.scale=scale # grid spacing (2.3) self.perfil=perfil # grid fill factor in % (for automatic grid, 60) self.gsize = None self.acenter = None self.strcenter = '(0.0,0.0,0.0)' kw['tempdir'] = tempdir kw['cwd'] = tempdir Executor.__init__( self, 'delphi', template=template, f_in=f_in, args=f_in, catch_err=True, **kw ) self.model = model self.delphimodel = None