Skip to content

Job request: 22434

Organisation:
The London School of Hygiene & Tropical Medicine
Workspace:
covid_risk_immunocompromised
ID:
i3dp4ft4hjyocnpe

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

By cross-referencing the indicated Requested Actions with the Pipeline section below, you can infer what security level various outputs were written to. Outputs marked as highly_sensitive can never be viewed directly by a researcher; 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: 10000

actions:

  ## WAVE 4 ##

  # Extract data
  generate_study_population_wave4:
    run: >
      cohortextractor:latest generate_cohort
        --study-definition study_definition_wave4
        --skip-existing
        --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/input_wave4.csv.gz

  # Process data
  process_data_wave4:
    run: r:latest analysis/data_process.R wave4
    needs: [generate_study_population_wave4]
    outputs:
      highly_sensitive:
        rds: output/processed/input_wave4.rds
        
  # Skim data
  skim_data_wave4:
    run: r:latest analysis/data_skim.R output/processed/input_wave4.rds output/data_properties
    needs: [process_data_wave4]
    outputs:
      moderately_sensitive:
        txt1: output/data_properties/input_wave4_skim.txt
        txt2: output/data_properties/input_wave4_coltypes.txt
        txt3: output/data_properties/input_wave4_tabulate.txt
        
  # Filter data
  filter_data_wave4:
    run: r:latest analysis/data_selection.R wave4
    needs: [process_data_wave4]
    outputs:
      highly_sensitive:
        rds: output/filtered/input_wave4.rds
      moderately_sensitive:
        csv: output/flowchart/flowchart_wave4.csv

  # Immunosuppression combinations
  imm_comb_wave4:
    run: r:latest analysis/imm_comb.R wave4
    needs: [filter_data_wave4]
    outputs:
      moderately_sensitive:
        csv1: output/imm_comb/imm_comb_wave4_broad.csv
        csv2: output/imm_comb/imm_comb_wave4_narrow.csv

  # Table 1
  table_1_wave4_all:
    run: r:latest analysis/table_1.R wave4 all
    needs: [filter_data_wave4]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave4_all.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave4_all.html
        csv: output/table_1/table_1_wave4_all.csv
        
  table_1_wave4_Tx:
    run: r:latest analysis/table_1.R wave4 Tx
    needs: [filter_data_wave4]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave4_Tx.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave4_Tx.html
        csv: output/table_1/table_1_wave4_Tx.csv

  table_1_wave4_HC:
    run: r:latest analysis/table_1.R wave4 HC
    needs: [filter_data_wave4]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave4_HC.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave4_HC.html
        csv: output/table_1/table_1_wave4_HC.csv

  table_1_wave4_RC:
    run: r:latest analysis/table_1.R wave4 RC
    needs: [filter_data_wave4]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave4_RC.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave4_RC.html
        csv: output/table_1/table_1_wave4_RC.csv
        
  table_1_wave4_IMM:
    run: r:latest analysis/table_1.R wave4 IMM
    needs: [filter_data_wave4]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave4_IMM.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave4_IMM.html
        csv: output/table_1/table_1_wave4_IMM.csv

  table_1_wave4_IMD:
    run: r:latest analysis/table_1.R wave4 IMD
    needs: [filter_data_wave4]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave4_IMD.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave4_IMD.html
        csv: output/table_1/table_1_wave4_IMD.csv

  collate_table_1_wave4:
    run: r:latest analysis/collate_table_1.R wave4
    needs: [table_1_wave4_all, table_1_wave4_Tx, table_1_wave4_HC, table_1_wave4_RC, table_1_wave4_IMM, table_1_wave4_IMD]
    outputs:
      moderately_sensitive:
        csv: output/table_1/table_1_wave4_collated.csv



  # Table - incidence rates
  calc_ir_hr_wave4_Tx:
    run: r:latest analysis/calc_ir_hr.R wave4 Tx
    needs: [filter_data_wave4]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave4_Tx.csv
        csv2: output/table_ir_hr/table_ir_hr_wave4_Tx_simple.csv

  calc_ir_hr_wave4_HC:
    run: r:latest analysis/calc_ir_hr.R wave4 HC
    needs: [filter_data_wave4]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave4_HC.csv
        csv2: output/table_ir_hr/table_ir_hr_wave4_HC_simple.csv

  calc_ir_hr_wave4_RC:
    run: r:latest analysis/calc_ir_hr.R wave4 RC
    needs: [filter_data_wave4]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave4_RC.csv
        csv2: output/table_ir_hr/table_ir_hr_wave4_RC_simple.csv

  calc_ir_hr_wave4_IMM:
    run: r:latest analysis/calc_ir_hr.R wave4 IMM
    needs: [filter_data_wave4]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave4_IMM.csv
        csv2: output/table_ir_hr/table_ir_hr_wave4_IMM_simple.csv

  calc_ir_hr_wave4_IMD:
    run: r:latest analysis/calc_ir_hr.R wave4 IMD
    needs: [filter_data_wave4]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave4_IMD.csv
        csv2: output/table_ir_hr/table_ir_hr_wave4_IMD_simple.csv


  ## WAVE 3 ##

  # Extract data
  generate_study_population_wave3:
    run: >
      cohortextractor:latest generate_cohort
        --study-definition study_definition_wave3
        --skip-existing
        --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/input_wave3.csv.gz

  # Process data
  process_data_wave3:
    run: r:latest analysis/data_process.R wave3
    needs: [generate_study_population_wave3]
    outputs:
      highly_sensitive:
        rds: output/processed/input_wave3.rds
        
  # Skim data
  skim_data_wave3:
    run: r:latest analysis/data_skim.R output/processed/input_wave3.rds output/data_properties
    needs: [process_data_wave3]
    outputs:
      moderately_sensitive:
        txt1: output/data_properties/input_wave3_skim.txt
        txt2: output/data_properties/input_wave3_coltypes.txt
        txt3: output/data_properties/input_wave3_tabulate.txt
        
  # Filter data
  filter_data_wave3:
    run: r:latest analysis/data_selection.R wave3
    needs: [process_data_wave3]
    outputs:
      highly_sensitive:
        rds: output/filtered/input_wave3.rds
      moderately_sensitive:
        csv: output/flowchart/flowchart_wave3.csv

  # Table 1
  table_1_wave3_all:
    run: r:latest analysis/table_1.R wave3 all
    needs: [filter_data_wave3]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave3_all.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave3_all.html
        csv: output/table_1/table_1_wave3_all.csv
        
  table_1_wave3_Tx:
    run: r:latest analysis/table_1.R wave3 Tx
    needs: [filter_data_wave3]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave3_Tx.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave3_Tx.html
        csv: output/table_1/table_1_wave3_Tx.csv

  table_1_wave3_HC:
    run: r:latest analysis/table_1.R wave3 HC
    needs: [filter_data_wave3]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave3_HC.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave3_HC.html
        csv: output/table_1/table_1_wave3_HC.csv

  table_1_wave3_RC:
    run: r:latest analysis/table_1.R wave3 RC
    needs: [filter_data_wave3]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave3_RC.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave3_RC.html
        csv: output/table_1/table_1_wave3_RC.csv
        
  table_1_wave3_IMM:
    run: r:latest analysis/table_1.R wave3 IMM
    needs: [filter_data_wave3]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave3_IMM.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave3_IMM.html
        csv: output/table_1/table_1_wave3_IMM.csv

  table_1_wave3_IMD:
    run: r:latest analysis/table_1.R wave3 IMD
    needs: [filter_data_wave3]
    outputs:
      highly_sensitive:
        data: output/table_1/table_1_wave3_IMD.rds
      moderately_sensitive:
        table: output/table_1/table_1_wave3_IMD.html
        csv: output/table_1/table_1_wave3_IMD.csv

  collate_table_1_wave3:
    run: r:latest analysis/collate_table_1.R wave3
    needs: [table_1_wave3_all, table_1_wave3_Tx, table_1_wave3_HC, table_1_wave3_RC, table_1_wave3_IMM, table_1_wave3_IMD]
    outputs:
      moderately_sensitive:
        csv: output/table_1/table_1_wave3_collated.csv



  # Table - incidence rates
  calc_ir_hr_wave3_Tx:
    run: r:latest analysis/calc_ir_hr.R wave3 Tx
    needs: [filter_data_wave3]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave3_Tx.csv
        csv2: output/table_ir_hr/table_ir_hr_wave3_Tx_simple.csv

  calc_ir_hr_wave3_HC:
    run: r:latest analysis/calc_ir_hr.R wave3 HC
    needs: [filter_data_wave3]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave3_HC.csv
        csv2: output/table_ir_hr/table_ir_hr_wave3_HC_simple.csv

  calc_ir_hr_wave3_RC:
    run: r:latest analysis/calc_ir_hr.R wave3 RC
    needs: [filter_data_wave3]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave3_RC.csv
        csv2: output/table_ir_hr/table_ir_hr_wave3_RC_simple.csv

  calc_ir_hr_wave3_IMM:
    run: r:latest analysis/calc_ir_hr.R wave3 IMM
    needs: [filter_data_wave3]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave3_IMM.csv
        csv2: output/table_ir_hr/table_ir_hr_wave3_IMM_simple.csv

  calc_ir_hr_wave3_IMD:
    run: r:latest analysis/calc_ir_hr.R wave3 IMD
    needs: [filter_data_wave3]
    outputs:
      moderately_sensitive:
        csv1: output/table_ir_hr/table_ir_hr_wave3_IMD.csv
        csv2: output/table_ir_hr/table_ir_hr_wave3_IMD_simple.csv

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 07:28:29

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

Job information

Status
Succeeded
Backend
TPP
Requested by
Ed Parker
Branch
main
Force run dependencies
No
Git commit hash
c4214b7
Requested actions
  • table_1_wave4_Tx
  • calc_ir_hr_wave4_Tx
  • generate_study_population_wave3
  • process_data_wave3
  • skim_data_wave3
  • filter_data_wave3
  • table_1_wave3_all
  • table_1_wave3_Tx
  • table_1_wave3_HC
  • table_1_wave3_RC
  • table_1_wave3_IMM
  • table_1_wave3_IMD
  • collate_table_1_wave3
  • calc_ir_hr_wave3_Tx
  • calc_ir_hr_wave3_HC
  • calc_ir_hr_wave3_RC
  • calc_ir_hr_wave3_IMM
  • calc_ir_hr_wave3_IMD

Code comparison

Compare the code used in this Job Request