Skip to content

Commit 03c4834

Browse files
committed
Default to optimise_angles=False
1 parent 8dc91b1 commit 03c4834

2 files changed

Lines changed: 17 additions & 6 deletions

File tree

src/ghostly/_cli.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,12 @@ def run():
115115
action=argparse.BooleanOptionalAction,
116116
help="""
117117
Whether to optimise the equilibrium value of the angle terms involving
118-
ghost atoms for non-planar triple junctions.
118+
ghost atoms for non-planar triple junctions. Disabled by default due
119+
to conformer dependence: different input geometries can yield different
120+
equilibrium angles, adding variability to the resulting force field.
121+
Enable for simple, symmetric cases to follow Boresch et al. strictly.
119122
""",
120-
default=True,
123+
default=False,
121124
required=False,
122125
)
123126

src/ghostly/_ghostly.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def modify(
4848
system,
4949
k_hard=100,
5050
k_soft=5,
51-
optimise_angles=True,
51+
optimise_angles=False,
5252
num_optimise=10,
5353
soften_anchors=1.0,
5454
stiffen_rotamers=False,
@@ -83,7 +83,15 @@ def modify(
8383
8484
optimise_angles : bool, optional
8585
Whether to optimise the equilibrium value of the angle terms involving
86-
ghost atoms for non-planar triple junctions.
86+
ghost atoms for non-planar triple junctions. Boresch et al. (JCTC 2021)
87+
recommend finding theta0 by minimisation with very low force constants,
88+
but this was validated on ammonia — a small symmetric molecule with a
89+
unique minimum. For complex drug-like molecules, minimisation is
90+
conformer-dependent: different input geometries give different theta0
91+
values, adding variability to the resulting force field. The original
92+
force field theta0 reflects the physical end-state equilibrium geometry
93+
and is sufficient given the small k_soft value. Defaults to False;
94+
set True to follow Boresch strictly for simple, symmetric cases.
8795
8896
num_optimise : int, optional
8997
The number of repeats to average over when optimising the equilibrium
@@ -1127,7 +1135,7 @@ def _triple(
11271135
modifications,
11281136
k_hard=100,
11291137
k_soft=5,
1130-
optimise_angles=True,
1138+
optimise_angles=False,
11311139
num_optimise=10,
11321140
is_lambda1=False,
11331141
bridge_indices=None,
@@ -1612,7 +1620,7 @@ def _higher(
16121620
modifications,
16131621
k_hard=100,
16141622
k_soft=5,
1615-
optimise_angles=True,
1623+
optimise_angles=False,
16161624
num_optimise=10,
16171625
is_lambda1=False,
16181626
):

0 commit comments

Comments
 (0)