leeping / forcebalance

Systematic force field optimization.
Other
146 stars 75 forks source link

OpenFF Toolkit v0.11.0+ compatibility #259

Closed mattwthompson closed 1 year ago

mattwthompson commented 2 years ago

Closes #266, #264, #261, #260

j-wags commented 2 years ago

I ran the tests locally - Looks like there are three test failures in test_system when run locally with OFFTK 0.11 + Evaluator 4 + OpenEye + PyMBAR 4. Full output collapsed below:

Full output ``` (forcebalance-dev) jw@mba$ pytest -k test_system -vvv ============================================================================================= test session starts ============================================================================================= platform darwin -- Python 3.9.13, pytest-7.2.0, pluggy-1.0.0 -- /Users/jeffreywagner/conda/envs/forcebalance-dev/bin/python cachedir: .pytest_cache rootdir: /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt, configfile: setup.cfg plugins: cov-4.0.0, anyio-3.6.2 collected 77 items / 68 deselected / 9 selected src/tests/test_system.py::TestWaterTutorial::test_water_tutorial PASSED [ 11%] src/tests/test_system.py::TestVoelzStudy::test_voelz_study PASSED [ 22%] src/tests/test_system.py::TestBromineStudy::test_bromine_study PASSED [ 33%] src/tests/test_system.py::TestThermoBromineStudy::test_thermo_bromine_study PASSED [ 44%] src/tests/test_system.py::TestEvaluatorBromineStudy::test_bromine_study FAILED [ 55%] src/tests/test_system.py::TestEvaluatorBromineStudy::test_bromine_study ERROR [ 55%] src/tests/test_system.py::TestLipidStudy::test_lipid_study PASSED [ 66%] src/tests/test_system.py::TestImplicitSolventHFEStudy::test_implicit_solvent_hfe_study PASSED [ 77%] src/tests/test_system.py::TestOpenFFTorsionProfileStudy::test_openff_torsionprofile_study FAILED [ 88%] src/tests/test_system.py::TestRechargeMethaneStudy::test_study SKIPPED (could not import 'openff.recharge': No module named 'openff.recharge') [100%] =================================================================================================== ERRORS ==================================================================================================== ______________________________________________________________________ ERROR at teardown of TestEvaluatorBromineStudy.test_bromine_study ______________________________________________________________________ self = def teardown_method(self): self.estimator_process.terminate() > shutil.rmtree("working_directory") /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/tests/test_system.py:204: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/shutil.py:724: in rmtree onerror(os.lstat, path, sys.exc_info()) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ path = 'working_directory', ignore_errors = False, onerror = .onerror at 0x1bcbb4ee0> def rmtree(path, ignore_errors=False, onerror=None): """Recursively delete a directory tree. If ignore_errors is set, errors are ignored; otherwise, if onerror is set, it is called to handle the error with arguments (func, path, exc_info) where func is platform and implementation dependent; path is the argument to that function that caused it to fail; and exc_info is a tuple returned by sys.exc_info(). If ignore_errors is false and onerror is None, an exception is raised. """ sys.audit("shutil.rmtree", path) if ignore_errors: def onerror(*args): pass elif onerror is None: def onerror(*args): raise if _use_fd_functions: # While the unsafe rmtree works fine on bytes, the fd based does not. if isinstance(path, bytes): path = os.fsdecode(path) # Note: To guard against symlink races, we use the standard # lstat()/open()/fstat() trick. try: > orig_st = os.lstat(path) E FileNotFoundError: [Errno 2] No such file or directory: 'working_directory' /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/shutil.py:722: FileNotFoundError -------------------------------------------------------------------------------------------- Captured stdout call --------------------------------------------------------------------------------------------- Reading options from file: gradient.in #========================================================# #| Options at their default values are not printed |# #| Use 'verbose_options True' to Enable |# #========================================================# Reading force field from file: bromine.offxml #=========================================================# #| Starting parameter indices, physical values and IDs |# #=========================================================# 0 [ 3.6700e-01 ] : vdW/Atom/sigma/[#35:1] 1 [ 2.4665e+00 ] : vdW/Atom/epsilon/[#35:1] ----------------------------------------------------------- #=========================================================# #| Rescaling Factors by Type (Lower Takes Precedence): |# #=========================================================# vdW/Atom/epsilon : 2.47894e+00 vdW/Atom/sigma : 5.29177e-02 ----------------------------------------------------------- #========================================================# #| Rescaling Types / Factors by Parameter Number: |# #========================================================# 0 [ vdW/Atom/sigma : 5.29177e-02 ] : vdW/Atom/sigma/[#35:1] 1 [ vdW/Atom/epsilon : 2.47894e+00 ] : vdW/Atom/epsilon/[#35:1] ---------------------------------------------------------- #========================================================# #| Setup for force field |# #========================================================# fnms ['bromine.offxml'] priors OrderedDict([('vdW/Atom/epsilon', 2.47894), ('vdW/Atom/sigma', 0.0529177)]) ---------------------------------------------------------- targets/LiquidBromine/options.json #========================================================# #| Loaded experimental data. |# #========================================================# #========================================================# #| Reference BrBr{solv}{x=1.000000} data |# #========================================================# Density 298.15 kelvin-1 standard_atmosphere 3102.8 kilogram / meter ** 3+/-0.1 kilogram / meter ** 3 EnthalpyOfVaporization 298.15 kelvin-1 standard_atmosphere 29.96 kilojoule / mole+/-0.01 kilojoule / mole ---------------------------------------------------------- #========================================================# #| Setup for target LiquidBromine : |# #========================================================# name LiquidBromine type EVALUATOR_SMIRNOFF backup False tgtdir targets/LiquidBromine evaluator_input options.json ---------------------------------------------------------- #========================================================# #| SMIRNOFF Parameter Coverage Analysis |# #========================================================# Force field assignment data written to /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/studies/003d_evaluator_liquid_bromine/smirnoff_parameter_assignments.json idx Parameter Count ---------------------------------------------------------------------------------------------------------------------- 0 vdW/Atom/sigma/[#35:1] : 0 1 vdW/Atom/epsilon/[#35:1] : 0 SNIRNOFF Parameter Coverage Analysis result: 0/2 parameters are covered. ---------------------------------------------------------------------------------------------------------------------- Using parabolic regularization (Gaussian prior) with strength 1.0e+00 (+), 0.0e+00 (x) #========================================================# #| Setup for objective function : |# #========================================================# penalty_additive 1.0 normalize_weights False ---------------------------------------------------------- ================================================================================================== FAILURES =================================================================================================== ________________________________________________________________________________ TestEvaluatorBromineStudy.test_bromine_study _________________________________________________________________________________ self = def test_bromine_study(self): """Check bromine study produces objective function and gradient in expected range """ objective = self.get_objective() > data = objective.Full(np.zeros(objective.FF.np),1,verbose=True) /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/tests/test_system.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/objective.py:314: in Full Objective = self.Target_Terms(vals, Order, verbose, customdir) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/objective.py:217: in Target_Terms Tgt.stage(mvals, AGrad = Order >= 1, AHess = Order >= 2, customdir=customdir) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/target.py:637: in stage self.submit_jobs(mvals, AGrad, AHess) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/evaluator_io.py:510: in submit_jobs self._pending_estimate_request, _ = self._client.request_estimate( /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/openff/evaluator/client/client.py:711: in request_estimate request_id, error = self._send_calculations_to_server(submission) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , submission = def _send_calculations_to_server(self, submission): """Attempts to connect to the calculation server, and submit the requested calculations. Parameters ---------- submission: _Submission The jobs to submit. Returns ------- str, optional: The id which the server has assigned the submitted calculations. This can be used to query the server for when the calculation has completed. Returns None if the calculation could not be submitted. EvaluatorException, optional Any exceptions raised while attempting the submit the request. """ # Attempt to establish a connection to the server. connection_settings = ( self._connection_options.server_address, self._connection_options.server_port, ) connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > connection.connect(connection_settings) E ConnectionRefusedError: [Errno 61] Connection refused /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/openff/evaluator/client/client.py:806: ConnectionRefusedError -------------------------------------------------------------------------------------------- Captured stdout call --------------------------------------------------------------------------------------------- Reading options from file: gradient.in #========================================================# #| Options at their default values are not printed |# #| Use 'verbose_options True' to Enable |# #========================================================# Reading force field from file: bromine.offxml #=========================================================# #| Starting parameter indices, physical values and IDs |# #=========================================================# 0 [ 3.6700e-01 ] : vdW/Atom/sigma/[#35:1] 1 [ 2.4665e+00 ] : vdW/Atom/epsilon/[#35:1] ----------------------------------------------------------- #=========================================================# #| Rescaling Factors by Type (Lower Takes Precedence): |# #=========================================================# vdW/Atom/epsilon : 2.47894e+00 vdW/Atom/sigma : 5.29177e-02 ----------------------------------------------------------- #========================================================# #| Rescaling Types / Factors by Parameter Number: |# #========================================================# 0 [ vdW/Atom/sigma : 5.29177e-02 ] : vdW/Atom/sigma/[#35:1] 1 [ vdW/Atom/epsilon : 2.47894e+00 ] : vdW/Atom/epsilon/[#35:1] ---------------------------------------------------------- #========================================================# #| Setup for force field |# #========================================================# fnms ['bromine.offxml'] priors OrderedDict([('vdW/Atom/epsilon', 2.47894), ('vdW/Atom/sigma', 0.0529177)]) ---------------------------------------------------------- targets/LiquidBromine/options.json #========================================================# #| Loaded experimental data. |# #========================================================# #========================================================# #| Reference BrBr{solv}{x=1.000000} data |# #========================================================# Density 298.15 kelvin-1 standard_atmosphere 3102.8 kilogram / meter ** 3+/-0.1 kilogram / meter ** 3 EnthalpyOfVaporization 298.15 kelvin-1 standard_atmosphere 29.96 kilojoule / mole+/-0.01 kilojoule / mole ---------------------------------------------------------- #========================================================# #| Setup for target LiquidBromine : |# #========================================================# name LiquidBromine type EVALUATOR_SMIRNOFF backup False tgtdir targets/LiquidBromine evaluator_input options.json ---------------------------------------------------------- #========================================================# #| SMIRNOFF Parameter Coverage Analysis |# #========================================================# Force field assignment data written to /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/studies/003d_evaluator_liquid_bromine/smirnoff_parameter_assignments.json idx Parameter Count ---------------------------------------------------------------------------------------------------------------------- 0 vdW/Atom/sigma/[#35:1] : 0 1 vdW/Atom/epsilon/[#35:1] : 0 SNIRNOFF Parameter Coverage Analysis result: 0/2 parameters are covered. ---------------------------------------------------------------------------------------------------------------------- Using parabolic regularization (Gaussian prior) with strength 1.0e+00 (+), 0.0e+00 (x) #========================================================# #| Setup for objective function : |# #========================================================# penalty_additive 1.0 normalize_weights False ---------------------------------------------------------- _______________________________________________________________________ TestOpenFFTorsionProfileStudy.test_openff_torsionprofile_study ________________________________________________________________________ self = def test_openff_torsionprofile_study(self): """Check OpenFF torsion profile optimization converges to expected results""" > self.run_optimizer(check_iter=False) /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/tests/test_system.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/tests/test_system.py:101: in run_optimizer optimizer = self.get_optimizer() /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/tests/test_system.py:91: in get_optimizer objective = Objective(options, tgt_opts, forcefield) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/objective.py:182: in __init__ else: Tgt = Implemented_Targets[opts['type']](options,opts,forcefield) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/smirnoffio.py:781: in __init__ super(TorsionProfileTarget_SMIRNOFF,self).__init__(options,tgt_opts,forcefield) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/torsion_profile.py:58: in __init__ self.engine = self.engine_(target=self, mol=self.mol, **engine_args) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/smirnoffio.py:263: in __init__ super(SMIRNOFF,self).__init__(name=name, **kwargs) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/openmmio.py:626: in __init__ super(OpenMM,self).__init__(name=name, **kwargs) /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/engine.py:80: in __init__ self.prepare(**kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , pbc = False, mmopts = {} kwargs = {'coords': 'scan.xyz', 'freeze_atoms': [0, 2, 4, 5], 'mol': , 'mol2': ['input.mol2'], ...} openff_mols = [Molecule with name '' and SMILES '[H]C([H])([H])OC([H])(O[H])OC([H])([H])[H]'], fnm = 'input.mol2', mol = Molecule with name '' and SMILES '[H]C([H])([H])OC([H])(O[H])OC([H])([H])[H]' fftmp = True, _ = > def prepare(self, pbc=False, mmopts={}, **kwargs): """ Prepare the calculation. Note that we don't create the Simulation object yet, because that may depend on MD integrator parameters, thermostat, barostat etc. This is mostly copied and modified from openmmio.py's OpenMM.prepare(), but we are calling ForceField() from the OpenFF toolkit and ignoring AMOEBA stuff. """ if hasattr(self, 'abspdb'): self.pdb = PDBFile(self.abspdb) else: pdb1 = "%s-1.pdb" % os.path.splitext(os.path.basename(self.mol.fnm))[0] self.mol[0].write(pdb1) self.pdb = PDBFile(pdb1) os.unlink(pdb1) # Create the OpenFF ForceField object. if hasattr(self, 'FF'): self.offxml = [self.FF.offxml] self.forcefield = self.FF.openff_forcefield else: self.offxml = listfiles(kwargs.get('offxml'), 'offxml', err=True) self.forcefield = OpenFF_ForceField(*self.offxml, load_plugins=True) ## Load mol2 files for smirnoff topology openff_mols = [] for fnm in self.mol2: try: mol = OffMolecule.from_file(fnm) except Exception as e: logger.error("Error when loading %s" % fnm) raise e openff_mols.append(mol) self.off_topology = OffTopology.from_openmm(self.pdb.topology, unique_molecules=openff_mols) ## OpenMM options for setting up the System. self.mmopts = dict(mmopts) ## Specify frozen atoms and restraint force constant if 'restrain_k' in kwargs: self.restrain_k = kwargs['restrain_k'] if 'freeze_atoms' in kwargs: self.freeze_atoms = kwargs['freeze_atoms'][:] ## Set system options from ForceBalance force field options. fftmp = False if hasattr(self,'FF'): self.mmopts['rigidWater'] = self.FF.rigid_water if not all([os.path.exists(f) for f in self.FF.fnms]): # If the parameter files don't already exist, create them for the purpose of # preparing the engine, but then delete them afterward. fftmp = True self.FF.make(np.zeros(self.FF.np)) ## Set system options from periodic boundary conditions. self.pbc = pbc ## print warning for 'nonbonded_cutoff' keywords if 'nonbonded_cutoff' in kwargs: logger.warning("nonbonded_cutoff keyword ignored because it's set in the offxml file\n") # Apply the FF parameters to the system. Currently this is the only way to # determine if the FF will apply virtual sites to the system. _, openff_topology = self.forcefield.create_openmm_system( self.off_topology, return_topology=True ) ## Generate OpenMM-compatible positions self.xyz_omms = [] for I in range(len(self.mol)): xyz = self.mol.xyzs[I] xyz_omm = ( [Vec3(i[0],i[1],i[2]) for i in xyz] # Add placeholder positions for an v-sites. > + [Vec3(0.0, 0.0, 0.0)] * openff_topology.n_topology_virtual_sites ) * angstrom E AttributeError: 'Topology' object has no attribute 'n_topology_virtual_sites' /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/smirnoffio.py:435: AttributeError -------------------------------------------------------------------------------------------- Captured stdout call --------------------------------------------------------------------------------------------- Reading options from file: optimize_minimal.in #========================================================# #| Options at their default values are not printed |# #| Use 'verbose_options True' to Enable |# #========================================================# Reading force field from file: param_valence_minimal.offxml #=========================================================# #| Starting parameter indices, physical values and IDs |# #=========================================================# 0 [ 1.3700e+00 ] : Bonds/Bond/length/[#6X4:1]-[#8X2H0:2] 1 [ 6.4000e+02 ] : Bonds/Bond/k/[#6X4:1]-[#8X2H0:2] 2 [ 1.0950e+02 ] : Angles/Angle/angle/[*:1]~[#6X4:2]-[*:3] 3 [ 1.0000e+02 ] : Angles/Angle/k/[*:1]~[#6X4:2]-[*:3] 4 [ 1.1300e+02 ] : Angles/Angle/angle/[*:1]-[#8:2]-[*:3] 5 [ 1.0000e+02 ] : Angles/Angle/k/[*:1]-[#8:2]-[*:3] 6 [ 1.1500e+00 ] : ProperTorsions/Proper/k1/[*:1]-[#6X4:2]-[#8X2H0:3]-[*:4] 7 [ 1.0000e-01 ] : ProperTorsions/Proper/k1/[#6X4:1]-[#8X2:2]-[#6X4:3]-[#8X2:4] 8 [ 8.5000e-01 ] : ProperTorsions/Proper/k2/[#6X4:1]-[#8X2:2]-[#6X4:3]-[#8X2:4] 9 [ 1.3500e+00 ] : ProperTorsions/Proper/k3/[#6X4:1]-[#8X2:2]-[#6X4:3]-[#8X2:4] ----------------------------------------------------------- #=========================================================# #| Rescaling Factors by Type (Lower Takes Precedence): |# #=========================================================# ProperTorsions/Proper/k1 : 1.15000e+00 ProperTorsions/Proper/k2 : 8.50000e-01 ProperTorsions/Proper/k3 : 1.35000e+00 Bonds/Bond/k : 1.00000e+02 Bonds/Bond/length : 1.00000e-01 Angles/Angle/k : 1.00000e+02 Angles/Angle/angle : 2.00000e+01 ProperTorsions/Proper/k : 1.00000e+00 ----------------------------------------------------------- #========================================================# #| Rescaling Types / Factors by Parameter Number: |# #========================================================# 0 [ Bonds/Bond/length : 1.00000e-01 ] : Bonds/Bond/length/[#6X4:1]-[#8X2H0:2] 1 [ Bonds/Bond/k : 1.00000e+02 ] : Bonds/Bond/k/[#6X4:1]-[#8X2H0:2] 2 [ Angles/Angle/angle : 2.00000e+01 ] : Angles/Angle/angle/[*:1]~[#6X4:2]-[*:3] 3 [ Angles/Angle/k : 1.00000e+02 ] : Angles/Angle/k/[*:1]~[#6X4:2]-[*:3] 4 [ Angles/Angle/angle : 2.00000e+01 ] : Angles/Angle/angle/[*:1]-[#8:2]-[*:3] 5 [ Angles/Angle/k : 1.00000e+02 ] : Angles/Angle/k/[*:1]-[#8:2]-[*:3] 6 [ ProperTorsions/Proper/k : 1.00000e+00 ] : ProperTorsions/Proper/k1/[*:1]-[#6X4:2]-[#8X2H0:3]-[*:4] 7 [ ProperTorsions/Proper/k : 1.00000e+00 ] : ProperTorsions/Proper/k1/[#6X4:1]-[#8X2:2]-[#6X4:3]-[#8X2:4] 8 [ ProperTorsions/Proper/k : 1.00000e+00 ] : ProperTorsions/Proper/k2/[#6X4:1]-[#8X2:2]-[#6X4:3]-[#8X2:4] 9 [ ProperTorsions/Proper/k : 1.00000e+00 ] : ProperTorsions/Proper/k3/[#6X4:1]-[#8X2:2]-[#6X4:3]-[#8X2:4] ---------------------------------------------------------- #========================================================# #| Setup for force field |# #========================================================# fnms ['param_valence_minimal.offxml'] priors OrderedDict([('Bonds/Bond/k', 100.0), ('Bonds/Bond/length', 0.1), ('Angles/Angle/k', 100.0), ('Angles/Angle/angle', 20.0), ('ProperTorsions/Proper/k', 1.0)]) ---------------------------------------------------------- Referencing all energies to the snapshot 7 (minimum energy structure in QM) ============================================================================================== warnings summary =============================================================================================== ../../../conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/amberio.py:31 /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/forcebalance-1.9.2-py3.9-macosx-10.9-x86_64.egg/forcebalance/amberio.py:31: DeprecationWarning: Please use `netcdf_file` from the `scipy.io` namespace, the `scipy.io.netcdf` namespace is deprecated. from scipy.io.netcdf import netcdf_file src/forcefield.py:1497 /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/forcefield.py:1497: DeprecationWarning: invalid escape sequence \[ matches = re.findall("\[['\"][^'\"]*['\"]\]", cmd) src/forcefield.py:1499 /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/forcefield.py:1499: DeprecationWarning: invalid escape sequence \[ src_param_name = re.sub("\[['\"]|['\"]\]", "", word) src/optimizer.py:240 /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/optimizer.py:240: DeprecationWarning: invalid escape sequence \P warn_press_key("mvals.txt in %s does not match loaded parameters.\nSave file : %s\Parameters : %s\n" % (T.absrd(), tmvals, self.mvals0)) src/output.py:59 /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/output.py:59: DeprecationWarning: invalid escape sequence \[ message = re.sub("\x1b\[[0-9][0-9]?;?[0-9]?[0-9]?m", "", message) src/output.py:68 /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/output.py:68: DeprecationWarning: invalid escape sequence \[ message = re.sub("\x1b\[[0-9][0-9]?;?[0-9]?[0-9]?m", "", message) src/tests/__init__.py:9 /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/tests/__init__.py:9: DeprecationWarning: invalid escape sequence \. if re.match("^test_.*\.py$",module)] src/tests/test_objective.py:26 /Users/jeffreywagner/projects/OpenForceField/forcebalance_mwt/src/tests/test_objective.py:26: DeprecationWarning: invalid escape sequence \. if re.compile(".*\.py$").match(module) src/tests/test_system.py::TestOpenFFTorsionProfileStudy::test_openff_torsionprofile_study src/tests/test_system.py::TestOpenFFTorsionProfileStudy::test_openff_torsionprofile_study /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/packaging/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release warnings.warn( src/tests/test_system.py::TestOpenFFTorsionProfileStudy::test_openff_torsionprofile_study /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/openff/interchange/components/interchange.py:339: UserWarning: Automatically up-converting BondHandler from version 0.3 to 0.4. Consider manually upgrading this BondHandler (or section in an OFFXML file) to 0.4 or newer. For more details, see https://openforcefield.github.io/standards/standards/smirnoff/#bonds. warnings.warn( src/tests/test_system.py::TestOpenFFTorsionProfileStudy::test_openff_torsionprofile_study /Users/jeffreywagner/conda/envs/forcebalance-dev/lib/python3.9/site-packages/openff/toolkit/typing/engines/smirnoff/forcefield.py:1139: DeprecationWarning: The `create_openmm_system` kwarg `return_topology` is DEPRECATED and will be removed in version 0.12.0 of the OpenFF Toolkit. Use `ForceField.create_interchange` followed by `Interchange.topology`, `Interchange.to_openmm_topology`, and `Interchange.to_openmm` for long-term replacements for `return_topology` functionality. warnings.warn(warning_msg, DeprecationWarning) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================================================================================== short test summary info =========================================================================================== FAILED src/tests/test_system.py::TestEvaluatorBromineStudy::test_bromine_study - ConnectionRefusedError: [Errno 61] Connection refused FAILED src/tests/test_system.py::TestOpenFFTorsionProfileStudy::test_openff_torsionprofile_study - AttributeError: 'Topology' object has no attribute 'n_topology_virtual_sites' ERROR src/tests/test_system.py::TestEvaluatorBromineStudy::test_bromine_study - FileNotFoundError: [Errno 2] No such file or directory: 'working_directory' =========================================================== 2 failed, 6 passed, 1 skipped, 68 deselected, 12 warnings, 1 error in 225.39s (0:03:45) =========================================================== ```
leeping commented 1 year ago

Thanks so much for your patience! I've reviewed and I'm merging this PR now.