Exemple #1
0
    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())
Exemple #2
0
    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() )
Exemple #3
0
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 )
Exemple #4
0
    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
Exemple #5
0
    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