Skip to content

Commit 03bc778

Browse files
committed
Formatted with Black
1 parent 4bdfe36 commit 03bc778

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

RCBS/md_analyser/frame_extractor.py

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
from ..snippets import check_folder
22

33

4-
def frame_selector(frames_boolean, bins=10, frames_per_bin=1, bin_type='total_length', verbose=False, loop_tolerance=0.1):
4+
def frame_selector(
5+
frames_boolean,
6+
bins=10,
7+
frames_per_bin=1,
8+
bin_type="total_length",
9+
verbose=False,
10+
loop_tolerance=0.1,
11+
):
512
"""
613
DESCRIPTION:
714
Function for randomly select frames from a boolean list (being the index the number of the frame).
@@ -10,7 +17,7 @@ def frame_selector(frames_boolean, bins=10, frames_per_bin=1, bin_type='total_le
1017
- frames_boolean: list of boolean variables that indicate if the criteria is satisfied or not. The index of the list is the number of the frame.
1118
- bins: number of partitions of the trajectory to properly distibute the selection
1219
- frames_per_bin: number of frames to select per bin
13-
- bin_type: total_length | true_lenght --> total_length takes the whole set of frames to calculate the bins,
20+
- bin_type: total_length | true_lenght --> total_length takes the whole set of frames to calculate the bins,
1421
while true_length takes only the frames with True statements for calculating the bins
1522
- verbose: True prints the frame number every time it is selected
1623
@@ -25,47 +32,49 @@ def frame_selector(frames_boolean, bins=10, frames_per_bin=1, bin_type='total_le
2532
frames = []
2633
for f in range(len(frames_boolean)):
2734
if frames_boolean[f] == True:
28-
frames.append(f+1)
35+
frames.append(f + 1)
2936
elif frames_boolean[f] == False:
3037
pass
3138

32-
33-
if bin_type.lower() == 'total_length':
34-
print('total_length')
39+
if bin_type.lower() == "total_length":
40+
print("total_length")
3541
splits = int(round(len(frames_boolean) / bins, 0))
3642

37-
elif bin_type.lower() == 'true_length':
38-
print('true_length')
43+
elif bin_type.lower() == "true_length":
44+
print("true_length")
3945
splits = int(round(len(frames) / bins, 0))
4046

41-
else :
47+
else:
4248
print(bin_type)
4349

4450
for f in range(frames_per_bin):
4551
for b in range(bins):
4652
loopout = 0
4753
while True:
48-
if loopout+1 == int(loop_tolerance*splits):
49-
print('A frame between %s and %s has not been found. No frame will be saved for this bin.' % (splits*b, splits*(b+1)))
54+
if loopout + 1 == int(loop_tolerance * splits):
55+
print(
56+
"A frame between %s and %s has not been found. No frame will be saved for this bin."
57+
% (splits * b, splits * (b + 1))
58+
)
5059
break
5160

52-
else :
53-
try :
54-
frame = choice(range(splits*b, splits*(b+1)))
55-
if bin_type == 'total_length':
61+
else:
62+
try:
63+
frame = choice(range(splits * b, splits * (b + 1)))
64+
if bin_type.lower() == "total_length":
5665
if frame in frames:
5766
selected.append(frame)
5867
if verbose == True:
59-
print('The selected frame is:', frame)
68+
print("The selected frame is:", frame)
6069
break
61-
else :
70+
else:
6271
loopout += 1
6372
continue
6473

65-
elif bin_type == 'true_length':
74+
elif bin_type.lower() == "true_length":
6675
selected.append(frames[frame])
6776
break
68-
77+
6978
except IndexError:
7079
continue
7180

0 commit comments

Comments
 (0)