generated from opensafely/research-template
/
project.yaml
123 lines (101 loc) · 4.38 KB
/
project.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
version: '3.0'
expectations:
population_size: 1000
actions:
generate_study_population_1:
run: cohortextractor:latest generate_cohort --study-definition study_definition --index-date-range "2019-09-01 to 2020-05-01 by month" --output-format feather
outputs:
highly_sensitive:
cohort: output/input_*.feather
generate_study_population_2:
run: cohortextractor:latest generate_cohort --study-definition study_definition --index-date-range "2020-06-01 to 2021-02-01 by month" --output-format feather
outputs:
highly_sensitive:
cohort: output/input*.feather
generate_study_population_3:
run: cohortextractor:latest generate_cohort --study-definition study_definition --index-date-range "2021-03-01 to 2021-09-01 by month" --output-format feather
outputs:
highly_sensitive:
cohort: output/inpu*.feather
generate_study_population_ethnicity:
run: cohortextractor:latest generate_cohort --study-definition study_definition_ethnicity --output-format feather
outputs:
highly_sensitive:
cohort: output/input_ethnicity.feather
join_ethnicity_region:
run: python:latest python analysis/join_ethnicity_region.py
needs: [generate_study_population_1, generate_study_population_2, generate_study_population_3, generate_study_population_ethnicity]
outputs:
highly_sensitive:
cohort: output/inp*.feather
filter_population:
run: python:latest python analysis/filter_population.py
needs: [join_ethnicity_region]
outputs:
highly_sensitive:
cohort: output/input_filtered_*.feather
calculate_numerators:
run: python:latest python analysis/calculate_numerators.py
needs: [filter_population]
outputs:
highly_sensitive:
cohort: output/indicator_e_f_*.feather
calculate_composite_indicators:
run: python:latest python analysis/composite_indicators.py
needs: [calculate_numerators, filter_population]
outputs:
moderately_sensitive:
counts: output/*_composite_measure.csv
generate_measures:
run: cohortextractor:latest generate_measures --study-definition study_definition --output-dir=output
needs: [filter_population]
outputs:
moderately_sensitive:
measure_csv: output/measure_*_rate.csv
generate_measures_demographics:
run: python:latest python analysis/calculate_measures.py
needs: [calculate_numerators, filter_population]
outputs:
moderately_sensitive:
counts: output/indicator_measure_*.csv
measure_csv: output/measure*_rate.csv
demographics: output/demographics_summary_*.csv
generate_summary_counts:
run: python:latest python analysis/summary_statistics.py
needs: [filter_population, generate_measures, generate_measures_demographics, calculate_numerators]
outputs:
moderately_sensitive:
patient_count: output/patient_count_*.json
practice_count: output/practice_count_*.json
summary: output/indicator_summary_statistics_*.json
generate_plots:
run: python:latest python analysis/plot_measures.py
needs: [generate_measures, generate_measures_demographics, calculate_composite_indicators]
outputs:
moderately_sensitive:
counts: output/figures/plot_*.jpeg
combined: output/figures/combined_plot_*.png
demographics: output/demographic_aggregates.csv
generate_notebook:
run: jupyter:latest jupyter nbconvert /workspace/analysis/report.ipynb --execute --to html --template basic --output-dir=/workspace/output --ExecutePreprocessor.timeout=86400 --no-input
needs: [generate_plots, generate_summary_counts]
outputs:
moderately_sensitive:
notebook: output/report.html
generate_dem_notebook:
run: jupyter:latest jupyter nbconvert /workspace/analysis/demographic_report.ipynb --execute --to html --template basic --output-dir=/workspace/output --ExecutePreprocessor.timeout=86400 --no-input
needs: [generate_plots]
outputs:
moderately_sensitive:
notebook: output/demographic_report.html
run_tests:
run: python:latest python -m pytest --junit-xml=output/pytest.xml --verbose
outputs:
moderately_sensitive:
log: output/pytest.xml
test_population:
run: python:latest python analysis/test_population.py
needs: [filter_population]
outputs:
moderately_sensitive:
counts: output/population_counts.csv