Skip to content

Commit

Permalink
Add protein-ligand complex testing (#61)
Browse files Browse the repository at this point in the history
* reuse hybrid topology atom list. Optimization

* Short protein-ligand complex test implemented. Marked as slow.
  • Loading branch information
ijpulidos authored Aug 19, 2024
1 parent eddaf1d commit b3f230a
Show file tree
Hide file tree
Showing 6 changed files with 5,501 additions and 6 deletions.
52 changes: 51 additions & 1 deletion feflow/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def benzene_modifications(gufe_data_dir):
# Components fixtures


@pytest.fixture
@pytest.fixture(scope="session")
def solvent_comp():
yield gufe.SolventComponent(positive_ion="Na", negative_ion="Cl")

Expand All @@ -65,6 +65,24 @@ def toluene(benzene_modifications):
return gufe.SmallMoleculeComponent(benzene_modifications["toluene"])


@pytest.fixture(scope="session")
def tyk2_protein():
filepath = files("feflow.tests.data").joinpath("tyk2_protein.pdb")
return gufe.ProteinComponent.from_pdb_file(str(filepath))


@pytest.fixture(scope="session")
def tyk2_ligand_ejm_54():
filepath = files("feflow.tests.data").joinpath("tyk2_lig_ejm_54.sdf")
return gufe.SmallMoleculeComponent.from_sdf_file(str(filepath))


@pytest.fixture(scope="session")
def tyk2_ligand_ejm_46():
filepath = files("feflow.tests.data").joinpath("tyk2_lig_ejm_46.sdf")
return gufe.SmallMoleculeComponent.from_sdf_file(str(filepath))


# Systems fixtures


Expand All @@ -88,6 +106,20 @@ def toluene_solvent_system(toluene, solvent_comp):
return gufe.ChemicalSystem({"ligand": toluene, "solvent": solvent_comp})


@pytest.fixture
def tyk2_lig_ejm_46_complex(tyk2_protein, tyk2_ligand_ejm_46, solvent_comp):
return gufe.ChemicalSystem(
{"protein": tyk2_protein, "ligand": tyk2_ligand_ejm_46, "solvent": solvent_comp}
)


@pytest.fixture
def tyk2_lig_ejm_54_complex(tyk2_protein, tyk2_ligand_ejm_54, solvent_comp):
return gufe.ChemicalSystem(
{"protein": tyk2_protein, "ligand": tyk2_ligand_ejm_54, "solvent": solvent_comp}
)


# Settings fixtures


Expand All @@ -103,6 +135,7 @@ def short_settings():
settings.integrator_settings.nonequilibrium_steps = 250
settings.work_save_frequency = 50
settings.traj_save_frequency = 250
settings.num_cycles = 1

return settings

Expand Down Expand Up @@ -218,3 +251,20 @@ def broken_mapping(benzene, toluene):
componentA_to_componentB=broken_mapping,
)
return broken_mapping_obj


@pytest.fixture
def mapping_tyk2_54_to_46(tyk2_ligand_ejm_54, tyk2_ligand_ejm_46):
"""
Mapping object from ligand ejm_54 to ejm_46 for the Tyk2 dataset.
It generates the mapping on runtime using the Kartograf mapper.
"""
from kartograf import KartografAtomMapper

atom_mapper = KartografAtomMapper()
mapping_obj = next(
atom_mapper.suggest_mappings(tyk2_ligand_ejm_54, tyk2_ligand_ejm_46)
)

return mapping_obj
206 changes: 206 additions & 0 deletions feflow/tests/data/tyk2_lig_ejm_46.sdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
lig_ejm_46
3D
Schrodinger Suite 2022-3.
36 38 0 0 1 0 999 V2000
-4.7641 -2.8360 -16.5091 H 0 0 0 0 0 0
-5.3551 -3.6988 -16.2343 C 0 0 0 0 0 0
-4.7691 -4.9763 -16.2133 C 0 0 0 0 0 0
-5.5322 -6.1012 -15.8489 C 0 0 0 0 0 0
-6.8971 -5.9556 -15.4808 C 0 0 0 0 0 0
-7.4860 -4.6658 -15.5235 C 0 0 0 0 0 0
-6.7149 -3.5494 -15.9013 C 0 0 0 0 0 0
-7.1642 -2.5677 -15.9366 H 0 0 0 0 0 0
-9.1609 -4.4168 -15.1573 Cl 0 0 0 0 0 0
-7.7099 -7.1391 -15.0412 C 0 0 0 0 0 0
-8.1270 -7.2082 -13.8848 O 0 0 0 0 0 0
-7.9085 -8.0557 -16.0048 N 0 0 0 0 0 0
-7.4364 -7.8700 -16.8774 H 0 0 0 0 0 0
-8.7302 -9.2129 -16.0071 C 0 0 0 0 0 0
-9.5845 -9.6010 -14.9550 C 0 0 0 0 0 0
-10.3859 -10.7400 -15.1393 C 0 0 0 0 0 0
-10.3615 -11.5002 -16.2562 N 0 0 0 0 0 0
-9.5413 -11.1483 -17.2750 C 0 0 0 0 0 0
-8.7209 -9.9970 -17.1753 C 0 0 0 0 0 0
-8.0953 -9.6795 -17.9932 H 0 0 0 0 0 0
-9.5567 -11.9338 -18.4642 N 0 0 0 0 0 0
-10.3627 -12.5404 -18.5590 H 0 0 0 0 0 0
-8.6358 -12.0325 -19.4477 C 0 0 0 0 0 0
-7.5743 -11.4049 -19.4949 O 0 0 0 0 0 0
-9.0140 -13.0112 -20.5101 C 0 0 0 0 0 0
-8.6036 -12.7155 -21.9369 C 0 0 0 0 0 0
-7.9023 -13.8059 -21.1663 C 0 0 0 0 0 0
-8.1243 -14.8374 -21.4290 H 0 0 0 0 0 0
-6.8721 -13.6163 -20.8685 H 0 0 0 0 0 0
-8.0346 -11.8121 -22.1455 H 0 0 0 0 0 0
-9.3177 -12.9952 -22.7091 H 0 0 0 0 0 0
-9.9630 -13.5266 -20.3808 H 0 0 0 0 0 0
-11.0715 -11.0494 -14.3644 H 0 0 0 0 0 0
-9.6709 -9.0420 -14.0358 H 0 0 0 0 0 0
-4.7565 -7.6418 -15.8644 Cl 0 0 0 0 0 0
-3.7260 -5.0905 -16.4764 H 0 0 0 0 0 0
1 2 1 0 0 0
2 7 1 0 0 0
2 3 2 0 0 0
3 4 1 0 0 0
3 36 1 0 0 0
4 5 2 0 0 0
4 35 1 0 0 0
5 6 1 0 0 0
5 10 1 0 0 0
6 7 2 0 0 0
6 9 1 0 0 0
7 8 1 0 0 0
10 11 2 0 0 0
10 12 1 0 0 0
12 13 1 0 0 0
12 14 1 0 0 0
14 19 1 0 0 0
14 15 2 0 0 0
15 16 1 0 0 0
15 34 1 0 0 0
16 17 2 0 0 0
16 33 1 0 0 0
17 18 1 0 0 0
18 19 2 0 0 0
18 21 1 0 0 0
19 20 1 0 0 0
21 22 1 0 0 0
21 23 1 0 0 0
23 24 2 0 0 0
23 25 1 0 0 0
25 27 1 0 0 0
25 26 1 0 0 0
25 32 1 0 0 0
26 27 1 0 0 0
26 30 1 0 0 0
26 31 1 0 0 0
27 28 1 0 0 0
27 29 1 0 0 0
M END
> <s_m_source_file>
ligprep_tyk2.smi

> <i_m_source_file_index>
6

> <i_lp_mmshare_version>
53161

> <i_f3d_flags>
0

> <s_epik_input>
Q2xjMVtjSF1bY0hdW2NIXWMoQ2wpYzFDKD1PKVtOSF1jMltjSF1bY0hdbmMoW2NIXTIpW05IXUMoPU8pW0NIXTNbQ0gyXVtDSDJdMw==

> <s_epik_cmdline>
J2VwaWtfcHl0aG9uJywgJy1waHQnLCAnMC4wJywgJy1waCcsICc3LjQnLCAnLXRuJywgJzgnLCAnLW1hJywgJzUwMCcsICctaW1hZScsICc8aW5maWxlLm1hZT4nLCAnLW9tYWUnLCAnPG91dGZpbGUubWFlPic=

> <r_lp_tautomer_probability>
1

> <r_epik_Ionization_Penalty>
0.0034

> <r_epik_Ionization_Penalty_Charging>
0.0000

> <r_epik_Ionization_Penalty_Neutral>
0.0034

> <r_epik_State_Penalty>
-0.0000

> <r_epik_Charging_Adjusted_Penalty>
0

> <i_epik_Tot_Q>
0

> <i_epik_Tot_abs_Q>
0

> <s_lp_Force_Field>
S-OPLS

> <r_lp_Energy>
49.5212

> <b_lp_Chiralities_Consistent>
1

> <s_lp_Variant>
lig_ejm_46-1

> <s_i_glide_gridfile>
glide-grid_TYK2-4GIH

> <i_i_glide_lignum>
6

> <i_i_glide_rotatable_bonds>
6

> <r_i_docking_score>
-9.61568735798166

> <r_i_glide_ligand_efficiency>
-0.418073363390507

> <r_i_glide_ligand_efficiency_sa>
-1.1889450320591

> <r_i_glide_ligand_efficiency_ln>
-2.32516039339236

> <r_i_glide_gscore>
-9.61568735798166

> <r_i_glide_lipo>
-3.62915830081149

> <r_i_glide_hbond>
-0.57340247290156

> <r_i_glide_metal>
-0

> <r_i_glide_rewards>
-2.28077531878579

> <r_i_glide_evdw>
-50.9746627807617

> <r_i_glide_ecoul>
-8.24195003509521

> <r_i_glide_erotb>
0.65267437881954

> <r_i_glide_esite>
0

> <r_i_glide_emodel>
-102.027343960114

> <r_i_glide_energy>
-59.2166128158569

> <r_i_glide_einternal>
6.72696387482574e-07

> <i_i_glide_confnum>
1

> <i_i_glide_posenum>
2

> <r_i_glide_eff_state_penalty>
-0

> <r_i_glide_rmsd>
0.0499811632888399

> <s_glide_core_constrain_type>
snapped_core_restrain

$$$$
Loading

0 comments on commit b3f230a

Please sign in to comment.