Source code for amstrax.auto_processing.submit_stbc

import argparse
import os

from amstrax import amstrax_dir

script_template = """#!/bin/bash
export PATH=/project/xenon/jorana/software/miniconda3/bin:$PATH
source activate /data/xenon/joranang/anaconda/envs/amstrax_2021
cd /data/xenon/xamsl/processing_stage
echo "starting script!"
which python
python {amstrax_dir}/auto_processing/{script}.py {arguments}
echo "Script complete, bye!"
"""


[docs]def submit_job(run_id, target, job_folder='./jobs', log_folder='./logs', script = 'amstraxer' ): for folder in (job_folder, log_folder): if not os.path.exists(folder): os.makedirs(folder) # Build a script to submit to stoomboot cluster script_name = os.path.join(os.path.abspath('.'), job_folder, f'p_{run_id}_{target}.sh') log_file = os.path.join(os.path.abspath('.'), log_folder, f'p_{run_id}_{target}.log') arguments = f' {run_id} --target {target}' script_file = open(script_name, 'w') script_file_content = script_template.format( arguments=arguments, amstrax_dir=amstrax_dir, script=script, ) script_file.write(script_file_content) script_file.close() # Submit the job command = f'qsub {script_name} -e {log_file} -o {log_file}' print(command) os.system(command) print(f'Submitted job for run {run_id}:{target}')
[docs]def parse_args(): parser = argparse.ArgumentParser( description='Submit single run', formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument( '--run_id', type=str, help="Name of context to use") parser.add_argument( '--target', default='raw_records', help="Name of context to use") return parser.parse_args()
if __name__ == '__main__': args = parse_args() submit_job(run_id=f'{int(args.run_id):06}', target=args.target)