コード例 #1
0
ファイル: test_openmm_runner.py プロジェクト: he-leon/meld
    def test_pressure_coupling_should_add_barostat(self):
        PRESS = 2.0 * atmosphere
        STEPS = 50
        pcouple_params = PressureCouplingParams(
            enable=True,
            temperature=self.TEMP,
            pressure=PRESS,
            steps=STEPS)
        pme_params = PMEParams(
            enable=True,
            tolerance=0.0005)

        with mock.patch('meld.system.openmm_runner.runner.MonteCarloBarostat',
                        spec=MonteCarloBarostat) as mock_baro:
            mock_baro.return_value = mock.sentinel.baro_force

            _create_openmm_system(
                self.mock_parm,
                solvation_type='explicit',
                cutoff=1.0,
                use_big_timestep=False, use_bigger_timestep=False,
                implicit_solvent='vacuum',
                pme_params=pme_params,
                pcouple_params=pcouple_params,
                remove_com=True,
                temperature=self.TEMP)

            mock_baro.assert_called_with(PRESS, self.TEMP, STEPS)
            mock_sys = self.mock_parm.createSystem.return_value
            mock_sys.addForce.assert_called_with(mock.sentinel.baro_force)
コード例 #2
0
    def test_no_pme_uses_cutoffs(self):
        pme_params = PMEParams(enable=False, tolerance=0.0001)

        _create_openmm_system(
            self.mock_parm,
            solvation_type="explicit",
            cutoff=1.0,
            use_big_timestep=False,
            use_bigger_timestep=False,
            implicit_solvent="vacuum",
            pme_params=pme_params,
            pcouple_params=self.pcouple_params,
            remove_com=True,
            temperature=self.TEMP,
            extra_bonds=[],
            extra_restricted_angles=[],
            extra_torsions=[],
            implicitSolventSaltConc=None,
            soluteDielectric=None,
            solventDielectric=None,
        )
        self.mock_parm.createSystem.assert_called_with(
            removeCMMotion=True,
            nonbondedMethod=ff.CutoffPeriodic,
            nonbondedCutoff=1.0,
            constraints=ff.HBonds,
            implicitSolvent=None,
            rigidWater=True,
            hydrogenMass=None,
            ewaldErrorTolerance=pme_params.tolerance,
        )
コード例 #3
0
 def setUp(self):
     self.mock_parm = mock.Mock(spec=AmberPrmtopFile)
     self.TEMP = 300 * kelvin
     self.pcouple_params = PressureCouplingParams(temperature=300 * kelvin,
                                                  pressure=1.0 * atmosphere,
                                                  steps=25,
                                                  enable=False)
     self.pme_params = PMEParams(enable=False, tolerance=0.005)
コード例 #4
0
    def test_pressure_coupling_should_add_barostat(self):
        PRESS = 2.0 * atmosphere
        STEPS = 50
        pcouple_params = PressureCouplingParams(enable=True,
                                                temperature=self.TEMP,
                                                pressure=PRESS,
                                                steps=STEPS)
        pme_params = PMEParams(enable=True, tolerance=0.0005)

        with mock.patch(
                "meld.system.openmm_runner.runner.MonteCarloBarostat",
                spec=MonteCarloBarostat,
        ) as mock_baro:
            mock_baro.return_value = mock.sentinel.baro_force

            _create_openmm_system(
                self.mock_parm,
                solvation_type="explicit",
                cutoff=1.0,
                use_big_timestep=False,
                use_bigger_timestep=False,
                implicit_solvent="vacuum",
                pme_params=pme_params,
                pcouple_params=pcouple_params,
                remove_com=True,
                temperature=self.TEMP,
                extra_bonds=[],
                extra_restricted_angles=[],
                extra_torsions=[],
                implicitSolventSaltConc=None,
                soluteDielectric=None,
                solventDielectric=None,
            )

            mock_baro.assert_called_with(PRESS, self.TEMP, STEPS)
            mock_sys = self.mock_parm.createSystem.return_value
            mock_sys.addForce.assert_called_with(mock.sentinel.baro_force)
コード例 #5
0
ファイル: test_openmm_runner.py プロジェクト: he-leon/meld
    def test_no_pme_uses_cutoffs(self):
        pme_params = PMEParams(
            enable=False,
            tolerance=0.0001)

        _create_openmm_system(
            self.mock_parm,
            solvation_type='explicit',
            cutoff=1.0,
            use_big_timestep=False, use_bigger_timestep=False,
            implicit_solvent='vacuum',
            pme_params=pme_params,
            pcouple_params=self.pcouple_params,
            remove_com=True,
            temperature=self.TEMP)
        self.mock_parm.createSystem.assert_called_with(
            removeCMMotion=True,
            nonbondedMethod=ff.CutoffPeriodic,
            nonbondedCutoff=1.0,
            constraints=ff.HBonds,
            implicitSolvent=None,
            rigidWater=True,
            hydrogenMass=None,
            ewaldErrorTolerance=pme_params.tolerance)