def test_ComplexRandomizer(self): """Dock.ComplexRandomizer test""" from Biskit import Trajectory if self.local: print "\nLoading Rec and Lig files ...", rec_pdb = t.testRoot() + '/rec/1A2P.pdb' lig_pdb = t.testRoot() + '/lig/1A19.pdb' rec_psf = t.testRoot() + '/rec/1A2P.psf' lig_psf = t.testRoot() + '/lig/1A19.psf' rec = PCRModel(rec_psf, rec_pdb) lig = PCRModel(lig_psf, lig_pdb) if self.local: print "Initializing Randomizer..." self.cr = ComplexRandomizer(rec, lig, debug=self.DEBUG) if self.local: print "Creating 3 random complexes..." cs = [self.cr.random_complex() for i in range(3)] self.traj = Trajectory([c.model() for c in cs]) if self.local: self.display(self.traj) globals().update(locals()) self.assertEqual(len(self.traj), 3)
def loadModels( psfName, pdbNames ): """ psfName - str, psf file name, same for all pdbs filenames - [ str, str, ..], set of pdb filenames filenames with ~, ~user, ../ are expanded to absolute names -> {1:PCRModel, 2:PCRModel, 3:..}, model dictionary """ modelDic = {} ## if only one pdb file, instead of list if type(pdbNames) is StringType: pdbNames = [pdbNames] counter = 0 for f in pdbNames: counter += 1 model = PCRModel( absfile(psfName), absfile(f) ) # chain id removed by xplor, must be identical to ref complex model.addChainFromSegid() model.removeRes( 'TIP3' ) modelDic[ counter ] = model return modelDic
def go( fin, fout, fpsf=None, skipRes=None, amber=0, pdb=None ): if fpsf: m = PCRModel( absfile(fpsf), absfile(fin), skipRes=skipRes ) else: m = PDBModel( absfile(fin), skipRes=skipRes ) if amber: renameAmberRes( m ) m.pdbCode = pdb or m.pdbCode m.saveAs( absfile(fout) )
def dumpModel( m, options, fout ): if options.has_key('psf'): m = PCRModel( options['psf'], m ) m.addChainFromSegid( verbose=0 ) # chain id removed by xplor m.removeRes( 'TIP3' ) m.saveAs( fout ) return m
def loadModels(psfName, pdbNames): """ psfName - str, psf file name, same for all pdbs filenames - [ str, str, ..], set of pdb filenames filenames with ~, ~user, ../ are expanded to absolute names -> {1:PCRModel, 2:PCRModel, 3:..}, model dictionary """ modelDic = {} ## if only one pdb file, instead of list if type(pdbNames) is StringType: pdbNames = [pdbNames] counter = 0 for f in pdbNames: counter += 1 model = PCRModel(absfile(psfName), absfile(f)) # chain id removed by xplor, must be identical to ref complex model.addChainFromSegid() model.removeRes('TIP3') modelDic[counter] = model return modelDic
def go(fin, fout, fpsf=None, skipRes=None, amber=0, pdb=None): if fpsf: m = PCRModel(absfile(fpsf), absfile(fin), skipRes=skipRes) else: m = PDBModel(absfile(fin), skipRes=skipRes) if amber: renameAmberRes(m) m.pdbCode = pdb or m.pdbCode m.saveAs(absfile(fout))
def finish(self): """ When done, write result to disc. """ self.rec = PCRModel(self.com.rec_model.getPsfFile(), self.rec_out) self.lig = PCRModel(self.com.lig_model.getPsfFile(), self.lig_out)
def test_Complex(self): """Dock.Complex test""" lig = PCRModel( t.testRoot() + "/com/1BGS.psf", t.testRoot() + "/com/lig.model") rec = PCRModel( t.testRoot() + "/com/1BGS.psf", t.testRoot() + "/com/rec.model") rec = rec.compress( rec.maskHeavy() ) lig = lig.compress( lig.maskHeavy() ) c = Complex(rec, lig) c.info['soln'] = 1 cont = c.atomContacts( 6.0 ) contProfile_lig = N.sum( cont ) contProfile_rec = N.sum( cont, 1 ) try: dope = PDBDope( c.rec_model ) dope.addSurfaceRacer( probe=1.4 ) rec_surf = c.rec_model.profile2mask( 'MS', 0.0000001, 1000 ) dope = PDBDope( c.lig_model ) dope.addSurfaceRacer( probe=1.4 ) lig_surf = c.lig_model.profile2mask( 'MS', 0.0000001, 1000 ) except: pass if self.local: from Biskit import Pymoler self.pm = Pymoler() self.pm.addPdb( c.rec(), 'rec' ) self.pm.addPdb( c.lig(), 'lig' ) self.pm.colorAtoms( 'rec', contProfile_rec ) self.pm.colorAtoms( 'lig', contProfile_lig ) rec_sphere = c.rec().clone() rec_sphere.xyz = mathUtils.projectOnSphere( rec_sphere.xyz ) lig_sphere = c.lig().clone() lig_sphere.xyz = mathUtils.projectOnSphere( lig_sphere.xyz ) self.pm.addPdb( rec_sphere, 'rec_sphere' ) self.pm.addPdb( lig_sphere, 'lig_sphere' ) self.pm.colorAtoms( 'rec_sphere', contProfile_rec ) self.pm.colorAtoms( 'lig_sphere', contProfile_lig ) self.pm.add( 'hide all') self.pm.add( 'color grey, (b=0)' ) self.pm.add( 'show stick, (rec or lig)' ) self.pm.add( 'show surf, rec_sphere') self.pm.add( 'zoom all' ) self.pm.show() globals().update( locals() ) self.assertEqual( N.sum(contProfile_lig) + N.sum(contProfile_rec), 2462 )