From 0066b24657b9ef8b123035a197b8d118351a42bf Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Tue, 16 May 2023 18:21:58 +0200 Subject: [PATCH 01/17] add box to topology --- polyply/src/topology.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/polyply/src/topology.py b/polyply/src/topology.py index 86cca836..79690149 100644 --- a/polyply/src/topology.py +++ b/polyply/src/topology.py @@ -41,13 +41,15 @@ def _coord_parser(path, extension): reader = COORD_PARSERS[extension] molecules = reader(path, exclude=()) if extension == "pdb": + box = np.array([reader.cryst[item] for item in ['a', 'b', 'c', 'alpha', 'beta', 'gamma']]) molecule = molecules[0] for new_mol in molecules[1:]: molecule.merge_molecule(new_mol) else: molecule = molecules + box = molecules.box positions = np.array(list(nx.get_node_attributes(molecule, "position").values())) - return positions + return positions, box def replace_defined_interaction(interaction, defines): @@ -213,6 +215,8 @@ class Topology(System): A dictionary of all typed parameter defines: list A list of everything that is defined + box: np.array(6,1) + Box coordinates as x,y,z, alpha, beta, gamma """ def __init__(self, force_field, name=None): @@ -228,6 +232,7 @@ def __init__(self, force_field, name=None): self.persistences = [] self.distance_restraints = defaultdict(dict) self.volumes = {} + self.box = None def preprocess(self): """ @@ -425,7 +430,8 @@ def add_positions_from_file(self, path, skip_res=[], resolution='mol'): """ path = Path(path) extension = path.suffix.casefold()[1:] - positions = _coord_parser(path, extension) + positions, box = _coord_parser(path, extension) + self.box = box max_coords = len(positions) total = 0 for meta_mol in self.molecules: From 1efe6cb77cbb973471957cce0ef10047eb04b6e0 Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Tue, 16 May 2023 18:39:15 +0200 Subject: [PATCH 02/17] improve box handling --- polyply/src/gen_coords.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/polyply/src/gen_coords.py b/polyply/src/gen_coords.py index 54516cf3..1ed7bdc8 100644 --- a/polyply/src/gen_coords.py +++ b/polyply/src/gen_coords.py @@ -236,6 +236,16 @@ def gen_coords(toppath, LOGGER.info("loading grid", type="step") grid = np.loadtxt(grid) + # where to get the box size from + if box and any(topology.box != box): + msg = ("a box is provided via the -box command line " + "and the starting coordinates. We take the " + "the box of starting coordinates as correct. ") + LOGGER.info(msg, type="warning") + box = topology.box + elif topology.box is not None: + box = topology.box + # do a sanity check LOGGER.info("checking residue integrity", type="step") check_residue_equivalence(topology) From b1c9379c7770f1e6271931373c5e71045ff37be7 Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Tue, 16 May 2023 18:49:23 +0200 Subject: [PATCH 03/17] fix logic mistake and add tests --- polyply/src/gen_coords.py | 2 +- polyply/tests/test_gen_coords_logic.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/polyply/src/gen_coords.py b/polyply/src/gen_coords.py index 1ed7bdc8..96afb0d9 100644 --- a/polyply/src/gen_coords.py +++ b/polyply/src/gen_coords.py @@ -237,7 +237,7 @@ def gen_coords(toppath, grid = np.loadtxt(grid) # where to get the box size from - if box and any(topology.box != box): + if box is not None and not np.array_equal(topology.box, box): msg = ("a box is provided via the -box command line " "and the starting coordinates. We take the " "the box of starting coordinates as correct. ") diff --git a/polyply/tests/test_gen_coords_logic.py b/polyply/tests/test_gen_coords_logic.py index 9f544c85..82f05caa 100644 --- a/polyply/tests/test_gen_coords_logic.py +++ b/polyply/tests/test_gen_coords_logic.py @@ -47,6 +47,30 @@ def test_no_positions_generated(tmp_path, monkeypatch): assert np.all(molecule_out.nodes[node]['position'] == molecule_in.nodes[node]['position']) +@pytest.mark.parametrize('box_input, box_ref', [ + # box from input coordinates + (None, np.array([11.0, 11.0, 11.0])), + # box from input coordinates overwrites + (np.array([5.0, 5.0, 5.0]), np.array([11.0, 11.0, 11.0])), + ]) +def test_box_input(tmp_path, monkeypatch, box_input, box_ref): + """ + All positions are defined none have to be created. Should run through without + errors and preserve all positions given in the input to rounding accuracy. + """ + monkeypatch.chdir(tmp_path) + top_file = TEST_DATA + "/topology_test/system.top" + pos_file = TEST_DATA + "/topology_test/complete.gro" + out_file = tmp_path / "out.gro" + gen_coords(toppath=top_file, + coordpath=pos_file, + outpath=out_file, + name="test", + box=box_input + ) + molecule_out = read_gro(out_file, exclude=()) + assert np.array_equal(molecule_out.box, box_ref) + def test_backmap_only(tmp_path, monkeypatch): """ Only meta_mol positions are defined so others have to be backmapped. From 81464bfd2f5433f40f1a271a1086a61750d65ab7 Mon Sep 17 00:00:00 2001 From: Fabian Grunewald <32294573+fgrunewald@users.noreply.github.com> Date: Sat, 20 May 2023 15:55:36 +0200 Subject: [PATCH 04/17] Update setup.cfg --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 9f671339..a04ed7f9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,7 +35,7 @@ install-requires = # ?? requires-dist? numpy decorator == 4.4.2 networkx ~= 2.0 - vermouth >= 0.9.1 + vermouth >= 0.9.2 scipy >= 1.6.0 tqdm zip-safe = False From 76b6bb1c0ba24826e192caad497b4275072bf963 Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Sat, 10 Jun 2023 12:02:10 +0200 Subject: [PATCH 05/17] add warning when density is overwritten --- polyply/src/gen_coords.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/polyply/src/gen_coords.py b/polyply/src/gen_coords.py index 96afb0d9..d3a45957 100644 --- a/polyply/src/gen_coords.py +++ b/polyply/src/gen_coords.py @@ -245,6 +245,12 @@ def gen_coords(toppath, box = topology.box elif topology.box is not None: box = topology.box + if dens is not None: + msg = ("a density is provided via the command line, " + "but the starting coordinates define a box." + "Will try to pack all molecules in box provied with" + "with starting coordinates") + LOGGER.info(msg, type="warning") # do a sanity check LOGGER.info("checking residue integrity", type="step") From 07ac373161137ac714f39fabf41e82f40445343e Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Wed, 16 Aug 2023 15:55:50 +0200 Subject: [PATCH 06/17] increment martinize2 dependency --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index a04ed7f9..b3027855 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,7 +35,7 @@ install-requires = # ?? requires-dist? numpy decorator == 4.4.2 networkx ~= 2.0 - vermouth >= 0.9.2 + vermouth >= 0.9.3 scipy >= 1.6.0 tqdm zip-safe = False From 01b683ddb0e6517efd00483d1ed281db0adb4cd9 Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Thu, 17 Aug 2023 10:28:12 +0200 Subject: [PATCH 07/17] fix gen_coords and topology calling of box dimensions --- polyply/src/gen_coords.py | 2 +- polyply/src/topology.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/polyply/src/gen_coords.py b/polyply/src/gen_coords.py index d3a45957..713226b2 100644 --- a/polyply/src/gen_coords.py +++ b/polyply/src/gen_coords.py @@ -245,7 +245,7 @@ def gen_coords(toppath, box = topology.box elif topology.box is not None: box = topology.box - if dens is not None: + if density is not None: msg = ("a density is provided via the command line, " "but the starting coordinates define a box." "Will try to pack all molecules in box provied with" diff --git a/polyply/src/topology.py b/polyply/src/topology.py index 79690149..bf2f1f1d 100644 --- a/polyply/src/topology.py +++ b/polyply/src/topology.py @@ -40,14 +40,16 @@ def _coord_parser(path, extension): reader = COORD_PARSERS[extension] molecules = reader(path, exclude=()) + box = None if extension == "pdb": - box = np.array([reader.cryst[item] for item in ['a', 'b', 'c', 'alpha', 'beta', 'gamma']]) + if hasattr(reader, "cryst"): + box = np.array([reader.cryst[item] for item in ['a', 'b', 'c', 'alpha', 'beta', 'gamma']]) molecule = molecules[0] for new_mol in molecules[1:]: molecule.merge_molecule(new_mol) else: molecule = molecules - box = molecules.box + box = molecule.box positions = np.array(list(nx.get_node_attributes(molecule, "position").values())) return positions, box From 706ae2d52b4f12b2cae6ad6dfc40cfb8fe796f0c Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Thu, 17 Aug 2023 10:57:44 +0200 Subject: [PATCH 08/17] fix loglevel for box coord warnings --- polyply/src/gen_coords.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/polyply/src/gen_coords.py b/polyply/src/gen_coords.py index 713226b2..fab87ee3 100644 --- a/polyply/src/gen_coords.py +++ b/polyply/src/gen_coords.py @@ -238,19 +238,19 @@ def gen_coords(toppath, # where to get the box size from if box is not None and not np.array_equal(topology.box, box): - msg = ("a box is provided via the -box command line " - "and the starting coordinates. We take the " + msg = ("A box is provided via the -box command line " + "and the starting coordinates. We consider the " "the box of starting coordinates as correct. ") - LOGGER.info(msg, type="warning") + LOGGER.warning(msg, type="warning") box = topology.box elif topology.box is not None: box = topology.box if density is not None: - msg = ("a density is provided via the command line, " + msg = ("A density is provided via the command line, " "but the starting coordinates define a box." - "Will try to pack all molecules in box provied with" - "with starting coordinates") - LOGGER.info(msg, type="warning") + "Will try to pack all molecules in the box " + "provied with starting coordinates.") + LOGGER.warning(msg, type="warning") # do a sanity check LOGGER.info("checking residue integrity", type="step") From e3dff3ffdd1e46c2f9a4469147722faf66300a15 Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Thu, 17 Aug 2023 10:57:59 +0200 Subject: [PATCH 09/17] extend tests for box coord parsing --- polyply/tests/test_gen_coords_logic.py | 49 ++++++++++++++++++-------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/polyply/tests/test_gen_coords_logic.py b/polyply/tests/test_gen_coords_logic.py index 82f05caa..9740c870 100644 --- a/polyply/tests/test_gen_coords_logic.py +++ b/polyply/tests/test_gen_coords_logic.py @@ -47,29 +47,50 @@ def test_no_positions_generated(tmp_path, monkeypatch): assert np.all(molecule_out.nodes[node]['position'] == molecule_in.nodes[node]['position']) -@pytest.mark.parametrize('box_input, box_ref', [ +@pytest.mark.parametrize('box_input, box_ref, density, warning', [ # box from input coordinates - (None, np.array([11.0, 11.0, 11.0])), + (None, np.array([11.0, 11.0, 11.0]), None, None), # box from input coordinates overwrites - (np.array([5.0, 5.0, 5.0]), np.array([11.0, 11.0, 11.0])), + (np.array([5.0, 5.0, 5.0]), np.array([11.0, 11.0, 11.0]), None, "warn1"), + # box from input coordinates and density from CLI + (None, np.array([11.0, 11.0, 11.0]), 1000, "warn2"), ]) -def test_box_input(tmp_path, monkeypatch, box_input, box_ref): +def test_box_input(tmp_path, monkeypatch, caplog, box_input, box_ref, density, warning): """ - All positions are defined none have to be created. Should run through without - errors and preserve all positions given in the input to rounding accuracy. + Here we test that the correct box is chosen, in case there + are conflicting inputs. """ + warnings = {"warn1": ("A box is provided via the -box command line " + "and the starting coordinates. We consider the " + "the box of starting coordinates as correct. "), + "warn2": ("A density is provided via the command line, " + "but the starting coordinates define a box." + "Will try to pack all molecules in the box " + "provied with starting coordinates."),} + monkeypatch.chdir(tmp_path) top_file = TEST_DATA + "/topology_test/system.top" pos_file = TEST_DATA + "/topology_test/complete.gro" out_file = tmp_path / "out.gro" - gen_coords(toppath=top_file, - coordpath=pos_file, - outpath=out_file, - name="test", - box=box_input - ) - molecule_out = read_gro(out_file, exclude=()) - assert np.array_equal(molecule_out.box, box_ref) + + with caplog.at_level(logging.WARNING): + gen_coords(toppath=top_file, + coordpath=pos_file, + outpath=out_file, + name="test", + box=box_input, + density=density,) + + molecule_out = read_gro(out_file, exclude=()) + assert np.array_equal(molecule_out.box, box_ref) + if warning: + for record in caplog.records: + print(record) + if record.levelname == "WARNING": + assert str(record.msg) == warnings[warning] + break + else: + assert False def test_backmap_only(tmp_path, monkeypatch): """ From 8932b99faa33460ed49ef77ca8035def6d81c1cf Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Fri, 25 Aug 2023 10:31:53 +0200 Subject: [PATCH 10/17] use box from pdb in correct fashion --- polyply/src/topology.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/polyply/src/topology.py b/polyply/src/topology.py index bf2f1f1d..c895f417 100644 --- a/polyply/src/topology.py +++ b/polyply/src/topology.py @@ -40,16 +40,14 @@ def _coord_parser(path, extension): reader = COORD_PARSERS[extension] molecules = reader(path, exclude=()) - box = None if extension == "pdb": - if hasattr(reader, "cryst"): - box = np.array([reader.cryst[item] for item in ['a', 'b', 'c', 'alpha', 'beta', 'gamma']]) molecule = molecules[0] for new_mol in molecules[1:]: molecule.merge_molecule(new_mol) else: molecule = molecules - box = molecule.box + + box = molecule.box positions = np.array(list(nx.get_node_attributes(molecule, "position").values())) return positions, box From fc26297ffbf59af557fc30efd68fb1242fa445e2 Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Tue, 19 Sep 2023 14:39:00 +0200 Subject: [PATCH 11/17] increase vermouth version --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index b3027855..0bc7a7da 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,7 +35,7 @@ install-requires = # ?? requires-dist? numpy decorator == 4.4.2 networkx ~= 2.0 - vermouth >= 0.9.3 + vermouth >= 0.9.5 scipy >= 1.6.0 tqdm zip-safe = False From 46150d5c3f8a8489ccd8f3803b3e61aec0a9a310 Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Tue, 19 Sep 2023 15:00:56 +0200 Subject: [PATCH 12/17] add box tests for gro and pbd --- polyply/tests/test_data/topology_test/meta.gro | 2 +- polyply/tests/test_data/topology_test/test.gro | 2 +- polyply/tests/test_data/topology_test/test.pdb | 1 + polyply/tests/test_topology.py | 11 +++++++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/polyply/tests/test_data/topology_test/meta.gro b/polyply/tests/test_data/topology_test/meta.gro index aa20030b..d12e4c30 100644 --- a/polyply/tests/test_data/topology_test/meta.gro +++ b/polyply/tests/test_data/topology_test/meta.gro @@ -2,4 +2,4 @@ PMMA test file 2 1PMMA C1 1 -0.024 -0.125 0.104 1PMMA C2 2 -0.089 -0.100 -0.028 - 10.00000 10.00000 10.00000 + 10.00000 11.00000 12.00000 diff --git a/polyply/tests/test_data/topology_test/test.gro b/polyply/tests/test_data/topology_test/test.gro index f4458eec..9fa4900b 100644 --- a/polyply/tests/test_data/topology_test/test.gro +++ b/polyply/tests/test_data/topology_test/test.gro @@ -14,4 +14,4 @@ PMMA test file 2PMMA O1 12 4.482 6.483 9.965 2PMMA O2 13 4.579 6.512 9.772 2PMMA C5 14 4.632 6.624 9.842 - 10.00000 10.00000 10.00000 + 10.00000 11.00000 12.00000 diff --git a/polyply/tests/test_data/topology_test/test.pdb b/polyply/tests/test_data/topology_test/test.pdb index 04debb01..10f2fc05 100644 --- a/polyply/tests/test_data/topology_test/test.pdb +++ b/polyply/tests/test_data/topology_test/test.pdb @@ -1,3 +1,4 @@ +CRYST1 118.249 120.688 110.944 90.00 90.00 90.00 P 1 1 ATOM 1 BB MET A 1 17.193 61.796 62.315 1.00 0.00 ATOM 2 SC1 MET A 1 20.670 62.642 62.148 1.00 0.00 ATOM 3 BB TYR A 2 16.691 62.571 65.956 1.00 0.00 diff --git a/polyply/tests/test_topology.py b/polyply/tests/test_topology.py index a4d7fd21..19d0cb66 100644 --- a/polyply/tests/test_topology.py +++ b/polyply/tests/test_topology.py @@ -46,6 +46,10 @@ def test_add_positions_from_gro(): """ top = Topology.from_gmx_topfile(TEST_DATA + "/topology_test/system.top", "test") top.add_positions_from_file(TEST_DATA + "/topology_test/test.gro") + + # check that the box is correctly read + assert np.allclose(top.box, np.array([10.0, 11.0, 12.0])) + for node in top.molecules[0].molecule.nodes: if node < 14: assert "position" in top.molecules[0].molecule.nodes[node].keys() @@ -70,6 +74,10 @@ def test_add_meta_positions_from_gro(): """ top = Topology.from_gmx_topfile(TEST_DATA + "/topology_test/system.top", "test") top.add_positions_from_file(TEST_DATA + "/topology_test/meta.gro", resolution="meta_mol") + + # check that the box is correctly read + assert np.allclose(top.box, np.array([10.0, 11.0, 12.0])) + for node in top.molecules[0].nodes: if node != 2: assert "position" in top.molecules[0].nodes[node].keys() @@ -90,6 +98,9 @@ def test_add_positions_from_pdb(): top = Topology.from_gmx_topfile(TEST_DATA + "/topology_test/pdb.top", "test") top.add_positions_from_file(TEST_DATA + "/topology_test/test.pdb") + # check that the box is correctly read + assert np.allclose(top.box, np.array([11.8249, 12.0688, 11.0944])) + pdb_mols = read_pdb(TEST_DATA + "/topology_test/test.pdb") for idx, meta_mol in enumerate(top.molecules): for node in meta_mol.molecule.nodes: From a0a16588dcc3e5b5ac5d3a54ece2afed729a352c Mon Sep 17 00:00:00 2001 From: "f.grunewald" Date: Wed, 20 Sep 2023 14:34:26 +0200 Subject: [PATCH 13/17] fix vermouth dependency --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 0bc7a7da..ab0ed8ba 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,7 +35,7 @@ install-requires = # ?? requires-dist? numpy decorator == 4.4.2 networkx ~= 2.0 - vermouth >= 0.9.5 + vermouth >= 0.9.6 scipy >= 1.6.0 tqdm zip-safe = False From b424f8e9cfb9f97cdbbae2230c0ee404ca243fc5 Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Fri, 22 Sep 2023 18:54:39 +0200 Subject: [PATCH 14/17] fix docstring for topology box argument --- polyply/src/topology.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/polyply/src/topology.py b/polyply/src/topology.py index c895f417..47cf6984 100644 --- a/polyply/src/topology.py +++ b/polyply/src/topology.py @@ -215,8 +215,8 @@ class Topology(System): A dictionary of all typed parameter defines: list A list of everything that is defined - box: np.array(6,1) - Box coordinates as x,y,z, alpha, beta, gamma + box: np.array(3,1) + Box vectors as a, b, c in nanometers """ def __init__(self, force_field, name=None): From 84d4a45046f80eccdfb768582918ab77a6f1fbf3 Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Fri, 22 Sep 2023 18:55:46 +0200 Subject: [PATCH 15/17] cleaner transfer of box --- polyply/src/topology.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/polyply/src/topology.py b/polyply/src/topology.py index 47cf6984..9cefac63 100644 --- a/polyply/src/topology.py +++ b/polyply/src/topology.py @@ -430,8 +430,7 @@ def add_positions_from_file(self, path, skip_res=[], resolution='mol'): """ path = Path(path) extension = path.suffix.casefold()[1:] - positions, box = _coord_parser(path, extension) - self.box = box + positions, self.box = _coord_parser(path, extension) max_coords = len(positions) total = 0 for meta_mol in self.molecules: From d34c7deea057b032cf8aa3b7a45105ab744cfc59 Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Fri, 22 Sep 2023 19:08:24 +0200 Subject: [PATCH 16/17] address comments --- polyply/tests/test_gen_coords_logic.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/polyply/tests/test_gen_coords_logic.py b/polyply/tests/test_gen_coords_logic.py index 9740c870..a827e71f 100644 --- a/polyply/tests/test_gen_coords_logic.py +++ b/polyply/tests/test_gen_coords_logic.py @@ -55,7 +55,7 @@ def test_no_positions_generated(tmp_path, monkeypatch): # box from input coordinates and density from CLI (None, np.array([11.0, 11.0, 11.0]), 1000, "warn2"), ]) -def test_box_input(tmp_path, monkeypatch, caplog, box_input, box_ref, density, warning): +def test_box_input(tmp_path, caplog, box_input, box_ref, density, warning): """ Here we test that the correct box is chosen, in case there are conflicting inputs. @@ -66,9 +66,8 @@ def test_box_input(tmp_path, monkeypatch, caplog, box_input, box_ref, density, w "warn2": ("A density is provided via the command line, " "but the starting coordinates define a box." "Will try to pack all molecules in the box " - "provied with starting coordinates."),} + "provided with starting coordinates."),} - monkeypatch.chdir(tmp_path) top_file = TEST_DATA + "/topology_test/system.top" pos_file = TEST_DATA + "/topology_test/complete.gro" out_file = tmp_path / "out.gro" @@ -85,12 +84,15 @@ def test_box_input(tmp_path, monkeypatch, caplog, box_input, box_ref, density, w assert np.array_equal(molecule_out.box, box_ref) if warning: for record in caplog.records: - print(record) if record.levelname == "WARNING": assert str(record.msg) == warnings[warning] break else: assert False + else: + for record in caplog.records: + if record.levelname == "WARNING": + assert False def test_backmap_only(tmp_path, monkeypatch): """ From f7334a2462cb0d968a0ba464c50912313becf9b3 Mon Sep 17 00:00:00 2001 From: Fabian Gruenewald Date: Fri, 22 Sep 2023 19:08:50 +0200 Subject: [PATCH 17/17] fix spelling error --- polyply/src/gen_coords.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/polyply/src/gen_coords.py b/polyply/src/gen_coords.py index fab87ee3..61fb1c15 100644 --- a/polyply/src/gen_coords.py +++ b/polyply/src/gen_coords.py @@ -249,7 +249,7 @@ def gen_coords(toppath, msg = ("A density is provided via the command line, " "but the starting coordinates define a box." "Will try to pack all molecules in the box " - "provied with starting coordinates.") + "provided with starting coordinates.") LOGGER.warning(msg, type="warning") # do a sanity check