From 42c439e1fab9fcd3791899f88667644a1051df9d Mon Sep 17 00:00:00 2001 From: Carlos de Lannoy <cvdelannoy@gmail.com> Date: Tue, 3 May 2022 16:12:40 +0200 Subject: [PATCH] additional args for inference --- argparse_dicts.py | 7 ++++++- env.yaml | 2 +- inference/run_inference.py | 11 ++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/argparse_dicts.py b/argparse_dicts.py index 6d0b582..5f69749 100644 --- a/argparse_dicts.py +++ b/argparse_dicts.py @@ -110,6 +110,11 @@ inference_mode = ('--inference-mode', { 'help': 'Run inference [once] on fast5s available in folder, or [watch] folder indefinitely for new reads [default: watch]' }) +copy_reads = ('--copy-reads', { + 'action': 'store_true', + 'help': 'Copy reads to the output directory before starting processing' +}) + # --- output --- out_dir = ('--out-dir', { 'type': lambda x: parse_output_path(x), @@ -289,7 +294,7 @@ def get_training_parser(): def get_run_inference_parser(): parser = argparse.ArgumentParser(description='Start up inference routine and watch a fast5 directory for reads.') - for arg in (fast5_in, out_dir, model, inference_mode, mem, batch_size): + for arg in (fast5_in, out_dir, model, inference_mode, mem, batch_size, copy_reads): parser.add_argument(arg[0], **arg[1]) # parser.add_argument('--continuous-nn', action='store_true',help='Used RNN can handle continuous reads.') return parser diff --git a/env.yaml b/env.yaml index 6bb80e4..24012f8 100755 --- a/env.yaml +++ b/env.yaml @@ -6,7 +6,7 @@ channels: dependencies: - python=3.8.10 - matplotlib=3.5.1 # avoid issues with heatmaps - - tensorflow=2.4.1 + - tensorflow-gpu=2.4.1 - pandas=1.3.1 - bokeh=2.3.3 - snakemake=5.26.1 diff --git a/inference/run_inference.py b/inference/run_inference.py index 74eacf6..353207f 100644 --- a/inference/run_inference.py +++ b/inference/run_inference.py @@ -1,4 +1,4 @@ -import sys, signal, os, h5py +import sys, signal, os, h5py, shutil from pathlib import Path from datetime import datetime import tensorflow as tf @@ -94,7 +94,9 @@ def main(args): run_time = datetime.now() - start_time read_manager_process.terminate() read_manager_process.join() - print(f'runtime was {run_time.seconds} s') + with open(args.out_dir + 'run_stats.log', 'w') as fh: + fh.write(f'wall_time: {run_time.seconds}s') + print(f'wall time was {run_time.seconds} s') if abundance_mode: freq_array = abundance_array / max(abundance_array.sum(), 1) abundance_txt = 'kmer,abundance,frequency\n' + \ @@ -105,5 +107,8 @@ def main(args): if __name__ == '__main__': parser = get_run_inference_parser() args = parser.parse_args() + if args.copy_reads: + fast5_in_new = parse_output_path(args.out_dir + 'fast5_in/', clean=True) + shutil.copytree(args.fast5_in, fast5_in_new, dirs_exist_ok=True) + args.fast5_in = fast5_in_new main(args) - -- GitLab