Skip to content

Commit 8945480

Browse files
committed
Additional changes in NN-picking routines to deal with names with special characters
1 parent 07cd4e6 commit 8945480

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

src/pyp/detect/joint.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
logger = initialize_pyp_logger(log_name=relative_path)
2121

2222
def bin_image( input, output, binning, verbose ):
23-
command = f"{get_imod_path()}/bin/newstack {input} {output} -bin {binning}; rm -f {output}~"
23+
command = f"{get_imod_path()}/bin/newstack '{input}' '{output}' -bin {binning}; rm -f '{output}~'"
2424
local_run.run_shell_command(command, verbose=verbose)
2525

2626
def sprtrain(args):
@@ -72,7 +72,7 @@ def sprtrain(args):
7272
os.chdir(scratch_train)
7373

7474
logger.info(f"Training pyp model")
75-
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/spr_pick; python {os.environ['PYP_DIR']}/external/spr_pick/spr_pick/__main__.py train start --algorithm {args['detect_nn2d_algorithm']} --noise_value {args['detect_nn2d_noise_value']} --noise_style {args['detect_nn2d_noise_style']} --tau {args['detect_nn2d_tau']} --runs_dir {runs_dir} --train_dataset {train_images} --train_label {train_coords} --iterations {args['detect_nn2d_iterations']} --alpha {args['detect_nn2d_alpha']} --train_batch_size {args['detect_nn2d_batch_size']} --nms {args['detect_dist']} --num {args['detect_nn2d_num']} --bb {args['detect_nn2d_bb']} --patch_size {args['detect_nn2d_patch_size']} --validation_dataset {validation_images} --validation_label {validation_coords} 2>&1 | tee {os.path.join(os.getcwd(), 'log', time_stamp + '_spr_pick_train.log')}"
75+
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/spr_pick; python {os.environ['PYP_DIR']}/external/spr_pick/spr_pick/__main__.py train start --algorithm {args['detect_nn2d_algorithm']} --noise_value {args['detect_nn2d_noise_value']} --noise_style {args['detect_nn2d_noise_style']} --tau {args['detect_nn2d_tau']} --runs_dir '{runs_dir}' --train_dataset '{train_images}' --train_label '{train_coords}' --iterations {args['detect_nn2d_iterations']} --alpha {args['detect_nn2d_alpha']} --train_batch_size {args['detect_nn2d_batch_size']} --nms {args['detect_dist']} --num {args['detect_nn2d_num']} --bb {args['detect_nn2d_bb']} --patch_size {args['detect_nn2d_patch_size']} --validation_dataset '{validation_images}' --validation_label '{validation_coords}' 2>&1 | tee {os.path.join(os.getcwd(), 'log', time_stamp + '_spr_pick_train.log')}"
7676
local_run.run_shell_command(command, verbose=args['slurm_verbose'])
7777

7878
# check for failure if not output was produced
@@ -103,7 +103,7 @@ def spreval(args,name):
103103

104104
if 'detect_nn2d_ref' in args.keys() and os.path.exists( project_params.resolve_path(args['detect_nn2d_ref']) ):
105105
logger.info(f"Evaluating using model: {Path(project_params.resolve_path(args['detect_nn2d_ref'])).name}")
106-
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/spr_pick; python {os.environ['PYP_DIR']}/external/spr_pick/spr_pick/__main__.py eval --model {project_params.resolve_path(args['detect_nn2d_ref'])} --dataset {os.path.join( os.getcwd(), imgs_file)} --runs_dir {os.getcwd()} --num 1"
106+
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/spr_pick; python {os.environ['PYP_DIR']}/external/spr_pick/spr_pick/__main__.py eval --model '{project_params.resolve_path(args['detect_nn2d_ref'])}' --dataset '{os.path.join( os.getcwd(), imgs_file)}' --runs_dir '{os.getcwd()}' --num 1"
107107
local_run.run_shell_command(command, verbose=args['slurm_verbose'])
108108
results_folder = glob.glob("./*/")[0]
109109

@@ -238,7 +238,7 @@ def tomotrain(args):
238238
else:
239239
compress = ""
240240

241-
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/cet_pick; python {os.environ['PYP_DIR']}/external/cet_pick/cet_pick/main.py semi --down_ratio {args['detect_nn3d_down_ratio']} {compress} --num_epochs {args['detect_nn3d_num_epochs']} --bbox {args['detect_nn3d_bbox']} --contrastive --exp_id test_reprod --dataset semi --arch unet_4 {debug} --val_interval {args['detect_nn3d_val_interval']} --thresh {args['detect_nn3d_thresh']} --cr_weight {args['detect_nn3d_cr_weight']} --temp {args['detect_nn3d_temp']} --tau {args['detect_nn3d_tau']} --K {args['detect_nn3d_max_objects']} --lr {args['detect_nn3d_lr']} --train_img_txt {train_images} --train_coord_txt {train_coords} --val_img_txt {validation_images} --val_coord_txt {validation_coords} --test_img_txt {validation_images} --test_coord_txt {validation_coords} 2>&1 | tee {os.path.join( os.getcwd(), 'log', time_stamp + '_cet_pick_train.log')}"
241+
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/cet_pick; python {os.environ['PYP_DIR']}/external/cet_pick/cet_pick/main.py semi --down_ratio {args['detect_nn3d_down_ratio']} {compress} --num_epochs {args['detect_nn3d_num_epochs']} --bbox {args['detect_nn3d_bbox']} --contrastive --exp_id test_reprod --dataset semi --arch unet_4 {debug} --val_interval {args['detect_nn3d_val_interval']} --thresh {args['detect_nn3d_thresh']} --cr_weight {args['detect_nn3d_cr_weight']} --temp {args['detect_nn3d_temp']} --tau {args['detect_nn3d_tau']} --K {args['detect_nn3d_max_objects']} --lr {args['detect_nn3d_lr']} --train_img_txt '{train_images}' --train_coord_txt '{train_coords}' --val_img_txt '{validation_images}' --val_coord_txt '{validation_coords}' --test_img_txt '{validation_images}' --test_coord_txt '{validation_coords}' 2>&1 | tee {os.path.join( os.getcwd(), 'log', time_stamp + '_cet_pick_train.log')}"
242242
[ output, error ] = local_run.run_shell_command(command, verbose=args['slurm_verbose'])
243243

244244
# display log if available
@@ -293,7 +293,7 @@ def tomoeval(args,name):
293293
compress = ""
294294

295295

296-
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/cet_pick; python {os.environ['PYP_DIR']}/external/cet_pick/cet_pick/test.py semi --gpus -1 --arch unet_4 --dataset semi_test --with_score --exp_id test_reprod --load_model {project_params.resolve_path(args['detect_nn3d_ref'])} {compress} --down_ratio 2 --contrastive --K {args['detect_nn3d_max_objects']} --out_thresh {args['detect_nn3d_thresh']} --test_img_txt {os.path.join( os.getcwd(), imgs_file)} --test_coord_txt {os.path.join( os.getcwd(), test_file)} 2>&1 | tee {os.path.join(project_folder, 'train', name + '_testing.log')}"
296+
command = f"export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python; export PYTHONPATH=$PYTHONPATH:$PYP_DIR/external/cet_pick; python {os.environ['PYP_DIR']}/external/cet_pick/cet_pick/test.py semi --gpus -1 --arch unet_4 --dataset semi_test --with_score --exp_id test_reprod --load_model '{project_params.resolve_path(args['detect_nn3d_ref'])}' {compress} --down_ratio 2 --contrastive --K {args['detect_nn3d_max_objects']} --out_thresh {args['detect_nn3d_thresh']} --test_img_txt '{os.path.join( os.getcwd(), imgs_file)}' --test_coord_txt '{os.path.join( os.getcwd(), test_file)}' 2>&1 | tee '{os.path.join(project_folder, 'train', name + '_testing.log')}'"
297297
[ output, error ] = local_run.run_shell_command(command, verbose=args['slurm_verbose'])
298298
results_folder = os.getcwd()
299299

src/pyp/detect/topaz.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ def sprtrain(args):
9090
command = f"{utils.get_topaz_path()}/topaz train \
9191
-n {args['detect_topaz2d_num_particles']} \
9292
--num-workers={args['slurm_tasks']} \
93-
--train-images {scratch_train} \
94-
--train-targets {train_coords} \
93+
--train-images '{scratch_train}' \
94+
--train-targets '{train_coords}' \
9595
{pretrained} \
9696
--method {args['detect_topaz2d_train_method']} \
9797
--num-epochs {args['detect_topaz2d_epochs']} \
@@ -104,7 +104,7 @@ def sprtrain(args):
104104
--minibatch-balance {args['detect_topaz2d_train_batchbalance']} \
105105
--epoch-size {args['detect_topaz2d_train_epochsize']} \
106106
--save-prefix=topaz_train \
107-
-o model_training.txt 2>&1 | tee {os.path.join(train_folder, time_stamp + '_topaz_train.log')}"
107+
-o model_training.txt 2>&1 | tee '{os.path.join(train_folder, time_stamp + '_topaz_train.log')}'"
108108
# --model {args['detect_topaz2d_model']} \
109109
# --units {args['detect_topaz2d_units']} \
110110
# --dropout {args['detect_topaz2d_dropout']} \
@@ -135,7 +135,7 @@ def spreval(args,name):
135135

136136
if 'detect_topaz2d_ref' in args.keys() and os.path.isfile(project_params.resolve_path(args['detect_topaz2d_ref'])):
137137
logger.info(f"Evaluating using model: {Path(project_params.resolve_path(args['detect_topaz2d_ref'])).name}")
138-
model_arg = f"-m {project_params.resolve_path(args['detect_topaz2d_ref'])}"
138+
model_arg = f"-m '{project_params.resolve_path(args['detect_topaz2d_ref'])}'"
139139
else:
140140
logger.info(f"Evaluating using pre-trained model")
141141
model_arg = f"--model {args['detect_topaz2d_pretrained_model']}"
@@ -173,9 +173,9 @@ def spreval(args,name):
173173
--max-radius {args['detect_topaz2d_extract_max_rad']} \
174174
--step-radius {args['detect_topaz2d_extract_step_rad']} \
175175
-x {binning} \
176-
-o {coordinates_file} \
177-
{Path().cwd() / f'{name}_bin.mrc'} \
178-
2>&1 | tee {os.path.join(project_folder, 'log', time_stamp + '_topaz_extract.log')}"
176+
-o '{coordinates_file}' \
177+
'{Path().cwd() / f'{name}_bin.mrc'}' \
178+
2>&1 | tee '{os.path.join(project_folder, 'log', time_stamp + '_topaz_extract.log')}'"
179179

180180
local_run.run_shell_command(command, verbose=args['slurm_verbose'])
181181

@@ -216,7 +216,7 @@ def spreval(args,name):
216216
return np.array([])
217217

218218
def bin_next_coordinates(coordinates,coordinates_bin, binning, verbose=False):
219-
command = f"{utils.get_topaz_path()}/topaz convert -s {binning} -o {coordinates_bin} {coordinates}"
219+
command = f"{utils.get_topaz_path()}/topaz convert -s {binning} -o '{coordinates_bin}' '{coordinates}'"
220220
local_run.run_shell_command(command, verbose=verbose)
221221

222222

src/pyp/refine/csp/particle_cspt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1721,7 +1721,7 @@ def csp_has_error(path_to_logs: Path, micrographs: dict) -> bool:
17211721
micrograph_log = Path(path_to_logs, f"{micrograph}_csp.log")
17221722
if micrograph_log.exists():
17231723
# use "grep" to check if log files contain any error message
1724-
command = "grep -E %s %s" % ("'" + "|".join(ERROR_KEYWORDS) + "'", str(micrograph_log))
1724+
command = "grep -E %s '%s'" % ("'" + "|".join(ERROR_KEYWORDS) + "'", str(micrograph_log))
17251725
[output, error] = local_run.run_shell_command(command, verbose=False)
17261726

17271727
if len(output) > 0:

0 commit comments

Comments
 (0)