Skip to content

Job request: 15336

Organisation:
Bennett Institute
Workspace:
mabsavs-usernonuser-ccw
ID:
6tzix6natag27fqy

This page shows the technical details of what happened when the authorised researcher Linda Nab requested one or more actions to be run against real patient data in the project, within a secure environment.

By cross-referencing the list of jobs with the pipeline section below, you can infer what security level various outputs were written to. Researchers can never directly view outputs marked as highly_sensitive ; they can only request that code runs against them. Outputs marked as moderately_sensitive can be viewed by an approved researcher by logging into a highly secure environment. Only outputs marked as moderately_sensitive can be requested for release to the public, via a controlled output review service.

Jobs

Pipeline

Show project.yaml
version: '3.0'

expectations:
  population_size: 40000

actions:

  ## # # # # # # # # # # # # # # # # # # # 
  ## Data extraction 
  ## # # # # # # # # # # # # # # # # # # # 

  generate_study_population:
    run: cohortextractor:latest generate_cohort --study-definition study_definition --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/input.csv.gz

  generate_study_population_ba2:
    run: cohortextractor:latest generate_cohort --study-definition study_definition_ba2 --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/input_ba2.csv.gz

  generate_study_population_flowchart:
    run: cohortextractor:latest generate_cohort --study-definition study_definition_flowchart --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/input_flowchart.csv.gz
  
  generate_study_population_flowchart_ba2:
    run: cohortextractor:latest generate_cohort --study-definition study_definition_flowchart_ba2 --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/input_flowchart_ba2.csv.gz

  ## # # # # # # # # # # # # # # # # # # # 
  ## Data cleaning and description
  ## # # # # # # # # # # # # # # # # # # # 

  data_process:
    run: r:latest analysis/data_process.R ba1
    needs: [generate_study_population]
    outputs:
      highly_sensitive:
        data: output/data/data_processed.rds
        rds: output/data_properties/n_excluded.rds

  data_process_ba2:
    run: r:latest analysis/data_process.R ba2
    needs: [generate_study_population_ba2]
    outputs:
      highly_sensitive:
        data: output/data/ba2_data_processed.rds
        rds: output/data_properties/ba2_n_excluded.rds

  data_process_flowchart:
    run: r:latest analysis/data_process_flowchart.R ba1
    needs: [generate_study_population_flowchart]
    outputs:
      highly_sensitive:
        data: output/data/data_flowchart_processed.rds

  data_process_flowchart_ba2:
    run: r:latest analysis/data_process_flowchart.R ba2
    needs: [generate_study_population_flowchart_ba2]
    outputs:
      highly_sensitive:
        data: output/data/ba2_data_flowchart_processed.rds 
  
  data_properties:
    run: r:latest analysis/data_properties/data_properties.R output/data/data_processed.rds output/data_properties
    needs: [data_process]
    outputs:
      moderately_sensitive:
        txt1: output/data_properties/data_processed_skim.txt
        txt2: output/data_properties/data_processed_coltypes.txt
        txt3: output/data_properties/data_processed_tabulate.txt

  data_properties_ba2:
    run: r:latest analysis/data_properties/data_properties.R output/data/ba2_data_processed.rds output/data_properties
    needs: [data_process_ba2]
    outputs:
      moderately_sensitive:
        txt1: output/data_properties/ba2_data_processed_skim.txt
        txt2: output/data_properties/ba2_data_processed_coltypes.txt
        txt3: output/data_properties/ba2_data_processed_tabulate.txt

  create_flowchart:
    run: r:latest analysis/flowchart.R ba1
    needs: [data_process_flowchart, data_process]
    outputs:
      moderately_sensitive:
        csv1: output/tables/flowchart/flowchart.csv
        csv2: output/tables/flowchart/flowchart_redacted.csv

  create_flowchart_ba2:
    run: r:latest analysis/flowchart.R ba2
    needs: [data_process_flowchart_ba2, data_process_ba2]
    outputs:
      moderately_sensitive:
        csv1: output/tables/flowchart/ba2_flowchart.csv
        csv2: output/tables/flowchart/ba2_flowchart_redacted.csv

  describe_outcomes:
    run: r:latest analysis/data_properties/describe_outcomes.R ba1
    needs: [data_process]
    outputs:
      moderately_sensitive:
        csv1: output/tables/descriptive/outcomes.csv
        csv1sec: output/tables/descriptive/outcomes_secondary.csv
        csv2: output/tables/descriptive/outcomes_redacted.csv
        csv2sec: output/tables/descriptive/outcomes_secondary_redacted.csv

  describe_outcomes_ba2:
    run: r:latest analysis/data_properties/describe_outcomes.R ba2
    needs: [data_process_ba2]
    outputs:
      moderately_sensitive:
        csv1: output/tables/descriptive/ba2_outcomes.csv
        csv1sec: output/tables/descriptive/ba2_outcomes_secondary.csv
        csv2: output/tables/descriptive/ba2_outcomes_redacted.csv
        csv2sec: output/tables/descriptive/ba2_outcomes_secondary_redacted.csv
  
  sense_check:
    run: r:latest analysis/data_properties/sense_check.R ba1
    needs: [data_process]
    outputs:
      moderately_sensitive:
        csv: output/data_properties/sense_checks.txt

  sense_check_ba2:
    run: r:latest analysis/data_properties/sense_check.R ba2
    needs: [data_process_ba2]
    outputs:
      moderately_sensitive:
        csv: output/data_properties/ba2_sense_checks.txt

  ## # # # # # # # # # # # # # # # # # # # 
  ## CCW Analysis - main
  ## # # # # # # # # # # # # # # # # # # # 

  perform_ccw_analysis:
    run: r:latest analysis/ccw.R ba1 all primary
    needs: [data_process]
    outputs:
      highly_sensitive:
        data: output/data/data_long_all.rds
        model1: output/models/km_trt_all.rds
        model2: output/models/km_control_all.rds
        model3: output/models/cox_w_all.rds
      moderately_sensitive:
        table: output/tables/ccw/ccw_all.csv
  
  perform_ccw_analysis_mol:
    run: r:latest analysis/ccw.R ba1 molnupiravir primary
    needs: [data_process]
    outputs:
      highly_sensitive:
        data: output/data/data_long_molnupiravir.rds
        model1: output/models/km_trt_molnupiravir.rds
        model2: output/models/km_control_molnupiravir.rds
        model3: output/models/cox_w_molnupiravir.rds
      moderately_sensitive:
        table: output/tables/ccw/ccw_molnupiravir.csv

  perform_ccw_analysis_sot:
    run: r:latest analysis/ccw.R ba1 sotrovimab primary
    needs: [data_process]
    outputs:
      highly_sensitive:
        data: output/data/data_long_sotrovimab.rds
        model1: output/models/km_trt_sotrovimab.rds
        model2: output/models/km_control_sotrovimab.rds
        model3: output/models/cox_w_sotrovimab.rds
      moderately_sensitive:
        table: output/tables/ccw/ccw_sotrovimab.csv

  perform_ccw_analysis_ba2:
    run: r:latest analysis/ccw.R ba2 all primary
    needs: [data_process_ba2]
    outputs:
      highly_sensitive:
        data: output/data/ba2_data_long_all.rds
        model1: output/models/ba2_km_trt_all.rds
        model2: output/models/ba2_km_control_all.rds
        model3: output/models/ba2_cox_w_all.rds
      moderately_sensitive:
        table: output/tables/ccw/ba2_ccw_all.csv
  
  perform_ccw_analysis_mol_ba2:
    run: r:latest analysis/ccw.R ba2 molnupiravir primary
    needs: [data_process_ba2]
    outputs:
      highly_sensitive:
        data: output/data/ba2_data_long_molnupiravir.rds
        model1: output/models/ba2_km_trt_molnupiravir.rds
        model2: output/models/ba2_km_control_molnupiravir.rds
        model3: output/models/ba2_cox_w_molnupiravir.rds
      moderately_sensitive:
        table: output/tables/ccw/ba2_ccw_molnupiravir.csv

  perform_ccw_analysis_sot_ba2:
    run: r:latest analysis/ccw.R ba2 sotrovimab primary
    needs: [data_process_ba2]
    outputs:
      highly_sensitive:
        data: output/data/ba2_data_long_sotrovimab.rds
        model1: output/models/ba2_km_trt_sotrovimab.rds
        model2: output/models/ba2_km_control_sotrovimab.rds
        model3: output/models/ba2_cox_w_sotrovimab.rds
      moderately_sensitive:
        table: output/tables/ccw/ba2_ccw_sotrovimab.csv
  
  ## # # # # # # # # # # # # # # # # # # # 
  ## CCW Analysis - check balance
  ## # # # # # # # # # # # # # # # # # # #

  calc_smd:
    run: r:latest analysis/smd.R ba1 all primary
    needs: [perform_ccw_analysis]
    outputs:
      moderately_sensitive:
        table: output/tables/ccw/smd_all.csv

  calc_smd_mol:
    run: r:latest analysis/smd.R ba1 molnupiravir primary
    needs: [perform_ccw_analysis_mol]
    outputs:
      moderately_sensitive:
        table: output/tables/ccw/smd_molnupiravir.csv

  calc_smd_sot:
    run: r:latest analysis/smd.R ba1 sotrovimab primary
    needs: [perform_ccw_analysis_sot]
    outputs:
      moderately_sensitive:
        table: output/tables/ccw/smd_sotrovimab.csv

  calc_smd_ba2:
    run: r:latest analysis/smd.R ba2 all primary
    needs: [perform_ccw_analysis_ba2]
    outputs:
      moderately_sensitive:
        table: output/tables/ccw/ba2_smd_all.csv

  calc_smd_mol_ba2:
    run: r:latest analysis/smd.R ba2 molnupiravir primary
    needs: [perform_ccw_analysis_mol_ba2]
    outputs:
      moderately_sensitive:
        table: output/tables/ccw/ba2_smd_molnupiravir.csv

  calc_smd_sot_ba2:
    run: r:latest analysis/smd.R ba2 sotrovimab primary
    needs: [perform_ccw_analysis_sot_ba2]
    outputs:
      moderately_sensitive:
        table: output/tables/ccw/ba2_smd_sotrovimab.csv

  ## # # # # # # # # # # # # # # # # # # # 
  ## Tables
  ## # # # # # # # # # # # # # # # # # # # 

  create_table1:
    run: r:latest analysis/table_1.R ba1
    needs: [data_process]
    outputs:
      moderately_sensitive:
        html: output/tables/table1_redacted.html

  create_table1_ba2:
    run: r:latest analysis/table_1.R ba2
    needs: [data_process_ba2]
    outputs:
      moderately_sensitive:
        html: output/tables/ba2_table1_redacted.html

  create_table_ccw:
    run: r:latest analysis/table_ccw.R ba1
    needs: [perform_ccw_analysis, perform_ccw_analysis_mol, perform_ccw_analysis_sot]
    outputs:
      moderately_sensitive:
        html: output/tables/table_ccw.html

  create_table_ccw_ba2:
    run: r:latest analysis/table_ccw.R ba2
    needs: [perform_ccw_analysis_ba2, perform_ccw_analysis_mol_ba2, perform_ccw_analysis_sot_ba2]
    outputs:
      moderately_sensitive:
        html: output/tables/ba2_table_ccw.html

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 00:00:43

These timestamps are generated and stored using the UTC timezone on the TPP backend.

Job information

Status
Succeeded
Backend
TPP
Requested by
Linda Nab
Branch
ccw-analysis
Force run dependencies
No
Git commit hash
658d754
Requested actions
  • create_table_ccw
  • create_table_ccw_ba2

Code comparison

Compare the code used in this Job Request