def test_Benchmark(self): """Mod.Benchmark test""" from Biskit import Pymoler self.b = Benchmark(self.outfolder) self.b.go() pdb = T.load(self.outfolder + "/modeller/PDBModels.list")[0] reference = PDBModel(self.outfolder + "/reference.pdb") tmp_model = pdb.clone() reference = reference.compress(reference.maskCA()) pdb = pdb.compress(pdb.maskCA()) tmp_model = tmp_model.compress(tmp_model.maskCA()) tm = tmp_model.transformation(reference, n_it=0, profname="rms_outliers") pdb = pdb.transform(tm) if self.local: pm = Pymoler() pm.addPdb(pdb, "m") pm.addPdb(reference, "r") pm.colorAtoms("m", tmp_model.profile("rms_outliers")) pm.add('set ribbon_trace,1') pm.add('show ribbon') pm.show() if self.DEBUG: self.log.add( 'The result from the benchmarking is in %s/benchmark'%\ self.outfolder) globals().update(locals())
def test_Benchmark(self): """Mod.Benchmark test""" from Biskit import Pymoler self.b = Benchmark( self.outfolder ) self.b.go() pdb = T.load( self.outfolder + "/modeller/PDBModels.list" )[0] reference = PDBModel(self.outfolder + "/reference.pdb" ) tmp_model = pdb.clone() reference = reference.compress( reference.maskCA() ) pdb = pdb.compress( pdb.maskCA() ) tmp_model = tmp_model.compress(tmp_model.maskCA()) tm = tmp_model.transformation( reference, n_it=0, profname="rms_outliers") pdb = pdb.transform( tm ) if self.local: pm = Pymoler() pm.addPdb( pdb, "m" ) pm.addPdb( reference, "r" ) pm.colorAtoms( "m", tmp_model.profile("rms_outliers") ) pm.add('set ribbon_trace,1') pm.add('show ribbon') pm.show() if self.DEBUG: self.log.add( 'The result from the benchmarking is in %s/benchmark'%\ self.outfolder) globals().update( locals() )
class Test(BT.BiskitTest): """Test case""" 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 )
def visualize(self, profile='so_min', wat=None, xwat=None): """ Create a receptor / ligand / water view with a profile color-coded on it. @param profile: name of the profile to color-project ['so_min'] @type profile: str @param wat: chain ids of water molecules (default: None) These will end up as spheres in group 'water' @type wat: [ int ] @param xwat: chain ids of crystal water molecules (default: None) These will end up as spheres in group 'xwater' @type xwat: [ int ] @return: Pymoler instance with receptor and ligand colored by shelling order (use pm.run() to make it show up) @rtype: Pymoler """ import Biskit.Pymoler as Pymoler model = self.model.clone() ## replace all 0 values by -1 to distinguish them better by color model[profile] += (model[profile] == 0) * -1 rec = model.takeChains(self.chains_rec, breaks=self.breaks) lig = model.takeChains(self.chains_lig, breaks=self.breaks) water = xwater = None if wat: water = model.takeChains(wat, breaks=self.breaks) water = water.compress(N.greater(water['n_facets'], 0)) if xwat: xwater = model.takeChains( xwat, breaks=self.breaks) ## X-ray determined water ## kick out waters that do not belong to the interface xwater = xwater.compress(N.greater(xwater['n_facets'], 0)) pm = Pymoler() pm.addPdb(model, 'com') pm.addPdb(rec, 'rec') pm.addPdb(lig, 'lig') pm.colorAtoms('rec', rec[profile]) pm.colorAtoms('lig', lig[profile]) if xwater: pm.addPdb(xwater, 'x-water') pm.colorAtoms('x-water', xwater[profile]) if water: pm.addPdb(water, 'water') pm.colorAtoms('water', water[profile]) pm.add('hide') pm.add('show surface, rec') pm.add('show mesh, lig') pm.add('show spheres, x-water') pm.add('show spheres, water') pm.add('zoom') return pm
def visualize( self, profile='so_min', wat=None, xwat=None ): """ Create a receptor / ligand / water view with a profile color-coded on it. @param profile: name of the profile to color-project ['so_min'] @type profile: str @param wat: chain ids of water molecules (default: None) These will end up as spheres in group 'water' @type wat: [ int ] @param xwat: chain ids of crystal water molecules (default: None) These will end up as spheres in group 'xwater' @type xwat: [ int ] @return: Pymoler instance with receptor and ligand colored by shelling order (use pm.run() to make it show up) @rtype: Pymoler """ import Biskit.Pymoler as Pymoler model = self.model.clone() ## replace all 0 values by -1 to distinguish them better by color model[profile] += (model[profile] == 0) * -1 rec = model.takeChains( self.chains_rec, breaks=self.breaks ) lig = model.takeChains( self.chains_lig, breaks=self.breaks ) water = xwater = None if wat: water = model.takeChains(wat, breaks=self.breaks) water = water.compress( N.greater( water['n_facets'], 0) ) if xwat: xwater = model.takeChains( xwat, breaks=self.breaks ) ## X-ray determined water ## kick out waters that do not belong to the interface xwater = xwater.compress( N.greater( xwater['n_facets'], 0) ) pm = Pymoler() pm.addPdb( model, 'com' ) pm.addPdb( rec, 'rec' ) pm.addPdb( lig, 'lig' ) pm.colorAtoms( 'rec', rec[profile]) pm.colorAtoms( 'lig', lig[profile]) if xwater: pm.addPdb( xwater, 'x-water' ) pm.colorAtoms( 'x-water', xwater[profile] ) if water: pm.addPdb( water, 'water' ) pm.colorAtoms( 'water', water[profile] ) pm.add( 'hide' ) pm.add( 'show surface, rec' ) pm.add( 'show mesh, lig' ) pm.add( 'show spheres, x-water' ) pm.add( 'show spheres, water' ) pm.add( 'zoom' ) return pm