Skip to content

Commit d977f0c

Browse files
committed
clean up failed md-*.nc
1 parent 2d6fa48 commit d977f0c

13 files changed

Lines changed: 294 additions & 10 deletions

File tree

batter/_internal/templates/amber_files_orig/mini-ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Minimizing.
2020
pencut = -1,
2121
ntr = 1,
2222
restraint_wt = 50.0,
23-
restraintmask = '(@CA,C,N,P31,Na+,Cl- | :_lig1_name_ | :_lig2_name_ | :2) & !@H=',
23+
restraintmask = '(@CA,C,N,P31 | :_lig1_name_ | :_lig2_name_ | :2) & !@H=',
2424
infe = 0,
2525
icfe = 1,
2626
clambda = 0.5,

batter/_internal/templates/amber_files_orig/mini-uno

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Minimizing.
2020
pencut = -1,
2121
ntr = 1,
2222
restraint_wt = 50.0,
23-
restraintmask = '(@CA,C,N,P31,Na+,Cl- | :_lig_name_ | :2) & !@H=',
23+
restraintmask = '(@CA,C,N,P31| :_lig_name_ | :2) & !@H=',
2424
infe = 0,
2525
icfe = 1,
2626
clambda = lbd_val,

batter/_internal/templates/amber_files_orig/mini-unorest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Minimizing.
2020
pencut = -1,
2121
ntr = 1,
2222
restraint_wt = 50.0,
23-
restraintmask = '(@CA,C,N,P31,Na+,Cl- | :_lig_name_ | :2) & !@H=',
23+
restraintmask = '(@CA,C,N,P31| :_lig_name_ | :2) & !@H=',
2424
infe = 0,
2525
icfe = 1,
2626
clambda = lbd_val,

batter/_internal/templates/amber_files_orig/mini-unorest-dd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Minimizing.
2020
pencut = -1,
2121
ntr = 1,
2222
restraint_wt = 50.0,
23-
restraintmask = '(@CA,C,N,P31,Na+,Cl- | :_lig_name_) & !@H=',
23+
restraintmask = '(@CA,C,N,P31| :_lig_name_) & !@H=',
2424
infe = 0,
2525
icfe = 1,
2626
clambda = lbd_val,

batter/_internal/templates/amber_files_orig/mini-unorest-lig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Minimizing.
2020
pencut = -1,
2121
ntr = 1,
2222
restraint_wt = 50.0,
23-
restraintmask = '(:_lig_name_ | @Na+,Cl-) & !@H=',
23+
restraintmask = '(:_lig_name_) & !@H=',
2424
infe = 0,
2525
icfe = 1,
2626
clambda = lbd_val,

batter/_internal/templates/amber_files_orig/mini.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Minimizing.
1818
pencut = -1,
1919
ntr = 1,
2020
restraint_wt = 50.0,
21-
restraintmask = '(@CA,C,N,P31,Na+,Cl- | :_lig_name_ | :1) & !@H=',
21+
restraintmask = '(@CA,C,N,P31 | :_lig_name_ | :1) & !@H=',
2222
infe = 0,
2323
/
2424
&wt type='DUMPFREQ', istep1=500, /

batter/_internal/templates/run_files_orig/check_run.bash

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,97 @@ archive_suspect_md_restart_if_present() {
181181
return 0
182182
}
183183

184+
md_nc_frame_count() {
185+
local nc_file=$1
186+
187+
[[ -s "$nc_file" ]] || return 1
188+
command -v ncdump >/dev/null 2>&1 || return 1
189+
190+
ncdump -h "$nc_file" 2>/dev/null | awk '
191+
/frame[[:space:]]*=[[:space:]]*UNLIMITED/ {
192+
s=$0
193+
sub(/^.*\(/, "", s)
194+
sub(/[[:space:]]+currently\).*$/, "", s)
195+
if (s ~ /^[0-9]+$/) {
196+
print s
197+
found=1
198+
exit
199+
}
200+
}
201+
END { if (!found) exit 1 }
202+
'
203+
}
204+
205+
md_nc_has_zero_frames() {
206+
local nc_file=$1
207+
local frames
208+
209+
frames=$(md_nc_frame_count "$nc_file" 2>/dev/null) || return 1
210+
[[ $frames =~ ^[0-9]+$ ]] || return 1
211+
(( frames == 0 ))
212+
}
213+
214+
archive_zero_frame_md_trajectory_if_present() {
215+
local nc_file=$1
216+
local retry_count=${2:-}
217+
local stem out_file
218+
219+
[[ -n $nc_file && -s "$nc_file" ]] || return 1
220+
md_nc_has_zero_frames "$nc_file" || return 1
221+
222+
stem=${nc_file%.nc}
223+
out_file="${stem}.out"
224+
if [[ -s "$out_file" ]] && md_out_has_completion_marker "$out_file"; then
225+
return 1
226+
fi
227+
228+
retry_count=$(retry_count_for_template "mdin-template" "$retry_count")
229+
archive_failed_job_files "$retry_count" \
230+
"$out_file" \
231+
"$nc_file" \
232+
"${stem}.log" \
233+
"${stem}.mden" \
234+
"${stem}.mdinfo"
235+
echo "[INFO] Archived zero-frame MD trajectory $nc_file before restart."
236+
return 0
237+
}
238+
239+
cleanup_zero_frame_md_trajectories() {
240+
local retry_count=${1:-}
241+
local pattern nc_file seen_files=" "
242+
local patterns=("md-*.nc" "md[0-9]*.nc")
243+
244+
if [[ -n ${ZSH_VERSION-} ]]; then
245+
setopt local_options null_glob
246+
for pattern in "${patterns[@]}"; do
247+
for nc_file in ${~pattern}; do
248+
case "$seen_files" in
249+
*" $nc_file "*) continue ;;
250+
esac
251+
seen_files="${seen_files}${nc_file} "
252+
archive_zero_frame_md_trajectory_if_present "$nc_file" "$retry_count" || true
253+
done
254+
done
255+
return 0
256+
fi
257+
258+
local nullglob_was_on=0
259+
shopt -q nullglob && nullglob_was_on=1
260+
shopt -s nullglob
261+
for pattern in "${patterns[@]}"; do
262+
for nc_file in $pattern; do
263+
case "$seen_files" in
264+
*" $nc_file "*) continue ;;
265+
esac
266+
seen_files="${seen_files}${nc_file} "
267+
archive_zero_frame_md_trajectory_if_present "$nc_file" "$retry_count" || true
268+
done
269+
done
270+
if [[ $nullglob_was_on -eq 0 ]]; then
271+
shopt -u nullglob
272+
fi
273+
}
274+
184275
cleanup_suspect_md_resume_state() {
185276
local retry_count=${1:-}
186277
local resume_mode=${2:-strict}

batter/_internal/templates/run_files_orig/run-equil.bash

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ run_penetration_check() {
7474

7575
archive_existing_log_file "$log_file"
7676
cleanup_stale_empty_md_artifacts relaxed
77+
cleanup_zero_frame_md_trajectories "$retry_count"
7778

7879
tmpl="mdin-template"
7980
mdin_current="mdin-current"
@@ -107,7 +108,7 @@ if ! should_skip_eq_step "Minimization 2" "mini2.rst7"; then
107108
else
108109
print_and_run "$PMEMD_CPU_EXEC -O -i mini.in -p $PRMTOP -c mini.rst7 -o mini2.out -r mini2.rst7 -x mini2.nc -ref $INPCRD >> \"$log_file\" 2>&1"
109110
fi
110-
check_sim_failure "Minimization 2" "$log_file" mini2.rst7
111+
check_sim_failure "Minimization 2" "$log_file" mini2.rst7 mini.rst7 "$retry_count"
111112

112113
if ! check_min_energy "mini2.out" -1000; then
113114
echo "Minimization not passed with cuda; trying CPU"
@@ -122,7 +123,7 @@ if ! should_skip_eq_step "Minimization 2" "mini2.rst7"; then
122123
fi
123124

124125
check_sim_failure "Minimization" "$log_file" mini.rst7
125-
check_sim_failure "Minimization 2" "$log_file" mini2.rst7
126+
check_sim_failure "Minimization 2" "$log_file" mini2.rst7 mini.rst7 "$retry_count"
126127

127128
if ! check_min_energy "mini2.out" -1000; then
128129
echo "Minimization with CPU also failed, exiting."

batter/_internal/templates/run_files_orig/run-local-rbfe.bash

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ should_skip_eq_step() {
6060

6161
archive_existing_log_file "$log_file"
6262
cleanup_stale_empty_md_artifacts relaxed
63+
cleanup_zero_frame_md_trajectories "$retry"
6364

6465
report_progress
6566

batter/_internal/templates/run_files_orig/run-local-vacuum.bash

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ consume_prior_failure_marker >/dev/null
3434

3535
archive_existing_log_file "$log_file"
3636
cleanup_stale_empty_md_artifacts relaxed
37+
cleanup_zero_frame_md_trajectories "$retry"
3738

3839
# ------------------------- only_eq mode -------------------------
3940
if [[ $only_eq -eq 1 ]]; then

0 commit comments

Comments
 (0)