Skip to content

Commit 8c87b1b

Browse files
committed
minor merge conflicts
2 parents a10a42c + 9fb29e3 commit 8c87b1b

File tree

7 files changed

+358
-133
lines changed

7 files changed

+358
-133
lines changed

.github/workflows/CI.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
shell: bash -l {0}
5454

5555
run: |
56-
pytest -v --cov=blues --cov-report=xml --color=yes blues/tests/test_propane.py blues/tests/test_randomrotation.py blues/tests/test_randomrotation.py blues/tests/test_watertranslation.py
56+
pytest -v --cov=blues --cov-report=xml --color=yes blues/tests/test_propane.py blues/tests/test_randomrotation.py blues/tests/test_watertranslation.py
5757
5858
- name: CodeCov
5959
uses: codecov/codecov-action@v4

blues/moves.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ class RandomLigandRotationMove(Move):
160160
ParmEd Structure object of the relevant system to be moved.
161161
random_state : integer or numpy.RandomState, optional
162162
The generator used for random numbers. If an integer is given, it fixes the seed. Defaults to the global numpy random number generator.
163-
163+
ligand_indices : list of int, optional
164+
List of atom indices identifying the ligand to be rotated. If provided, overrides `resname` selection.
164165
Attributes
165166
----------
166167
structure : parmed.Structure
@@ -190,17 +191,21 @@ class RandomLigandRotationMove(Move):
190191
'LIG'
191192
"""
192193

193-
def __init__(self, structure, resname='LIG', random_state=None):
194+
def __init__(self, structure, resname='LIG', ligand_indices=None, random_state=None):
194195
self.structure = structure
195196
self.resname = resname
196197
self.random_state = random_state
197198
self.atom_indices = self.getAtomIndices(structure, self.resname)
198-
#atom_indices_1based = [i + 1 for i in self.atom_indices]
199+
self.ligand_indices = ligand_indices
199200
self.topology = structure[self.atom_indices].topology
200201
self.totalmass = 0
201202
self.masses = []
202203
self.center_of_mass = None
203204
self.positions = structure[self.atom_indices].positions
205+
if self.ligand_indices:
206+
self.topology = structure[self.ligand_indices].topology
207+
self.positions = structure[self.ligand_indices].positions
208+
204209
self._calculateProperties()
205210

206211
def getAtomIndices(self, structure, resname):

blues/tests/data/propane.pdb

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
1-
HETATM 1 C1 LIG 1 1.236 -0.188 0.286 1.00 0.00 C
2-
HETATM 2 C2 LIG 1 -0.010 -0.181 -0.595 1.00 0.00 C
3-
HETATM 3 C3 LIG 1 -1.228 0.327 0.171 1.00 0.00 C
4-
HETATM 4 H1 LIG 1 2.102 -0.562 -0.299 1.00 0.00 H
5-
HETATM 5 H2 LIG 1 1.085 -0.854 1.162 1.00 0.00 H
6-
HETATM 6 H3 LIG 1 1.463 0.840 0.640 1.00 0.00 H
7-
HETATM 7 H4 LIG 1 -0.209 -1.213 -0.958 1.00 0.00 H
8-
HETATM 8 H5 LIG 1 0.168 0.472 -1.477 1.00 0.00 H
9-
HETATM 9 H6 LIG 1 -2.116 0.320 -0.496 1.00 0.00 H
10-
HETATM 10 H7 LIG 1 -1.056 1.366 0.523 1.00 0.00 H
11-
HETATM 11 H8 LIG 1 -1.435 -0.327 1.044 1.00 0.00 H
1+
REMARK 1 PDBFIXER FROM: propane.pdb
2+
REMARK 1 CREATED WITH OPENMM 8.2, 2025-06-25
3+
HETATM 1 C1 LIG 1 1.236 -0.188 0.286 1.00 0.00 C
4+
HETATM 2 C2 LIG 1 -0.010 -0.181 -0.595 1.00 0.00 C
5+
HETATM 3 C3 LIG 1 -1.228 0.327 0.171 1.00 0.00 C
6+
HETATM 4 H1 LIG 1 2.102 -0.562 -0.299 1.00 0.00 H
7+
HETATM 5 H2 LIG 1 1.085 -0.854 1.162 1.00 0.00 H
8+
HETATM 6 H3 LIG 1 1.463 0.840 0.640 1.00 0.00 H
9+
HETATM 7 H4 LIG 1 -0.209 -1.213 -0.958 1.00 0.00 H
10+
HETATM 8 H5 LIG 1 0.168 0.472 -1.477 1.00 0.00 H
11+
HETATM 9 H6 LIG 1 -2.116 0.320 -0.496 1.00 0.00 H
12+
HETATM 10 H7 LIG 1 -1.056 1.366 0.523 1.00 0.00 H
13+
HETATM 11 H8 LIG 1 -1.435 -0.327 1.044 1.00 0.00 H
14+
CONECT 1 5 6 2 4
15+
CONECT 2 7 1 8 3
16+
CONECT 3 2 9 10 11
17+
CONECT 4 1
18+
CONECT 5 1
19+
CONECT 6 1
20+
CONECT 7 2
21+
CONECT 8 2
22+
CONECT 9 3
23+
CONECT 10 3
24+
CONECT 11 3
1225
END

blues/tests/data/toluene.inpcrd

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
15 0.0000000e+00
3+
1.6505151 2.3553057 0.2462374 0.7973633 1.1386719 0.1192017
4+
0.4377441 0.6679687 -1.1435547 -0.3596191 -0.4704590 -1.2626953
5+
-0.7973633 -1.1386719 -0.1192627 -0.4377441 -0.6679687 1.1435547
6+
0.3596191 0.4704590 1.2626953 2.7125959 2.0887830 0.2582531
7+
1.4384768 2.8850422 1.1811140 1.4649291 3.0316851 -0.5937200
8+
0.7728785 1.1821948 -2.0403757 -0.6393896 -0.8371950 -2.2460353
9+
-1.4178188 -2.0250971 -0.2121662 -0.7776626 -1.1885103 2.0337892
10+
0.6345623 0.8301715 2.2507930
11+
50.0000000 50.0000000 50.0000000 90.0000000 90.0000000 90.0000000
12+

blues/tests/data/toluene.prmtop

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
%VERSION VERSION_STAMP = V0001.000 DATE = 09/03/25 09:34:25
2+
%FLAG TITLE
3+
%FORMAT(20a4)
4+
5+
%FLAG POINTERS
6+
%FORMAT(10I8)
7+
15 4 8 7 16 8 37 11 0 0
8+
68 1 7 8 11 4 4 3 1 0
9+
0 0 0 0 0 0 0 1 15 0
10+
0 0
11+
%FLAG ATOM_NAME
12+
%FORMAT(20a4)
13+
C C C C C C C H H H H H H H H
14+
%FLAG CHARGE
15+
%FORMAT(5E16.8)
16+
-9.83457561E-01 -1.40093043E+00 -2.37910341E+00 -2.31277431E+00 -2.46073939E+00
17+
-2.31277431E+00 -2.37910341E+00 7.97407878E-01 7.97407878E-01 7.97407878E-01
18+
2.37072117E+00 2.36452560E+00 2.36616566E+00 2.36452560E+00 2.37072117E+00
19+
%FLAG ATOMIC_NUMBER
20+
%FORMAT(10I8)
21+
6 6 6 6 6 6 6 1 1 1
22+
1 1 1 1 1
23+
%FLAG MASS
24+
%FORMAT(5E16.8)
25+
1.20107800E+01 1.20107800E+01 1.20107800E+01 1.20107800E+01 1.20107800E+01
26+
1.20107800E+01 1.20107800E+01 1.00794700E+00 1.00794700E+00 1.00794700E+00
27+
1.00794700E+00 1.00794700E+00 1.00794700E+00 1.00794700E+00 1.00794700E+00
28+
%FLAG ATOM_TYPE_INDEX
29+
%FORMAT(10I8)
30+
1 2 2 2 2 2 2 3 3 3
31+
4 4 4 4 4
32+
%FLAG NUMBER_EXCLUDED_ATOMS
33+
%FORMAT(10I8)
34+
10 12 11 7 7 5 7 2 1 1
35+
1 1 1 1 1
36+
%FLAG NONBONDED_PARM_INDEX
37+
%FORMAT(10I8)
38+
1 2 4 7 2 3 5 8 4 5
39+
6 9 7 8 9 10
40+
%FLAG RESIDUE_LABEL
41+
%FORMAT(20a4)
42+
LIG
43+
%FLAG RESIDUE_POINTER
44+
%FORMAT(10I8)
45+
1
46+
%FLAG BOND_FORCE_CONSTANT
47+
%FORMAT(5E16.8)
48+
2.39369568E+02 3.57819147E+02 3.76875721E+02 3.86439937E+02
49+
%FLAG BOND_EQUIL_VALUE
50+
%FORMAT(5E16.8)
51+
1.50959129E+00 1.09420646E+00 1.40070606E+00 1.08603611E+00
52+
%FLAG ANGLE_FORCE_CONSTANT
53+
%FORMAT(5E16.8)
54+
8.45476578E+01 6.67563183E+01 3.29223773E+01 3.67766379E+01
55+
%FLAG ANGLE_EQUIL_VALUE
56+
%FORMAT(5E16.8)
57+
2.09622769E+00 1.91878099E+00 2.09185540E+00 1.89113953E+00
58+
%FLAG DIHEDRAL_FORCE_CONSTANT
59+
%FORMAT(5E16.8)
60+
3.26847485E+00 1.89899006E-01 1.74359686E+00
61+
%FLAG DIHEDRAL_PERIODICITY
62+
%FORMAT(5E16.8)
63+
2.00000000E+00 3.00000000E+00 2.00000000E+00
64+
%FLAG DIHEDRAL_PHASE
65+
%FORMAT(5E16.8)
66+
3.14159265E+00 0.00000000E+00 3.14159265E+00
67+
%FLAG SCEE_SCALE_FACTOR
68+
%FORMAT(5E16.8)
69+
1.20000000E+00 1.20000000E+00 1.20000000E+00
70+
%FLAG SCNB_SCALE_FACTOR
71+
%FORMAT(5E16.8)
72+
2.00000000E+00 2.00000000E+00 2.00000000E+00
73+
%FLAG SOLTY
74+
%FORMAT(5E16.8)
75+
0.00000000E+00
76+
%FLAG LENNARD_JONES_ACOEF
77+
%FORMAT(5E16.8)
78+
9.66338652E+05 1.03176034E+06 1.09874263E+06 9.24328843E+04 1.00841583E+05
79+
7.38518138E+03 7.95920949E+04 8.70408503E+04 6.23220052E+03 5.24722927E+03
80+
%FLAG LENNARD_JONES_BCOEF
81+
%FORMAT(5E16.8)
82+
6.48619732E+02 6.33499463E+02 6.17925587E+02 1.23783906E+02 1.22208696E+02
83+
2.15902147E+01 1.14557301E+02 1.13235010E+02 1.97803496E+01 1.81015245E+01
84+
%FLAG BONDS_INC_HYDROGEN
85+
%FORMAT(10I8)
86+
0 21 2 0 24 2 0 27 2 6
87+
30 4 9 33 4 12 36 4 15 39
88+
4 18 42 4
89+
%FLAG BONDS_WITHOUT_HYDROGEN
90+
%FORMAT(10I8)
91+
0 3 1 3 6 3 3 18 3 6
92+
9 3 9 12 3 12 15 3 15 18
93+
3
94+
%FLAG ANGLES_INC_HYDROGEN
95+
%FORMAT(10I8)
96+
3 0 21 2 3 0 24 2 3 0
97+
27 2 3 6 30 3 3 18 42 3
98+
6 9 33 3 9 6 30 3 9 12
99+
36 3 12 9 33 3 12 15 39 3
100+
15 12 36 3 15 18 42 3 18 15
101+
39 3 21 0 24 4 21 0 27 4
102+
24 0 27 4
103+
%FLAG ANGLES_WITHOUT_HYDROGEN
104+
%FORMAT(10I8)
105+
0 3 6 1 0 3 18 1 3 6
106+
9 1 3 18 15 1 6 3 18 1
107+
6 9 12 1 9 12 15 1 12 15
108+
18 1
109+
%FLAG DIHEDRALS_INC_HYDROGEN
110+
%FORMAT(10I8)
111+
0 3 6 30 1 0 3 18 42 1
112+
3 6 9 33 1 3 18 15 39 1
113+
21 0 3 6 2 24 0 3 6 2
114+
27 0 3 6 2 6 3 18 42 1
115+
6 9 12 36 1 9 12 15 39 1
116+
12 9 6 30 1 12 15 18 42 1
117+
15 12 9 33 1 21 0 3 18 2
118+
24 0 3 18 2 27 0 3 18 2
119+
18 3 6 30 1 18 15 12 36 1
120+
30 6 9 33 1 33 9 12 36 1
121+
36 12 15 39 1 39 15 18 42 1
122+
6 3 -9 -30 3 6 9 -30 -3 3
123+
6 30 -3 -9 3 18 3 -15 -42 3
124+
18 15 -42 -3 3 18 42 -3 -15 3
125+
9 6 -12 -33 3 9 12 -33 -6 3
126+
9 33 -6 -12 3 12 9 -15 -36 3
127+
12 15 -36 -9 3 12 36 -9 -15 3
128+
15 12 -18 -39 3 15 18 -39 -12 3
129+
15 39 -12 -18 3
130+
%FLAG DIHEDRALS_WITHOUT_HYDROGEN
131+
%FORMAT(10I8)
132+
0 3 6 9 1 0 3 18 15 1
133+
3 6 9 12 1 3 18 -15 12 1
134+
6 3 18 15 1 6 9 -12 15 1
135+
9 6 3 18 1 9 12 -15 18 1
136+
3 0 -6 -18 3 3 6 -18 0 3
137+
3 18 0 -6 3
138+
%FLAG EXCLUDED_ATOMS_LIST
139+
%FORMAT(10I8)
140+
2 3 4 6 7 8 9 10 11 15
141+
3 4 5 6 7 8 9 10 11 12
142+
14 15 4 5 6 7 8 9 10 11
143+
12 13 15 5 6 7 11 12 13 14
144+
6 7 11 12 13 14 15 7 12 13
145+
14 15 8 9 10 11 13 14 15 9
146+
10 10 0 12 13 14 15 0
147+
%FLAG HBOND_ACOEF
148+
%FORMAT(5E16.8)
149+
150+
%FLAG HBOND_BCOEF
151+
%FORMAT(5E16.8)
152+
153+
%FLAG HBCUT
154+
%FORMAT(5E16.8)
155+
156+
%FLAG AMBER_ATOM_TYPE
157+
%FORMAT(20a4)
158+
C1 C2 C3 C4 C5 C6 C7 H1 H2 H3 H4 H5 H6 H7 H8
159+
%FLAG TREE_CHAIN_CLASSIFICATION
160+
%FORMAT(20a4)
161+
BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA
162+
%FLAG JOIN_ARRAY
163+
%FORMAT(10I8)
164+
0 0 0 0 0 0 0 0 0 0
165+
0 0 0 0 0
166+
%FLAG IROTAT
167+
%FORMAT(10I8)
168+
0 0 0 0 0 0 0 0 0 0
169+
0 0 0 0 0
170+
%FLAG SOLVENT_POINTERS
171+
%FORMAT(3I8)
172+
1 1 2
173+
%FLAG ATOMS_PER_MOLECULE
174+
%FORMAT(10I8)
175+
15
176+
%FLAG BOX_DIMENSIONS
177+
%FORMAT(5E16.8)
178+
9.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01
179+
%FLAG RADIUS_SET
180+
%FORMAT(1a80)
181+
0
182+
%FLAG RADII
183+
%FORMAT(5E16.8)
184+
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
185+
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
186+
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
187+
%FLAG SCREEN
188+
%FORMAT(5E16.8)
189+
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
190+
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
191+
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
192+
%FLAG IPOL
193+
%FORMAT(1I8)
194+
0
195+

blues/tests/test_propane.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def runPropaneTest(N, preferred_platform):
6868
structure = parmed.load_file(structure_pdb)
6969

7070
# Initialize Move Proposal Class
71-
rot_move = RandomLigandRotationMove(structure, 'LIG') # Propane ligand
71+
rot_move = RandomLigandRotationMove(structure, 'LIG', ligand_indices=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) # Propane ligand
7272
mover = MoveEngine(rot_move)
7373

7474
# Load OpenMM System and Integrator

0 commit comments

Comments
 (0)