Skip to content

Job request: 8326

Organisation:
The UK Renal Registry
Workspace:
ckd-coverage-ve
ID:
goetukt5y3mpefen

This page shows the technical details of what happened when the 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 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
######################################
# Script defines project pipeline via series of actions
######################################

version: '3.0'

expectations:
  population_size: 30000

actions:

  # Extract data ----
  generate_study_population:
    run: cohortextractor:latest generate_cohort --study-definition study_definition --output-dir=output/data
    outputs:
      highly_sensitive:
        cohort: output/data/input.csv
  
  # Process data ----
  data_process:
    run: r:latest analysis/data_process.R
    needs: [generate_study_population]
    outputs:
      highly_sensitive:
        data: output/data/data_processed.rds
        csv: output/data/data_processed.csv
       
  # Data properties (processed) ----
  data_properties_process:
    run: r:latest analysis/data_properties.R output/data/data_processed.rds output/data_properties
    needs: [data_process]
    outputs:
      moderately_sensitive:
        cohort: output/data_properties/data_processed*.txt

  # Select cohort ----
  data_selection_coverage:
    run: r:latest analysis/coverage/data_selection_coverage.R
    needs: [data_process]
    outputs:
      highly_sensitive:
        data1: output/data/data_cohort_coverage.rds
        csv: output/data/data_cohort_coverage.csv
        data2: output/data/data_cohort_coverage_logistic.rds
      moderately_sensitive:
        csv: output/tables/flowchart_coverage.csv
  
  # Data properties (coverage) ----
  data_properties_coverage:
    run: r:latest analysis/data_properties.R output/data/data_cohort_coverage.rds output/data_properties
    needs: [data_selection_coverage]
    outputs:
      moderately_sensitive:
        cohort: output/data_properties/data_cohort_coverage*.txt
        
  # Table 1 primary cohort----
  table_1_coverage:
    run: r:latest analysis/coverage/table_1_coverage.R
    needs: [data_selection_coverage]
    outputs:
      highly_sensitive:
        data: output/tables/table1_coverage_redacted_by_CKD.rds
      moderately_sensitive:
        table: output/tables/table1_coverage_redacted_by_CKD.html
        
  # Cox models - dose-3 coverage ----
  cox_model_dose3:
    run: r:latest analysis/coverage/cox_model.R dose3
    needs: [data_selection_coverage]
    outputs:
      highly_sensitive:
        data1: output/data/data_cox_coverage_dose3*.rds
        data2: output/model/mod_strat_coxph_redacted_dose3*.rds
      moderately_sensitive:
        csv: output/model/mod_strat_coxph_redacted_dose3*.csv
        
  # Cox models - dose-4 coverage ----
  cox_model_dose4:
    run: r:latest analysis/coverage/cox_model.R dose4
    needs: [data_selection_coverage]
    outputs:
      highly_sensitive:
        data1: output/data/data_cox_coverage_dose4*.rds
        data2: output/model/mod_strat_coxph_redacted_dose4*.rds
      moderately_sensitive:
        csv: output/model/mod_strat_coxph_redacted_dose4*.csv
        
  # Logistic models - dose-3 coverage ----
  logistic_model:
    run: r:latest analysis/coverage/logistic_model.R
    needs: [data_selection_coverage]
    outputs:
      highly_sensitive:
        data1: output/data/data_lr.rds
        data2: output/model/mod_strat_logistic_redacted.rds
      moderately_sensitive:
        csv: output/model/mod_strat_logistic_redacted.csv

  # Coverage summaries ----
  vaccine_coverage:
    run: r:latest -e 'rmarkdown::render("analysis/coverage/vaccine_coverage.Rmd", knit_root_dir = "/workspace", output_dir="/workspace/output/markdown")'
    needs: [data_selection_coverage, table_1_coverage, cox_model_dose3, cox_model_dose4, logistic_model]
    outputs:
      moderately_sensitive:
        html: output/markdown/vaccine_coverage.html
        
  # Coverage summaries ----
  cox_model_check_coverage:
    run: r:latest -e 'rmarkdown::render("analysis/coverage/cox_model_check_coverage.Rmd", knit_root_dir = "/workspace", output_dir="/workspace/output/markdown")'
    needs: [data_selection_coverage, cox_model_dose3]
    outputs:
      moderately_sensitive:
        html: output/markdown/cox_model_check_coverage.html

  # Coverage summaries ----
#  cox_model_check:
#    run: r:latest -e 'rmarkdown::render("analysis/coverage/cox_model_check.Rmd", knit_root_dir = "/workspace", output_dir="/workspace/output/markdown")'
#    needs: [data_selection_coverage, cox_model]
#    outputs:
#      moderately_sensitive:
#        html: output/markdown/cox_model_check.html

#############################
### VE - unmatched analyses
#############################

# Select cohort (single script used for both matched and unmatched analyses) ----
  data_selection_VE:
    run: r:latest analysis/VE/data_selection_VE.R
    needs: [data_process]
    outputs:
      highly_sensitive:
        data1: output/data/data_cohort_VE.rds
        data2: output/data/data_cohort_VE_matched.rds
        csv1: output/data/data_cohort_VE.csv
        csv2: output/data/data_cohort_VE_matched.csv
      moderately_sensitive:
        csv1: output/tables/flowchart_VE.csv
        csv2: output/tables/flowchart_VE_matched.csv

  # Table 1 (VE unmatched) ----
  table_1_VE:
    run: r:latest analysis/VE/table_1_VE.R unmatched
    needs: [data_selection_VE]
    outputs:
      highly_sensitive:
        data: output/tables/table1_VE_redacted.rds
      moderately_sensitive:
        table: output/tables/table1_VE_redacted.html

  # Table IRR (VE unmatched)
  table_irr:
    run: r:latest analysis/VE/table_irr.R unmatched
    needs: [data_selection_VE]
    outputs:
      highly_sensitive:
        data: output/tables/table_irr_redacted.rds
      moderately_sensitive:
        csv: output/tables/table_irr_redacted.csv
        
  # Table IRR - verification (adapted from prior scripts)
  table_irr_verification:
    run: r:latest analysis/VE/table_irr_verification.R
    needs: [data_selection_VE]
    outputs:
      moderately_sensitive:
        csv: output/tables/table_irr_redacted_verification.csv
  
  # Cox models - comparative VE unmatched ----
  cox_model_VE:
    run: r:latest analysis/VE/cox_model_VE.R unmatched
    needs: [data_selection_VE, table_irr]
    outputs:
      highly_sensitive:
        data: output/model/VE/modelcox*.rds
      moderately_sensitive:
        csv: output/model/VE/modelcox*.csv
        txt: output/model/VE/modelcox*.txt

  # Cox VE summaries for unmatched analysis ----
  cox_VE_summary:
    run: r:latest -e 'rmarkdown::render("analysis/VE/cox_VE_summary.Rmd", knit_root_dir = "/workspace", output_dir="/workspace/output/markdown")'
    needs: [data_selection_VE, table_1_VE, table_irr, cox_model_VE]
    outputs:
      moderately_sensitive:
        html: output/markdown/cox_VE_summary.html
        
# PLR models - comparative VE unmatched ----
  plr_model_VE:
    run: r:latest analysis/VE/plr_model_VE.R unmatched
    needs: [data_selection_VE, table_irr]
    outputs:
      highly_sensitive:
        data: output/model/VE_plr/modelplr*.rds
      moderately_sensitive:
        csv: output/model/VE_plr/modelplr*.csv
        txt: output/model/VE_plr/modelplr*.txt

  # PLR VE summaries for unmatched analysis ----
  plr_VE_summary:
    run: r:latest -e 'rmarkdown::render("analysis/VE/plr_VE_summary.Rmd", knit_root_dir = "/workspace", output_dir="/workspace/output/markdown")'
    needs: [data_selection_VE, table_1_VE, table_irr, plr_model_VE]
    outputs:
      moderately_sensitive:
        html: output/markdown/plr_VE_summary.html

#############################
### VE - matched analyses
#############################
# Same scripts above but with matched argument in 'run'

  # Table 1 (VE matched) ----
  table_1_VE_matched:
    run: r:latest analysis/VE/table_1_VE.R matched
    needs: [data_selection_VE]
    outputs:
      highly_sensitive:
        data: output/tables/table1_VE_matched_redacted.rds
      moderately_sensitive:
        table: output/tables/table1_VE_matched_redacted.html

  # Table IRR (VE matched)
  table_irr_matched:
    run: r:latest analysis/VE/table_irr.R matched
    needs: [data_selection_VE]
    outputs:
      highly_sensitive:
        data: output/tables/table_irr_matched_redacted.rds
      moderately_sensitive:
        csv: output/tables/table_irr_matched_redacted.csv

  # Cox models - comparative VE matched ----
  cox_model_VE_matched:
    run: r:latest analysis/VE/cox_model_VE.R matched
    needs: [data_selection_VE, table_irr_matched]
    outputs:
      highly_sensitive:
        data: output/model/VE_matched/modelcox*.rds
      moderately_sensitive:
        csv: output/model/VE_matched/modelcox*.csv
        txt: output/model/VE_matched/modelcox*.txt
   
  # Cox VE summaries for matched analysis ----
  cox_VE_summary_matched:
    run: r:latest -e 'rmarkdown::render("analysis/VE/cox_VE_summary_matched.Rmd", knit_root_dir = "/workspace", output_dir="/workspace/output/markdown")'
    needs: [data_selection_VE, table_1_VE_matched, table_irr_matched, cox_model_VE_matched]
    outputs:
      moderately_sensitive:
        html: output/markdown/cox_VE_summary_matched.html
        
        
  # Check session info for set of packages ----
  #session:
  #  run: r:latest -e 'rmarkdown::render("analysis/session.Rmd", knit_root_dir = "/workspace", output_dir="/workspace/output/markdown")'
  #  needs: [data_selection]
  #  outputs:
  #    moderately_sensitive:
  #      html: output/markdown/session.html

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 00:13:10

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

Job information

Status
Succeeded
Backend
TPP
Workspace
ckd-coverage-ve
Requested by
Ed Parker
Branch
main
Force run dependencies
No
Git commit hash
4cccdfe
Requested actions
  • data_selection_coverage
  • data_properties_coverage
  • table_1_coverage

Code comparison

Compare the code used in this Job Request