From 81003fc5f0e6b46d8f705323c4cf0c0ed43e8e17 Mon Sep 17 00:00:00 2001 From: wintun12 Date: Tue, 21 Jan 2025 01:43:14 +0000 Subject: [PATCH] automate ADX api upload --- config/log_msgs_config.py | 3 +++ setoff_workflows/setoff_workflows.py | 40 ++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/config/log_msgs_config.py b/config/log_msgs_config.py index 9a8749a2..b4859e7f 100755 --- a/config/log_msgs_config.py +++ b/config/log_msgs_config.py @@ -141,8 +141,11 @@ ), "writing_cmds": "Writing dx run commands to %s", "running_cmds": "Running dx run commands using dx run bash script", + "running_decision_cmds": "Running decision support commands using bash script", "dx_run_err": "Error when setting off dx run command. Command: %s. Stdout: %s. Stderr: %s", + "decision_run_err": "Error when setting off decision support command. Command: %s. Stdout: %s. Stderr: %s", "dx_run_success": "Dx run commands issued successfully for run %s", + "decision_run_success": "Decision support cmd is run successfully for run %s", "uploading_rf": ( "Uploading rest of run folder to DNAnexus using upload_runfolder, ignoring: %s. Stdout stored in logfile: %s" ), diff --git a/setoff_workflows/setoff_workflows.py b/setoff_workflows/setoff_workflows.py index 66d993e9..b9d8d117 100755 --- a/setoff_workflows/setoff_workflows.py +++ b/setoff_workflows/setoff_workflows.py @@ -310,6 +310,8 @@ def __init__(self, rf_obj: RunfolderObject, loggers: dict): self.write_dx_run_cmds() self.pre_pipeline_upload() self.run_dx_run_commands() + if self.rf_samples_obj.pipeline == "archerdx": + self.run_decision_support_commands() self.pipeline_emails = PipelineEmails( self.rf_obj, self.rf_samples_obj, @@ -776,6 +778,31 @@ def upload_rest_of_runfolder(self) -> None: ) sys.exit(1) + def run_decision_support_commands(self) -> None: + """ + Execute the decision_support bash script + :return None: + """ + decision_support_run_cmd = f"bash {self.rf_obj.decision_support_upload_script}" + + self.loggers["sw"].info( + self.loggers["sw"].log_msgs["running_decision_cmds"], + ) + out, err, returncode = execute_subprocess_command( + decision_support_run_cmd, self.loggers["sw"], "exit_on_fail" + ) + if returncode != 0: + self.loggers["sw"].error( + self.loggers["sw"].log_msgs["decision_run_err"], + decision_support_run_cmd, + out, + err, + ) + else: + self.loggers["sw"].info( + self.loggers["sw"].log_msgs["decision_run_success"], + self.rf_obj.runfolder_name, + ) def run_dx_run_commands(self) -> None: """ Execute the dx run bash script @@ -883,6 +910,19 @@ def __init__(self, rf_obj: object, rf_samples: object, logger: logging.Logger): self.sql_queries.append( sample_cmds_obj.return_oncology_query() ) # Get SQL queries + # Return the decision support command + ADX_runfolder = f"run_folder_name={self.rf_obj.runfolder_name}" + ADX_jobID = "job_name=$(cat /media/data3/share/${run_folder_name}/RunParameters.xml | grep -oP '(?<=ExperimentName>).*?(?=