Skip to content

Commit

Permalink
automate ADX api upload
Browse files Browse the repository at this point in the history
  • Loading branch information
wintun12 committed Jan 21, 2025
1 parent 1121968 commit 81003fc
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
3 changes: 3 additions & 0 deletions config/log_msgs_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"
),
Expand Down
40 changes: 40 additions & 0 deletions setoff_workflows/setoff_workflows.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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>).*?(?=</ExperimentName)')"
docker = "docker run \
-v /media/data3/share/${run_folder_name}/Data/Intensities/BaseCalls:/data \
-v /usr/local/src/mokaguys:/auth_file \
seglh/archer_api_upload:v1.0.0 /data \
auth_file/.archer_authentication_mokaguys.txt \
${job_name} 2 | tee -a /usr/local/src/mokaguys/automate_demultiplexing_logfiles/archer_api_upload_logfiles/${run_folder_name}_archer_api_logfile.txt"

docker_api_cmd = [ADX_runfolder, ADX_jobID, docker]
for api_cmd in docker_api_cmd:
self.decision_support_upload_cmds.append(api_cmd)

# Return downstream app commands
self.workflow_cmds.extend(
Expand Down

0 comments on commit 81003fc

Please sign in to comment.