Ejemplo n.º 1
0
 def test_SystemPDB(self):
     pdb = T.testRoot('pep','pep.pdb')
     self.f_out =  T.tempDir()+os.sep+'SystemPDB'
     if not os.path.exists(self.f_out): os.mkdir(self.f_out)
     T.BROWSER.chdir(self.f_out)
     self.r1 = System(amberPDB=pdb)
     solvatedsys = self.r1.solvate('WAT', tmp=self.f_out)
Ejemplo n.º 2
0
    def test_TrajCluster(self):
        """TrajCluster test"""
        from Biskit.EnsembleTraj import traj2ensemble

        traj = T.load( T.testRoot()+'/lig_pcr_00/traj.dat')

        traj = traj2ensemble( traj )

        aMask = traj.ref.mask( lambda a: a['name'] in ['CA','CB','CG'] )

        traj = traj.thin( 1 )

        traj.fit( aMask, verbose=self.local )
        self.tc = TrajCluster( traj, verbose=self.local )

        ## check how many clusters that are needed with the given criteria
        n_clusters = self.tc.calcClusterNumber( min_clst=3, max_clst=15,
                                                rmsLimit=0.7, aMask=aMask )

        ## cluster
        self.tc.cluster( n_clusters, aMask=aMask )

        if self.local:
            member_frames = self.tc.memberFrames()

            print 'There are %i clusters where the members are:'%n_clusters
            for i in range(n_clusters):
                print 'Cluster %i (%i members): %s'%( i+1,
                                                      len(member_frames[i]),
                                                      member_frames[i] )
Ejemplo n.º 3
0
    def test_autoprepare_2(self):
        """Test main AutoPrepare class. Prepare PDBID 1a0o chains A, B == [0,1]"""
        f_check = T.testRoot('autoprepare', '1yer_h.pdb')
        self.prepare = AutoPrepare(pdbid='1yer', chains=[0,1])
        self.checkpdb = bi.PDBModel(f_check)
#        self.savePdb(osp.join(T.testRoot(),'1a0o_prepared.pdb'))
        self.comparePDB(self.prepare.getPdb(), self.checkpdb)
Ejemplo n.º 4
0
    def test_molUtils( self ):
        """molUtils test"""
        from Biskit import PDBModel

        S = self
        
        ## load a structure
        S.m = PDBModel( t.testRoot()+'/lig/1A19.pdb' )
        S.model_1 = S.m.compress( S.m.maskProtein() )

        ## now sort in standard order
        S.model_2 = sortAtomsOfModel( S.model_1)

        ## compare the atom order
        cmp = []
        for a in S.model_1.atomRange():
            cmp += [ cmpAtoms( S.model_1.atoms[a], S.model_2.atoms[a] )]

        self.assertEqual( N.sum(cmp), 159 )

        ## get the primaty sequence as a string
        S.seq = S.model_1.sequence()

        ## convert it to a list of three letter code
        S.seq=single2longAA(S.seq)

        ## convert it to a list in one letter code
        S.seq=singleAA(S.seq)

        self.assertEqual( ''.join(S.seq), S.model_1.sequence() )
Ejemplo n.º 5
0
    def test_TrajCluster(self):
        """TrajCluster test"""
        from Biskit.EnsembleTraj import traj2ensemble

        traj = T.load(T.testRoot() + '/lig_pcr_00/traj.dat')

        traj = traj2ensemble(traj)

        aMask = traj.ref.mask(lambda a: a['name'] in ['CA', 'CB', 'CG'])

        traj = traj.thin(1)

        traj.fit(aMask, verbose=self.local)
        self.tc = TrajCluster(traj, verbose=self.local)

        ## check how many clusters that are needed with the given criteria
        n_clusters = self.tc.calcClusterNumber(min_clst=3,
                                               max_clst=15,
                                               rmsLimit=0.7,
                                               aMask=aMask)

        ## cluster
        self.tc.cluster(n_clusters, aMask=aMask)

        if self.local:
            member_frames = self.tc.memberFrames()

            print 'There are %i clusters where the members are:' % n_clusters
            for i in range(n_clusters):
                print 'Cluster %i (%i members): %s' % (
                    i + 1, len(member_frames[i]), member_frames[i])
Ejemplo n.º 6
0
    def test_molUtils(self):
        """molUtils test"""
        from Biskit import PDBModel

        S = self

        ## load a structure
        S.m = PDBModel(t.testRoot() + '/lig/1A19.pdb')
        S.model_1 = S.m.compress(S.m.maskProtein())

        ## now sort in standard order
        S.model_2 = sortAtomsOfModel(S.model_1)

        ## compare the atom order
        cmp = []
        for a in S.model_1.atomRange():
            cmp += [cmpAtoms(S.model_1.atoms[a], S.model_2.atoms[a])]

        self.assertEqual(N0.sum(cmp), 159)

        ## get the primaty sequence as a string
        S.seq = S.model_1.sequence()

        ## convert it to a list of three letter code
        S.seq = single2longAA(S.seq)

        ## convert it to a list in one letter code
        S.seq = singleAA(S.seq)

        self.assertEqual(''.join(S.seq), S.model_1.sequence())
Ejemplo n.º 7
0
 def test_SystemOFF(self):
     """Create System from OFF"""
     off = T.testRoot('pep', 'pep.off')
     self.f_out = T.tempDir() + os.sep + 'SystemOFF'
     if not os.path.exists(self.f_out): os.mkdir(self.f_out)
     T.BROWSER.chdir(self.f_out)
     self.r1 = System(amberOFF=off)
     solvatedsys = self.r1.solvate('WAT', tmp=self.f_out)
Ejemplo n.º 8
0
    def test_SolventCreation(self):
        """SolventManager Solvent creation test"""

        f_in = osp.join(T.testRoot(), 'solvents', 'solvent_template.cfg')
        self.f_out = osp.join(T.tempDir(), 'solvent.db')

        self.m = SolventManager()
        solv = self.m.createSolvent(f_in)
        #        print solv.getProbeByName('CT').mask

        self.m.saveSolvent(solv, db=self.f_out)

        self.assertEqual(str(solv), str(self.m.getSolvent('ETA', self.f_out)))
Ejemplo n.º 9
0
    def test_PCRModel(self):
        """PCRModel test"""
        ## Loading PDB...
        self.m_com = PCRModel(t.testRoot() + "/com/1BGS.psf",
                              t.testRoot() + "/com/1BGS.pdb")

        self.m_rec = PCRModel(t.testRoot() + "/rec/1A2P.psf",
                              t.testRoot() + "/rec/1A2P.pdb")

        ## remove waters
        self.m_com = self.m_com.compress(self.m_com.maskProtein())
        self.m_rec = self.m_rec.compress(self.m_rec.maskProtein())

        ## fit the complex structure to the free receptor
        m_com_fit = self.m_com.magicFit(self.m_rec)

        ## calculate the rmsd between the original complex and the
        ## one fitted to the free receptor
        rms = m_com_fit.rms(self.m_com, fit=0)

        if self.local:
            print 'Rmsd between the two complex structures: %.2f Angstrom' % rms

        self.assertAlmostEqual(rms, 58.7844130314, 4)
Ejemplo n.º 10
0
    def test_PCRModel( self ):
        """PCRModel test"""
        ## Loading PDB...
        self.m_com = PCRModel( t.testRoot() + "/com/1BGS.psf",
                          t.testRoot() + "/com/1BGS.pdb" )

        self.m_rec = PCRModel( t.testRoot() + "/rec/1A2P.psf",
                          t.testRoot() + "/rec/1A2P.pdb" )

        ## remove waters
        self.m_com = self.m_com.compress( self.m_com.maskProtein() )
        self.m_rec = self.m_rec.compress( self.m_rec.maskProtein() )

        ## fit the complex structure to the free receptor
        m_com_fit = self.m_com.magicFit( self.m_rec )

        ## calculate the rmsd between the original complex and the
        ## one fitted to the free receptor
        rms = m_com_fit.rms(self.m_com, fit=0)
        
        if self.local:
            print 'Rmsd between the two complex structures: %.2f Angstrom'%rms

        self.assertAlmostEqual(rms, 58.7844130314, 4)
Ejemplo n.º 11
0
    def test_OFFManager(self):
        """OFFManager test"""

        f_in = T.testRoot('solvents','ETAWAT20.off')
        
        self.m = OFFManager(offFile=f_in)
        self.assertEqual(self.m.getUnits(), ['ETA','ETAWAT20','WAT'])
        self.assertEqual(self.m.getResidueList('ETAWAT20',unique=True), ['WAT','ETA'])
        self.assertAlmostEqual(self.m.getVolume('ETAWAT20'), 7988.43038, 4)
        self.assertFalse(self.m.getVolume('ETA'))
        self.assertFalse(self.m.isParameter('ETA'))

        res = self.m.getResidue('ETA')
        self.assertEqual(res.charge, 0)
        self.assertEqual(res.connectivity[0], (1,2))
Ejemplo n.º 12
0
    def test_QualSlave(self):
        """QualSlave test"""
        import os

        jobs = {0: T.testRoot() + '/lig_pcr_00/traj.dat'}

        self.feps = '%s/rms_traj.eps' % os.path.dirname(jobs[0])

        slave = QualSlave()
        slave.initialize({'verbose': 0})
        r = slave.go(jobs)

        if self.VERBOSITY > 2:
            self.log.write('eps written to ' + self.feps)

        self.assert_(os.path.exists(self.feps))
Ejemplo n.º 13
0
    def test_QualSlave(self):
        """QualSlave test"""
        import os

        jobs = {0: T.testRoot() + '/lig_pcr_00/traj.dat'}

        self.feps = '%s/rms_traj.eps' % os.path.dirname( jobs[0] )

        slave = QualSlave()
        slave.initialize( {'verbose':0} )
        r = slave.go( jobs )

        if self.VERBOSITY > 2:
            self.log.write('eps written to ' + self.feps )

        self.assert_( os.path.exists( self.feps ) )
Ejemplo n.º 14
0
    def test_ReduceCoordinates(self):
        """ReduceCoordinates test"""

        self.m = PDBModel(T.testRoot() + '/com/1BGS.pdb')
        self.m = self.m.compress(N.logical_not(self.m.maskH2O()))

        self.m.atoms.set('test', range(len(self.m)))

        self.red = ReduceCoordinates(self.m, 4)

        self.mred = self.red.reduceToModel()

        if self.local:
            print '\nAtoms before reduction %i' % self.m.lenAtoms()
            print 'Atoms After reduction %i' % self.mred.lenAtoms()

        self.assertEqual(self.mred.lenAtoms(), 445)
Ejemplo n.º 15
0
    def test_ReduceCoordinates(self):
        """ReduceCoordinates test"""

        self.m = PDBModel( T.testRoot()+'/com/1BGS.pdb' )
        self.m = self.m.compress( N.logical_not( self.m.maskH2O() ) )

        self.m.atoms.set('test', range(len(self.m)))

        self.red = ReduceCoordinates( self.m, 4 )

        self.mred = self.red.reduceToModel()
        
        if self.local:
            print '\nAtoms before reduction %i'% self.m.lenAtoms()
            print 'Atoms After reduction %i'% self.mred.lenAtoms()

        self.assertEqual( self.mred.lenAtoms(), 445 )
Ejemplo n.º 16
0
    def test_Pymoler(self):
        """Pymoler test"""
        self.traj = T.load( T.testRoot() + '/lig_pcr_00/traj.dat' )

        self.pm = Pymoler( full=0, verbose=self.local )
        
        mname = self.pm.addMovie( [ self.traj[i] for i in range(0,100,20) ] )

        sel = self.pm.makeSel({'residue':29})
##         self.pm.add('show stick, %s' % sel)
        self.pm.add('show surface, %s' % sel)

        self.pm.add('mplay')
        
        if not self.local:
            self.pm.add('quit')
            
        self.pm.run() ## old style call "pm.show()" also works
    
        self.assert_( self.pm.pid is not None )
Ejemplo n.º 17
0
    def test_Pymoler(self):
        """Pymoler test"""
        self.traj = T.load(T.testRoot() + '/lig_pcr_00/traj.dat')

        self.pm = Pymoler(full=0, verbose=self.local)

        mname = self.pm.addMovie([self.traj[i] for i in range(0, 100, 20)])

        sel = self.pm.makeSel({'residue': 29})
        ##         self.pm.add('show stick, %s' % sel)
        self.pm.add('show surface, %s' % sel)

        self.pm.add('mplay')

        if not self.local:
            self.pm.add('quit')

        self.pm.run()  ## old style call "pm.show()" also works

        self.assert_(self.pm.pid is not None)
Ejemplo n.º 18
0
 def checkSite(self):
     "Control wether the site has changed the form. If so, exit as everything will fail."
     # Check that html website is similar to the content when this module was written
     import difflib
     checkhtml = open(T.testRoot('pdb2pqr_html.txt'),'r').read()
     webhtml = self._html.read()
     ratio = difflib.SequenceMatcher(lambda x: x == " ", checkhtml, webhtml).ratio()        
     if ratio < 0.9:
         self.log.warn('Website seems different since this module was coded. Similarity: %3f'%ratio)
     
     # Check form has mandatory controls
     controls = set([c.name for c in self.br.form.controls])
     if controls != PDB2PQRInterface.KNOWNCONTROLS:
         # Something has changed!
         # First check if all mandatory controls are there
         self.log.warning("Changes in webserver form.")
         if PDB2PQRInterface.MANDATORYCONTROLS < controls: return True
         else:
             raise FormChange, "Missing controls in form: ", PDB2PQRInterface.MANDATORYCONTROLS - controls            
     else:
         return True
Ejemplo n.º 19
0
    def test_Trajectory(self):
        """Trajectory test"""
        ##         f = T.testRoot() + '/lig_pc2_00/pdb/'
        ##         allfiles = os.listdir( f )
        ##         pdbs = []
        ##         for fn in allfiles:
        ##             try:
        ##                 if (fn[-7:].upper() == '.PDB.GZ'):
        ##                     pdbs += [f + fn]
        ##             except:
        ##                 pass

        ##         ref = pdbs[0]
        ##         traj = Trajectory( pdbs[:3], ref, rmwat=0 )

        ## Loading
        self.traj = T.load(T.testRoot() + '/lig_pcr_00/traj.dat')

        ## sort frames after frameNames
        self.traj.sortFrames()

        ## sort atoms
        self.traj.sortAtoms()

        ## remove waters
        self.traj = self.traj.compressAtoms(
            N.logical_not(self.traj.ref.maskH2O()))

        ## get fluctuation on a residue level
        r1 = self.traj.getFluct_local(verbose=self.local)

        ## fit backbone of frames to reference structure
        self.traj.fit(ref=self.traj.ref,
                      mask=self.traj.ref.maskBB(),
                      verbose=self.local)

        self.assertAlmostEqual(N.sum(self.traj.profile('rms')),
                               58.101235746353879, 2)
Ejemplo n.º 20
0
    def setOFF(self, amberOFF, unitname=None):
        """
        Save Amber Object file as :class:`OFFManager.OFFManager` object in :attr:`amberOFF`. :attr:`unitName` will be set.
        
        :arg str amberOFF: Path to amber object file.
        :arg str unitname: Name of the unit we should use in the future. If not given, automatically take the first unit found in the file.
        """
        from OFFManager import OFFManager

        # Special case: test
        # Grab off from testing directory
        if amberOFF.lower() == 'test':
            print "WORKING WITH A TEST SYSTEM!"
            amberOFF = T.testRoot('pep', 'pep.off')
            self.name = 'testsystem'
            self.sysFilePath = self.name + '.msys'

        self.amberOFF = OFFManager(amberOFF)
        if not unitname:
            units = self.amberOFF.getUnits()
            unitname = units[0]
        self.unitName = unitname
        self.__createRef()
Ejemplo n.º 21
0
    def test_Trajectory(self):
        """Trajectory test"""
##         f = T.testRoot() + '/lig_pc2_00/pdb/'
##         allfiles = os.listdir( f )
##         pdbs = []
##         for fn in allfiles:
##             try:
##                 if (fn[-7:].upper() == '.PDB.GZ'):
##                     pdbs += [f + fn]
##             except:
##                 pass

##         ref = pdbs[0]
##         traj = Trajectory( pdbs[:3], ref, rmwat=0 )

        ## Loading
        self.traj = T.load(T.testRoot() + '/lig_pcr_00/traj.dat')

        ## sort frames after frameNames
        self.traj.sortFrames()

        ## sort atoms 
        self.traj.sortAtoms()

        ## remove waters
        self.traj = self.traj.compressAtoms(
            N.logical_not( self.traj.ref.maskH2O()) )

        ## get fluctuation on a residue level
        r1 = self.traj.getFluct_local( verbose=self.local )

        ## fit backbone of frames to reference structure
        self.traj.fit( ref=self.traj.ref,
                       mask=self.traj.ref.maskBB(), verbose=self.local )

        self.assertAlmostEqual( N.sum( self.traj.profile('rms') ),
                                58.101235746353879, 2 )
Ejemplo n.º 22
0
 def prepare(self):
     self.f = os.path.join(tools.testRoot(), 'eedensity/3tgi.ezd.gz')
     self.p = None
Ejemplo n.º 23
0
 def test_PDB2PQR_byID(self):
     """Test PDB2PQR interface. Protonate PDB selected by ID. """
     pqr_check = PQRParseFile(T.testRoot('autoprepare', '1yer.pqr')).getModel()
     self.b = PDB2PQRInterface()
     pqr_out = self.b.protonatePDB(pdbid='1yer',twait=2)
     self.comparePDB(pqr_out, pqr_check)
Ejemplo n.º 24
0
 def prepare(self):
     self.fname =   T.testRoot() + '/rec/1A2P_rec_original.pdb'
     self.outPath = T.tempDir()
Ejemplo n.º 25
0
 def test_PepSettingsParser(self):
     """Parse settings config file"""
     cfg = T.testRoot('pep', 'pep_amber_mdmix.cfg')
     settings = MDSettingsConfigFileParser().parse(cfg)
     assert len(settings) == 2
     assert settings[0].trajfrequency == 2000
Ejemplo n.º 26
0
 def test_PepSystemParser(self):
     """Parse system config file"""
     cfg = T.testRoot('pep', 'pep_amber_mdmix.cfg')
     system = SystemConfigFileParser().parse(cfg)
Ejemplo n.º 27
0
 def test_PepReplica(self):
     rfile = T.testRoot('pep', 'pep_mdmix', 'MD', '')
Ejemplo n.º 28
0
 def prepare(self):
     self.fname = T.testRoot() + '/rec/1A2P_rec_original.pdb'
     self.outPath = T.tempDir()
Ejemplo n.º 29
0
    def prepare(self):
        self.f = T.testRoot() + '/amber/sim.rst'
        self.fref = T.testRoot() + '/amber/1HPT_0.pdb'

        self.p = AmberRstParser(self.f)
Ejemplo n.º 30
0
 def prepare( self ):
     self.f = os.path.join( tools.testRoot(), 'eedensity/3tgi.ezd.gz' )
     self.p = None
Ejemplo n.º 31
0
 def test_PepSettingsParserMulti(self):
     """Parse settings config file with multiple MDSETTINGS entries"""
     cfg = T.testRoot('pep', 'multisettings.cfg')
     settings = MDSettingsConfigFileParser().parse(cfg)
     assert len(settings) == 5
     assert settings[-1].trajfrequency == 500
Ejemplo n.º 32
0
 def prepare(self):
     root = T.testRoot() + '/amber/'
     self.finp = root + 'sim.crd.gz'
     self.fref = root + '1HPT_0.pdb'
     self.fout = tempfile.mktemp('.dat', 'traj_')
Ejemplo n.º 33
0
    def prepare(self):
        self.f    = T.testRoot()+'/amber/sim.rst'
        self.fref = T.testRoot()+'/amber/1HPT_0.pdb'

        self.p = AmberRstParser( self.f )