Skip to content

Commit 2a34f3d

Browse files
committed
Add loader aggregation and metadata smoke tests
1 parent 1f931d4 commit 2a34f3d

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
from pathlib import Path
2+
3+
from flexaidds.results import load_results
4+
5+
6+
def _write_pdb(path: Path, remarks: list[str]) -> None:
7+
lines = [f"REMARK {line}\n" for line in remarks]
8+
lines.extend(
9+
[
10+
"ATOM 1 C LIG A 1 0.000 0.000 0.000 1.00 0.00 C\n",
11+
"END\n",
12+
]
13+
)
14+
path.parent.mkdir(parents=True, exist_ok=True)
15+
path.write_text("".join(lines), encoding="utf-8")
16+
17+
18+
def test_load_results_records_top_mode_and_recursive_count(tmp_path: Path) -> None:
19+
_write_pdb(
20+
tmp_path / "nested" / "binding_mode_1_pose_1.pdb",
21+
[
22+
"binding_mode = 1",
23+
"pose_rank = 1",
24+
"CF = -42.5",
25+
"free_energy = -41.0",
26+
"enthalpy = -40.0",
27+
"entropy = 0.0033",
28+
"temperature = 300.0",
29+
],
30+
)
31+
_write_pdb(
32+
tmp_path / "nested" / "binding_mode_1_pose_2.pdb",
33+
[
34+
"binding_mode = 1",
35+
"pose_rank = 2",
36+
"CF = -39.0",
37+
"temperature = 300.0",
38+
],
39+
)
40+
_write_pdb(
41+
tmp_path / "binding_mode_2_pose_1.pdb",
42+
[
43+
"binding_mode = 2",
44+
"pose_rank = 1",
45+
"CF = -35.0",
46+
"free_energy = -34.2",
47+
"temperature = 300.0",
48+
],
49+
)
50+
51+
result = load_results(tmp_path)
52+
records = result.to_records()
53+
54+
assert result.metadata["n_pose_files"] == 3
55+
assert result.top_mode().mode_id == 1
56+
assert len(records) == 2
57+
assert records[0]["mode_id"] == 1
58+
assert records[0]["n_poses"] == 2
59+
assert records[0]["best_cf"] == -42.5
60+
assert records[0]["best_pose_path"].endswith("binding_mode_1_pose_1.pdb")
61+
62+
63+
def test_load_results_promotes_frequency_metadata_to_mode_level(tmp_path: Path) -> None:
64+
_write_pdb(
65+
tmp_path / "binding_mode_3_pose_1.pdb",
66+
[
67+
"binding_mode = 3",
68+
"pose_rank = 1",
69+
"CF = -20.0",
70+
"frequency = 7",
71+
"temperature = 298.15",
72+
],
73+
)
74+
_write_pdb(
75+
tmp_path / "binding_mode_3_pose_2.pdb",
76+
[
77+
"binding_mode = 3",
78+
"pose_rank = 2",
79+
"CF = -18.0",
80+
"frequency = 7",
81+
"temperature = 298.15",
82+
],
83+
)
84+
85+
result = load_results(tmp_path)
86+
mode = result.binding_modes[0]
87+
88+
assert mode.mode_id == 3
89+
assert mode.n_poses == 2
90+
assert mode.frequency == 7
91+
assert mode.metadata["frequency"] == 7

0 commit comments

Comments
 (0)