コード例 #1
0
ファイル: Systems.py プロジェクト: shuchingou/pyMDmix
 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)
コード例 #2
0
    def test_OpenMMWriter(self):
        """Create new replica and write MDinput"""
        from MDSettings import MDSettings
        from Systems import SolvatedSystem

        top = osp.join(T.testRoot('pep', 'pep.prmtop'))
        crd = osp.join(T.testRoot('pep', 'pep.prmcrd'))
        sys = SolvatedSystem(name='pep', top=top, crd=crd)
        settings = MDSettings(solvent='WAT',
                              mdProgram='OpenMM',
                              restrMode='HA',
                              restrForce=0.1)

        self.testdir = T.tempDir()
        self.r1 = sys + settings
        self.r1.setName('testOpenMM')

        T.BROWSER.chdir(self.testdir)

        # write replica folder and check methods of OpenMMWriter
        self.r1.createFolder()
        self.r1.createMDInput()
        writer = OpenMMWriter(self.r1)

        self.testdir += os.sep + 'testOpenMM'
コード例 #3
0
ファイル: NAMD.py プロジェクト: xxffliu/pyMDmix
    def test_NAMDWriter(self):
        """Create new replica and write MDinput"""
        from MDSettings import MDSettings
        from Systems import SolvatedSystem

        top = osp.join(T.testRoot('pep', 'pep.prmtop'))
        crd = osp.join(T.testRoot('pep', 'pep.prmcrd'))
        sys = SolvatedSystem(name='pep', top=top, crd=crd)
        settings = MDSettings(solvent='WAT',
                              mdProgram='NAMD',
                              restrMode='HA',
                              restrForce=0.1)

        self.testdir = T.tempDir()
        self.r1 = sys + settings
        self.r1.setName('testNAMD')

        T.BROWSER.chdir(self.testdir)

        # write replica folder and check methods of AmberWriter
        self.r1.createFolder()
        self.r1.createMDInput()
        writer = NAMDWriter(self.r1)

        #        self.assertEqual(writer.getAmberRestrMask(), ':1-8 & !@H=')
        #        self.assertTrue(writer.writeCommands())
        #        self.assertTrue(writer.writeReplicaInput())
        #        self.assertEqual(writer.getReplicaCommands(), checkCommands)

        self.testdir += os.sep + 'testNAMD'
コード例 #4
0
ファイル: Systems.py プロジェクト: shuchingou/pyMDmix
 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)
コード例 #5
0
ファイル: Systems.py プロジェクト: shuchingou/pyMDmix
 def test_SolvatedSystem(self):
     top = T.testRoot('pep', 'pep.prmtop')
     crd = T.testRoot('pep', 'pep.prmcrd')
     self.f_out = T.tempDir() + os.sep + 'SolvatedSystem'
     if not os.path.exists(self.f_out): os.mkdir(self.f_out)
     T.BROWSER.chdir(self.f_out)
     solvatedsys = SolvatedSystem(name='pep', top=top, crd=crd)
     solvatedsys.setPDBfromTOPCRD()
     pdb = solvatedsys.getSolvatedPDB()
コード例 #6
0
 def test_CREATEpepProject(self):
     """Create complete test project"""
     import shutil
     print T.testRoot()
     cfg = T.testRoot('pep', 'pep_amber_mdmix.cfg')
     off = T.testRoot('pep', 'pep.off')
     self.f_out = T.tempDir()
     T.BROWSER.chdir(self.f_out)
     shutil.copy(cfg, 'pep_amber_mdmix.cfg')
     shutil.copy(off, 'pep.off')
     proj = createProject('pep_amber_mdmix.cfg', 'pep_test_project')
     self.f_out += 'pep_test_project'
コード例 #7
0
ファイル: Solvents.py プロジェクト: xxffliu/pyMDmix
    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)))
コード例 #8
0
    def solvate(self, solvent, suffix=None, tmp=True):
        """
        Solvate system in OFF using solvent *solvent*. A PRMTOP and PRMCRD files will be saved and paths stored to :attr:`top` and :attr:`crd`.

        :arg solvent: Solvent Instance or Name to fetch the Solvent Instance in the database.
        :type: str or :class:`~Solvents.Solvent`
        :arg str suffix: Suffix for output files. Prefix will be the system name. E.g.: ``systemname_suffix.prmtop`` and ``systemname_suffix.prmcrd``.
        :arg bool tmp: Work in temporary folder.
        """
        if not self.amberOFF:
            raise SystemError, "Can not solvate if no Amber Object File is assigned."
        
        if isinstance(solvent, str): solvent = Solvents.getSolvent(solvent)
        if not solvent:
            raise SystemError, 'Invalid solvent instance or name.'

        # Build a loger just for this method
        log = logging.getLogger("SystemLogger")
        log.info("Solvating %s with solvent mixture %s"%(self.name, solvent.name))

        suffix = suffix or solvent.name
        name = '{0}_{1}'.format(self.name, suffix)
        prmtop = name+'.prmtop'
        prmcrd = name+'.prmcrd'

        if tmp:
            if isinstance(tmp, str): path = tmp
            else: path = T.tempDir()
            prmtop = osp.join(path, prmtop)
            prmcrd = osp.join(path, prmcrd)

        # Initiate AmberCreateSystem with loaded AmberOFF
        # Solvate, neutralize
        self.__initCreate()
        self.create.solvateOrganic(self.unitName, solvent=solvent)  # It will work even if its water
        self.create.saveAmberParm(self.unitName, prmtop, prmcrd)
        # Added by Xiaofeng 01/12/2016
        parm = AmberParm(prmtop)
        action = HMassRepartition(parm)
        action.execute()
        log.info(str(action))
        parm.write_parm(prmtop)
        #
        self.__cleanCreate()

        s = SolvatedSystem(name, prmtop, prmcrd, solvent=solvent.name, ref=self.ref)
        return s
コード例 #9
0
ファイル: SettingsParser.py プロジェクト: xxffliu/pyMDmix
    def test_SettingsManager(self):
        """SettingsManager test"""

        f_in = osp.join(T.dataRoot(), 'defaults', 'settings.cfg')
        self.f_out = osp.join(T.tempDir(), 'settings.cfg')

        self.m = SettingsManager(f_in,
                                 self.f_out,
                                 createmissing=True,
                                 verbose=self.local)

        ns = locals()  ## fetch local namespace

        self.m.updateNamespace(ns)  ## parse and insert options into namespace

        if self.local:
            globals().update(locals())  ## publish namespace for debugging

        r = self.m.settings2dict()['testparam']

        self.assertEqual(r, 42)  ## from 'int-testparam = 42' in settings.cfg
コード例 #10
0
ファイル: ChainWriter.py プロジェクト: ostrokach/biskit
 def prepare(self):
     self.fname = T.testRoot() + '/rec/1A2P_rec_original.pdb'
     self.outPath = T.tempDir()
コード例 #11
0
ファイル: ChainWriter.py プロジェクト: graik/biskit
 def prepare(self):
     self.fname =   T.testRoot() + '/rec/1A2P_rec_original.pdb'
     self.outPath = T.tempDir()