From 82784713529d200aaf8fbf82c1018951880ca2ff Mon Sep 17 00:00:00 2001 From: Alyssa Travitz Date: Wed, 28 Jan 2026 15:12:52 -0800 Subject: [PATCH 1/4] import pooch_cache from conftest --- src/openfe/tests/conftest.py | 3 ++ src/openfe/tests/protocols/conftest.py | 28 ++++++++++++++++++- .../restraints/test_geometry_boresch.py | 5 ++-- .../restraints/test_geometry_boresch_host.py | 24 ++++------------ .../restraints/test_geometry_utils.py | 27 +----------------- .../restraints/test_omm_restraints.py | 7 ++--- .../tests/protocols/test_openmmutils.py | 3 +- 7 files changed, 42 insertions(+), 55 deletions(-) diff --git a/src/openfe/tests/conftest.py b/src/openfe/tests/conftest.py index f2358757f..4a75fc03b 100644 --- a/src/openfe/tests/conftest.py +++ b/src/openfe/tests/conftest.py @@ -12,6 +12,7 @@ import numpy as np import openmm import pandas as pd +import pooch import pytest from gufe import AtomMapper, LigandAtomMapping, ProteinComponent, SmallMoleculeComponent from openff.toolkit import ForceField @@ -26,6 +27,8 @@ from openfe.protocols.openmm_utils.serialization import deserialize from openfe.tests.protocols.openmm_rfe.helpers import make_htf +POOCH_CACHE = pooch.os_cache("openfe") + class SlowTests: """Plugin for handling fixtures that skips slow tests diff --git a/src/openfe/tests/protocols/conftest.py b/src/openfe/tests/protocols/conftest.py index ccf83d7e4..c116fcb74 100644 --- a/src/openfe/tests/protocols/conftest.py +++ b/src/openfe/tests/protocols/conftest.py @@ -1,9 +1,11 @@ # This code is part of OpenFE and is licensed under the MIT license. # For details, see https://github.com/OpenFreeEnergy/openfe import gzip +import pathlib from importlib import resources from typing import Optional +import MDAnalysis as mda import openmm import pooch import pytest @@ -16,6 +18,8 @@ import openfe +from ..conftest import POOCH_CACHE + @pytest.fixture def available_platforms() -> set[str]: @@ -280,8 +284,30 @@ def septop_json() -> str: return f.read().decode() # type: ignore +zenodo_restraint_data = pooch.create( + path=POOCH_CACHE, + base_url="doi:10.5281/zenodo.15212342", + registry={ + "t4_lysozyme_trajectory.zip": "sha256:e985d055db25b5468491e169948f641833a5fbb67a23dbb0a00b57fb7c0e59c8" + }, +) + + +@pytest.fixture +def t4_lysozyme_trajectory_universe(): + zenodo_restraint_data.fetch("t4_lysozyme_trajectory.zip", processor=pooch.Unzip()) + cache_dir = pathlib.Path( + POOCH_CACHE / "t4_lysozyme_trajectory.zip.unzip/t4_lysozyme_trajectory" + ) + universe = mda.Universe( + str(cache_dir / "t4_toluene_complex.pdb"), + str(cache_dir / "t4_toluene_complex.xtc"), + ) + return universe + + RFE_OUTPUT = pooch.create( - path=pooch.os_cache("openfe_analysis"), + path=POOCH_CACHE, base_url="doi:10.6084/m9.figshare.24101655", registry={ "checkpoint.nc": "5af398cb14340fddf7492114998b244424b6c3f4514b2e07e4bd411484c08464", diff --git a/src/openfe/tests/protocols/restraints/test_geometry_boresch.py b/src/openfe/tests/protocols/restraints/test_geometry_boresch.py index b533db1ac..df6945833 100644 --- a/src/openfe/tests/protocols/restraints/test_geometry_boresch.py +++ b/src/openfe/tests/protocols/restraints/test_geometry_boresch.py @@ -14,7 +14,7 @@ find_boresch_restraint, ) -from ...conftest import HAS_INTERNET +from ...conftest import HAS_INTERNET, POOCH_CACHE @pytest.fixture() @@ -235,7 +235,6 @@ def test_get_boresch_restraint_dssp(eg5_protein_ligand_universe, eg5_ligands): assert -0.02396901 == pytest.approx(restraint_geometry.phi_C0.to("radians").m) -POOCH_CACHE = pooch.os_cache("openfe") zenodo_restraint_data = pooch.create( path=POOCH_CACHE, base_url="doi:10.5281/zenodo.15212342", @@ -249,7 +248,7 @@ def test_get_boresch_restraint_dssp(eg5_protein_ligand_universe, eg5_ligands): def industry_benchmark_files(): zenodo_restraint_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) cache_dir = pathlib.Path( - pooch.os_cache("openfe") / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" + POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" ) return cache_dir diff --git a/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py b/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py index 78815a5e9..d5189fe13 100644 --- a/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py +++ b/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py @@ -2,7 +2,6 @@ # For details, see https://github.com/OpenFreeEnergy/openfe import os -import pathlib import MDAnalysis as mda import numpy as np @@ -25,9 +24,8 @@ is_collinear, ) -from ...conftest import HAS_INTERNET +from ...conftest import HAS_INTERNET, POOCH_CACHE -POOCH_CACHE = pooch.os_cache("openfe") zenodo_restraint_data = pooch.create( path=POOCH_CACHE, base_url="doi:10.5281/zenodo.15212342", @@ -37,21 +35,6 @@ ) -@pytest.fixture(scope="module") -def t4_lysozyme_trajectory_universe(): - zenodo_restraint_data.fetch("t4_lysozyme_trajectory.zip", processor=pooch.Unzip()) - cache_dir = pathlib.Path( - pooch.os_cache("openfe") / "t4_lysozyme_trajectory.zip.unzip/t4_lysozyme_trajectory" - ) - universe = mda.Universe( - str(cache_dir / "t4_toluene_complex.pdb"), - str(cache_dir / "t4_toluene_complex.xtc"), - ) - # guess bonds for the protein atoms - universe.select_atoms("protein").guess_bonds() - return universe - - @pytest.fixture def eg5_protein_ligand_universe(eg5_protein_pdb, eg5_ligands): protein = mda.Universe(eg5_protein_pdb) @@ -358,7 +341,10 @@ class TestFindAnchorBondedTrajectory(TestFindAnchorMulti): @pytest.fixture(scope="class") def universe(self, t4_lysozyme_trajectory_universe): - return t4_lysozyme_trajectory_universe + universe = t4_lysozyme_trajectory_universe + # guess bonds for the protein atoms + universe.select_atoms("protein").guess_bonds() + return universe @pytest.fixture(scope="class") def host_anchor(self, universe): diff --git a/src/openfe/tests/protocols/restraints/test_geometry_utils.py b/src/openfe/tests/protocols/restraints/test_geometry_utils.py index c7b3156d4..34db6a347 100644 --- a/src/openfe/tests/protocols/restraints/test_geometry_utils.py +++ b/src/openfe/tests/protocols/restraints/test_geometry_utils.py @@ -3,12 +3,10 @@ import itertools import os -import pathlib from importlib import resources import MDAnalysis as mda import numpy as np -import pooch import pytest from openff.units import unit from rdkit import Chem @@ -32,7 +30,7 @@ stable_secondary_structure_selection, ) -from ...conftest import HAS_INTERNET +from ...conftest import HAS_INTERNET, POOCH_CACHE @pytest.fixture(scope="module") @@ -49,29 +47,6 @@ def eg5_protein_ligand_universe(eg5_protein_pdb, eg5_ligands): return mda.Merge(protein.atoms, lig.atoms) -POOCH_CACHE = pooch.os_cache("openfe") -zenodo_restraint_data = pooch.create( - path=POOCH_CACHE, - base_url="doi:10.5281/zenodo.15212342", - registry={ - "t4_lysozyme_trajectory.zip": "sha256:e985d055db25b5468491e169948f641833a5fbb67a23dbb0a00b57fb7c0e59c8" - }, -) - - -@pytest.fixture -def t4_lysozyme_trajectory_universe(): - zenodo_restraint_data.fetch("t4_lysozyme_trajectory.zip", processor=pooch.Unzip()) - cache_dir = pathlib.Path( - pooch.os_cache("openfe") / "t4_lysozyme_trajectory.zip.unzip/t4_lysozyme_trajectory" - ) - universe = mda.Universe( - str(cache_dir / "t4_toluene_complex.pdb"), - str(cache_dir / "t4_toluene_complex.xtc"), - ) - return universe - - @pytest.fixture def beta_barrel_universe(): with resources.as_file(resources.files("openfe.tests.data")) as d: diff --git a/src/openfe/tests/protocols/restraints/test_omm_restraints.py b/src/openfe/tests/protocols/restraints/test_omm_restraints.py index 55b75f5ad..fc3b3d4a7 100644 --- a/src/openfe/tests/protocols/restraints/test_omm_restraints.py +++ b/src/openfe/tests/protocols/restraints/test_omm_restraints.py @@ -28,7 +28,7 @@ FlatBottomRestraintSettings, ) -from ...conftest import HAS_INTERNET +from ...conftest import HAS_INTERNET, POOCH_CACHE def test_parameter_state_default(): @@ -98,7 +98,6 @@ def test_verify_geometry(): restraint._verify_geometry(geometry) -POOCH_CACHE = pooch.os_cache("openfe") zenodo_restraint_data = pooch.create( path=POOCH_CACHE, base_url="doi:10.5281/zenodo.15212342", @@ -112,7 +111,7 @@ def test_verify_geometry(): def tyk2_protein_ligand_system(): zenodo_restraint_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) cache_dir = pathlib.Path( - pooch.os_cache("openfe") / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" + POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" ) with open(str(cache_dir / "jacs_set" / "tyk2" / "protein_ligand_system.xml")) as xml: return openmm.XmlSerializer.deserialize(xml.read()) @@ -122,7 +121,7 @@ def tyk2_protein_ligand_system(): def tyk2_rdkit_ligand(): zenodo_restraint_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) cache_dir = pathlib.Path( - pooch.os_cache("openfe") / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" + POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" ) ligand = SmallMoleculeComponent.from_sdf_file( str(cache_dir / "jacs_set" / "tyk2" / "test_ligand.sdf") diff --git a/src/openfe/tests/protocols/test_openmmutils.py b/src/openfe/tests/protocols/test_openmmutils.py index 8251970e2..70933d7e5 100644 --- a/src/openfe/tests/protocols/test_openmmutils.py +++ b/src/openfe/tests/protocols/test_openmmutils.py @@ -40,7 +40,7 @@ HAS_NAGL, HAS_OPENEYE, ) -from openfe.tests.conftest import HAS_INTERNET +from openfe.tests.conftest import HAS_INTERNET, POOCH_CACHE @pytest.mark.parametrize( @@ -1033,7 +1033,6 @@ def test_openeye_import_error(self, monkeypatch, uncharged_mol): ) -POOCH_CACHE = pooch.os_cache("openfe") RFE_OUTPUT = pooch.create( path=POOCH_CACHE, base_url="doi:10.5281/zenodo.15375081", From d24da7d74ed6ffa3e9819a26da8b3d1e6e91fd2d Mon Sep 17 00:00:00 2001 From: Alyssa Travitz Date: Wed, 28 Jan 2026 15:17:51 -0800 Subject: [PATCH 2/4] remove unused files from pooch cache --- src/openfe/tests/protocols/conftest.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/openfe/tests/protocols/conftest.py b/src/openfe/tests/protocols/conftest.py index c116fcb74..4bab143d4 100644 --- a/src/openfe/tests/protocols/conftest.py +++ b/src/openfe/tests/protocols/conftest.py @@ -310,11 +310,7 @@ def t4_lysozyme_trajectory_universe(): path=POOCH_CACHE, base_url="doi:10.6084/m9.figshare.24101655", registry={ - "checkpoint.nc": "5af398cb14340fddf7492114998b244424b6c3f4514b2e07e4bd411484c08464", - "db.json": "b671f9eb4daf9853f3e1645f9fd7c18150fd2a9bf17c18f23c5cf0c9fd5ca5b3", - "hybrid_system.pdb": "07203679cb14b840b36e4320484df2360f45e323faadb02d6eacac244fddd517", "simulation.nc": "92361a0864d4359a75399470135f56642b72c605069a4c33dbc4be6f91f28b31", - "simulation_real_time_analysis.yaml": "65706002f371fafba96037f29b054fd7e050e442915205df88567f48f5e5e1cf", }, ) From 79be3673b69d866951a2f46644fda683ae97f5a6 Mon Sep 17 00:00:00 2001 From: Alyssa Travitz Date: Wed, 28 Jan 2026 15:49:20 -0800 Subject: [PATCH 3/4] move zenodo cache to conftest --- src/openfe/tests/protocols/conftest.py | 9 +++++++++ .../restraints/test_geometry_boresch.py | 12 ++---------- .../restraints/test_geometry_boresch_host.py | 8 -------- .../restraints/test_omm_restraints.py | 14 +++----------- src/openfe/tests/protocols/test_openmmutils.py | 18 ------------------ 5 files changed, 14 insertions(+), 47 deletions(-) diff --git a/src/openfe/tests/protocols/conftest.py b/src/openfe/tests/protocols/conftest.py index 4bab143d4..eb4691f59 100644 --- a/src/openfe/tests/protocols/conftest.py +++ b/src/openfe/tests/protocols/conftest.py @@ -284,6 +284,15 @@ def septop_json() -> str: return f.read().decode() # type: ignore +zenodo_industry_benchmarks_data = pooch.create( + path=POOCH_CACHE, + base_url="doi:10.5281/zenodo.15212342", + registry={ + "industry_benchmark_systems.zip": "sha256:2bb5eee36e29b718b96bf6e9350e0b9957a592f6c289f77330cbb6f4311a07bd" + }, +) + + zenodo_restraint_data = pooch.create( path=POOCH_CACHE, base_url="doi:10.5281/zenodo.15212342", diff --git a/src/openfe/tests/protocols/restraints/test_geometry_boresch.py b/src/openfe/tests/protocols/restraints/test_geometry_boresch.py index df6945833..9f724f66d 100644 --- a/src/openfe/tests/protocols/restraints/test_geometry_boresch.py +++ b/src/openfe/tests/protocols/restraints/test_geometry_boresch.py @@ -15,6 +15,7 @@ ) from ...conftest import HAS_INTERNET, POOCH_CACHE +from ..conftest import zenodo_industry_benchmarks_data @pytest.fixture() @@ -235,18 +236,9 @@ def test_get_boresch_restraint_dssp(eg5_protein_ligand_universe, eg5_ligands): assert -0.02396901 == pytest.approx(restraint_geometry.phi_C0.to("radians").m) -zenodo_restraint_data = pooch.create( - path=POOCH_CACHE, - base_url="doi:10.5281/zenodo.15212342", - registry={ - "industry_benchmark_systems.zip": "sha256:2bb5eee36e29b718b96bf6e9350e0b9957a592f6c289f77330cbb6f4311a07bd" - }, -) - - @pytest.fixture def industry_benchmark_files(): - zenodo_restraint_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) + zenodo_industry_benchmarks_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) cache_dir = pathlib.Path( POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" ) diff --git a/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py b/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py index d5189fe13..1c3121f1f 100644 --- a/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py +++ b/src/openfe/tests/protocols/restraints/test_geometry_boresch_host.py @@ -26,14 +26,6 @@ from ...conftest import HAS_INTERNET, POOCH_CACHE -zenodo_restraint_data = pooch.create( - path=POOCH_CACHE, - base_url="doi:10.5281/zenodo.15212342", - registry={ - "t4_lysozyme_trajectory.zip": "sha256:e985d055db25b5468491e169948f641833a5fbb67a23dbb0a00b57fb7c0e59c8" - }, -) - @pytest.fixture def eg5_protein_ligand_universe(eg5_protein_pdb, eg5_ligands): diff --git a/src/openfe/tests/protocols/restraints/test_omm_restraints.py b/src/openfe/tests/protocols/restraints/test_omm_restraints.py index fc3b3d4a7..b455eb8b8 100644 --- a/src/openfe/tests/protocols/restraints/test_omm_restraints.py +++ b/src/openfe/tests/protocols/restraints/test_omm_restraints.py @@ -29,6 +29,7 @@ ) from ...conftest import HAS_INTERNET, POOCH_CACHE +from ..conftest import zenodo_industry_benchmarks_data def test_parameter_state_default(): @@ -98,18 +99,9 @@ def test_verify_geometry(): restraint._verify_geometry(geometry) -zenodo_restraint_data = pooch.create( - path=POOCH_CACHE, - base_url="doi:10.5281/zenodo.15212342", - registry={ - "industry_benchmark_systems.zip": "sha256:2bb5eee36e29b718b96bf6e9350e0b9957a592f6c289f77330cbb6f4311a07bd" - }, -) - - @pytest.fixture def tyk2_protein_ligand_system(): - zenodo_restraint_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) + zenodo_industry_benchmarks_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) cache_dir = pathlib.Path( POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" ) @@ -119,7 +111,7 @@ def tyk2_protein_ligand_system(): @pytest.fixture def tyk2_rdkit_ligand(): - zenodo_restraint_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) + zenodo_industry_benchmarks_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) cache_dir = pathlib.Path( POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" ) diff --git a/src/openfe/tests/protocols/test_openmmutils.py b/src/openfe/tests/protocols/test_openmmutils.py index 70933d7e5..46528f912 100644 --- a/src/openfe/tests/protocols/test_openmmutils.py +++ b/src/openfe/tests/protocols/test_openmmutils.py @@ -1033,24 +1033,6 @@ def test_openeye_import_error(self, monkeypatch, uncharged_mol): ) -RFE_OUTPUT = pooch.create( - path=POOCH_CACHE, - base_url="doi:10.5281/zenodo.15375081", - registry={ - "checkpoint.nc": "md5:3cfd70a4cbe463403d6ec7cca84fc31a", - "db.json": "md5:33c8c1a0b629a52dcc291beff59fabc6", - "hybrid_system.pdb": "md5:44a1e78294360037acf419b95be18fb3", - "simulation.nc": "md5:bc4e842b47de17704d804ae345b91599", - "simulation_real_time_analysis.yaml": "md5:68a7d81462c42353a91bbbe5e64fd418", - }, -) - - -@pytest.fixture -def simulation_nc(): - return RFE_OUTPUT.fetch("simulation.nc") - - @pytest.mark.slow @pytest.mark.skipif( not os.path.exists(POOCH_CACHE) and not HAS_INTERNET, From c55f97e6bae1a60370e574c5092e0ac4704f1522 Mon Sep 17 00:00:00 2001 From: Alyssa Travitz Date: Wed, 28 Jan 2026 16:05:59 -0800 Subject: [PATCH 4/4] remove duplicate code --- src/openfe/tests/protocols/conftest.py | 9 ++++++++ .../restraints/test_geometry_boresch.py | 10 --------- .../restraints/test_omm_restraints.py | 21 ++++++------------- 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/src/openfe/tests/protocols/conftest.py b/src/openfe/tests/protocols/conftest.py index eb4691f59..cfd225a98 100644 --- a/src/openfe/tests/protocols/conftest.py +++ b/src/openfe/tests/protocols/conftest.py @@ -293,6 +293,15 @@ def septop_json() -> str: ) +@pytest.fixture +def industry_benchmark_files(): + zenodo_industry_benchmarks_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) + cache_dir = pathlib.Path( + POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" + ) + return cache_dir + + zenodo_restraint_data = pooch.create( path=POOCH_CACHE, base_url="doi:10.5281/zenodo.15212342", diff --git a/src/openfe/tests/protocols/restraints/test_geometry_boresch.py b/src/openfe/tests/protocols/restraints/test_geometry_boresch.py index 9f724f66d..493de92ac 100644 --- a/src/openfe/tests/protocols/restraints/test_geometry_boresch.py +++ b/src/openfe/tests/protocols/restraints/test_geometry_boresch.py @@ -15,7 +15,6 @@ ) from ...conftest import HAS_INTERNET, POOCH_CACHE -from ..conftest import zenodo_industry_benchmarks_data @pytest.fixture() @@ -236,15 +235,6 @@ def test_get_boresch_restraint_dssp(eg5_protein_ligand_universe, eg5_ligands): assert -0.02396901 == pytest.approx(restraint_geometry.phi_C0.to("radians").m) -@pytest.fixture -def industry_benchmark_files(): - zenodo_industry_benchmarks_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) - cache_dir = pathlib.Path( - POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" - ) - return cache_dir - - @pytest.mark.skipif( not os.path.exists(POOCH_CACHE) and not HAS_INTERNET, reason="Internet seems to be unavailable and test data is not cached locally.", diff --git a/src/openfe/tests/protocols/restraints/test_omm_restraints.py b/src/openfe/tests/protocols/restraints/test_omm_restraints.py index b455eb8b8..99ad1b5fa 100644 --- a/src/openfe/tests/protocols/restraints/test_omm_restraints.py +++ b/src/openfe/tests/protocols/restraints/test_omm_restraints.py @@ -2,10 +2,8 @@ # For details, see https://github.com/OpenFreeEnergy/openfe import os -import pathlib import openmm -import pooch import pytest from gufe import SmallMoleculeComponent from openff.units import unit @@ -29,7 +27,6 @@ ) from ...conftest import HAS_INTERNET, POOCH_CACHE -from ..conftest import zenodo_industry_benchmarks_data def test_parameter_state_default(): @@ -100,23 +97,17 @@ def test_verify_geometry(): @pytest.fixture -def tyk2_protein_ligand_system(): - zenodo_industry_benchmarks_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) - cache_dir = pathlib.Path( - POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" - ) - with open(str(cache_dir / "jacs_set" / "tyk2" / "protein_ligand_system.xml")) as xml: +def tyk2_protein_ligand_system(industry_benchmark_files): + with open( + str(industry_benchmark_files / "jacs_set" / "tyk2" / "protein_ligand_system.xml") + ) as xml: return openmm.XmlSerializer.deserialize(xml.read()) @pytest.fixture -def tyk2_rdkit_ligand(): - zenodo_industry_benchmarks_data.fetch("industry_benchmark_systems.zip", processor=pooch.Unzip()) - cache_dir = pathlib.Path( - POOCH_CACHE / "industry_benchmark_systems.zip.unzip/industry_benchmark_systems" - ) +def tyk2_rdkit_ligand(industry_benchmark_files): ligand = SmallMoleculeComponent.from_sdf_file( - str(cache_dir / "jacs_set" / "tyk2" / "test_ligand.sdf") + str(industry_benchmark_files / "jacs_set" / "tyk2" / "test_ligand.sdf") ) return ligand.to_rdkit()