rwe 0.0.2__py3-none-any.whl → 0.0.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rwe/clients/aou.py +24 -15
- rwe/clients/azn.py +21 -27
- rwe/clients/genebass.py +8 -8
- rwe/generate_report.py +3 -3
- rwe/parsers/aou/config.py +1 -1
- rwe/utils/helpers.py +49 -0
- rwe/utils/report.py +1 -0
- {rwe-0.0.2.dist-info → rwe-0.0.4.dist-info}/METADATA +1 -1
- {rwe-0.0.2.dist-info → rwe-0.0.4.dist-info}/RECORD +12 -12
- {rwe-0.0.2.dist-info → rwe-0.0.4.dist-info}/WHEEL +0 -0
- {rwe-0.0.2.dist-info → rwe-0.0.4.dist-info}/licenses/LICENSE +0 -0
- {rwe-0.0.2.dist-info → rwe-0.0.4.dist-info}/top_level.txt +0 -0
rwe/clients/aou.py
CHANGED
|
@@ -34,13 +34,13 @@ def generate_aou_variant_info_demographics_report(doc: Document, chrm: str, gene
|
|
|
34
34
|
fig1_path = uth._save_fig_to_tmp(fig1, basename="variant_information", dpi=300)
|
|
35
35
|
doc.add_paragraph() # spacing
|
|
36
36
|
doc.add_picture(fig1_path, width=Inches(6.5))
|
|
37
|
-
uth.
|
|
37
|
+
uth._add_figure_caption(doc, "Variant information summary (carrier counts by consequence; most/least frequent variants).")
|
|
38
38
|
# 2) Demographics figure
|
|
39
39
|
fig2, _axes2 = demographics_plot(person_df)
|
|
40
40
|
fig2_path = uth._save_fig_to_tmp(fig2, basename="demographics", dpi=300)
|
|
41
41
|
doc.add_paragraph() # spacing
|
|
42
|
-
doc.add_picture(fig2_path, width=Inches(
|
|
43
|
-
uth.
|
|
42
|
+
doc.add_picture(fig2_path, width=Inches(4))
|
|
43
|
+
uth._add_figure_caption(doc, "Demographics of cases vs controls (age, ancestry, sex at birth, ethnicity).")
|
|
44
44
|
return doc
|
|
45
45
|
|
|
46
46
|
|
|
@@ -75,38 +75,39 @@ def get_aou_manhattan(df, gene):
|
|
|
75
75
|
def generate_aou_clinical_report(doc, chrm, gene, zygosity):
|
|
76
76
|
from rwe.parsers.aou.config import BUCKET
|
|
77
77
|
phewas_file = f"{BUCKET}/data/phewas/results/chr{chrm}/{gene}_phewas.csv"
|
|
78
|
+
doc.add_heading("Phenome-wide Association Study (PheWAS) in All of Us cohort", level=2)
|
|
78
79
|
if uth._gcs_size(phewas_file, BUCKET) > 0:
|
|
79
80
|
df = clean_aou_phewas(phewas_file)
|
|
80
81
|
fig, plot_df = get_aou_manhattan(df, gene)
|
|
81
82
|
fig_path = uth._save_fig_to_tmp(fig, basename="aou_phewas", dpi=300)
|
|
82
83
|
doc.add_paragraph() # spacing
|
|
83
84
|
doc.add_picture(fig_path, width=Inches(6.5))
|
|
84
|
-
uth.
|
|
85
|
+
uth._add_figure_caption(doc, f"{gene} PheWAS results from All of Us.")
|
|
85
86
|
doc.add_paragraph() # spacing
|
|
86
87
|
|
|
87
|
-
# Table
|
|
88
|
+
# Table: Top 10 significant hits (sorted by p-value)
|
|
88
89
|
top_significant = plot_df.nsmallest(10, 'p_value')
|
|
89
90
|
columns = ['phecode_string', 'phecode_category', 'odds_ratio', 'p_value']
|
|
90
91
|
# Rename columns for display
|
|
91
92
|
display_df = top_significant[columns].copy()
|
|
92
93
|
display_df.columns = ['Phecode', 'Category', 'OR', 'P-value']
|
|
93
|
-
uth._add_table_to_doc(doc, display_df, f"
|
|
94
|
+
uth._add_table_to_doc(doc, display_df, uth._add_table_title(doc, f"Top 10 significant associations for {gene} in AoU"),
|
|
94
95
|
['Phecode', 'Category', 'OR', 'P-value'], list(map(Inches, [2.75, 1.75, 0.75, 0.75]))
|
|
95
96
|
)
|
|
96
97
|
|
|
97
|
-
# Table
|
|
98
|
+
# Table: Top 10 negative beta hits (odds_ratio < 0, sorted by p-value)
|
|
98
99
|
negative_beta = plot_df[plot_df['odds_ratio'] < 1].nsmallest(10, 'p_value')
|
|
99
100
|
if len(negative_beta) > 0:
|
|
100
101
|
display_df_neg = negative_beta[columns].copy()
|
|
101
102
|
display_df_neg.columns = ['Phecode', 'Category', 'OR', 'P-value']
|
|
102
|
-
uth._add_table_to_doc(doc, display_df_neg, f"
|
|
103
|
+
uth._add_table_to_doc(doc, display_df_neg, uth._add_table_title(doc, f"Top 10 protective associations for {gene} in AoU"),
|
|
103
104
|
['Phecode', 'Category', 'OR', 'P-value'], list(map(Inches, [2.75, 1.75, 0.75, 0.75]))
|
|
104
105
|
)
|
|
105
106
|
|
|
106
|
-
doc.
|
|
107
|
+
doc.add_page_break() # spacing
|
|
107
108
|
else:
|
|
108
109
|
doc.add_paragraph(f"No AoU PheWAS results found for {gene}.")
|
|
109
|
-
doc.
|
|
110
|
+
doc.add_page_break() # spacing
|
|
110
111
|
return doc
|
|
111
112
|
|
|
112
113
|
|
|
@@ -160,14 +161,22 @@ def generate_aou_labs_measurements_report(doc: Document, chrm: str, gene: str, z
|
|
|
160
161
|
numerical_measurements_df["cases"] = numerical_measurements_df.person_id.isin(variant_df[f"{zygosity}_samples"])
|
|
161
162
|
measurements = numerical_measurements_df["measurement"].unique().tolist()
|
|
162
163
|
res_df = run_parallel(numerical_measurements_df, measurements=measurements, n_jobs=None, chunksize=20)
|
|
163
|
-
|
|
164
|
+
top_ten_lab = res_df.nsmallest(10, "p_mwu").loc[:, ["measurement", "p_mwu", "u_stat", "n_cases", "n_ctrls"]]
|
|
165
|
+
top_ten_lab.columns = ["Measurement", "P-value", "U statistic", "N cases", "N controls"]
|
|
166
|
+
uth._add_table_to_doc(
|
|
167
|
+
doc, top_ten_lab, uth._add_table_title(
|
|
168
|
+
doc, f"Top 10 lab measurements for {gene} pLoF carriers in AoU"),
|
|
169
|
+
top_ten_lab.columns.tolist(), list(map(Inches, [3, 0.75, 0.75, 0.75, 0.75]))
|
|
170
|
+
)
|
|
171
|
+
doc.add_page_break() # spacing
|
|
164
172
|
for k,v in MEASUREMENT_GROUPS.items():
|
|
165
|
-
f, a = plot_measurements(numerical_measurements_df, v,
|
|
173
|
+
f, a = plot_measurements(numerical_measurements_df, v, col="median_value", res_df=res_df)
|
|
166
174
|
fig_path = uth._save_fig_to_tmp(f, basename=f"aou_measurements_{k}", dpi=300)
|
|
167
175
|
doc.add_paragraph() # spacing
|
|
176
|
+
doc.add_heading(f"{k.capitalize} profile of {gene} pLoF carriers in All of Us cohort", level=2)
|
|
168
177
|
doc.add_picture(fig_path, width=Inches(6.5))
|
|
169
|
-
uth.
|
|
170
|
-
doc.
|
|
178
|
+
uth._add_figure_caption(doc, f"{gene} pLoF carrier {k} results from All of Us.")
|
|
179
|
+
doc.add_page_break() # spacing
|
|
171
180
|
return doc
|
|
172
181
|
|
|
173
182
|
############### Surveys ###############
|
|
@@ -187,7 +196,7 @@ def generate_aou_survey_report(doc: Document, chrm: str, gene: str, zygosity: st
|
|
|
187
196
|
fig_path = uth._save_fig_to_tmp(fig, basename="aou_surveys", dpi=300)
|
|
188
197
|
doc.add_paragraph() # spacing
|
|
189
198
|
doc.add_picture(fig_path, width=Inches(6.5))
|
|
190
|
-
uth.
|
|
199
|
+
uth._add_figure_caption(doc, f"{gene} pLoF carrier survey results from All of Us.")
|
|
191
200
|
doc.add_paragraph() # spacing
|
|
192
201
|
return doc
|
|
193
202
|
|
rwe/clients/azn.py
CHANGED
|
@@ -10,41 +10,34 @@ import rwe.utils.helpers as uth
|
|
|
10
10
|
from docx.shared import Inches
|
|
11
11
|
|
|
12
12
|
def extract_only_csv_rename(zip_path: str, gene: str) -> str:
|
|
13
|
-
"""
|
|
14
|
-
Unzips `zip_path` into its parent directory, keeps only the csv,
|
|
15
|
-
renames it to {gene}_azphewas.csv, removes everything else including the zip.
|
|
16
|
-
Returns final csv path.
|
|
17
|
-
"""
|
|
18
13
|
zip_path = Path(zip_path)
|
|
19
14
|
gene_dir = zip_path.parent
|
|
20
15
|
target_csv = gene_dir / f"{gene}_azphewas.csv"
|
|
21
16
|
|
|
22
|
-
# Extract
|
|
17
|
+
# Extract into a dedicated folder
|
|
18
|
+
extract_dir = gene_dir / f"__extract_{zip_path.stem}"
|
|
19
|
+
if extract_dir.exists():
|
|
20
|
+
shutil.rmtree(extract_dir)
|
|
21
|
+
extract_dir.mkdir(parents=True, exist_ok=True)
|
|
22
|
+
|
|
23
23
|
with zipfile.ZipFile(zip_path, "r") as z:
|
|
24
|
-
z.extractall(
|
|
24
|
+
z.extractall(extract_dir)
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
csvs = list(gene_dir.rglob("*.csv"))
|
|
26
|
+
csvs = list(extract_dir.rglob("*.csv"))
|
|
28
27
|
if not csvs:
|
|
29
28
|
raise FileNotFoundError(f"No CSV found after extracting {zip_path}")
|
|
30
29
|
|
|
31
|
-
# If multiple CSVs, pick the largest (usually the main table export)
|
|
32
30
|
csvs.sort(key=lambda p: p.stat().st_size, reverse=True)
|
|
33
31
|
chosen = csvs[0]
|
|
34
32
|
|
|
35
|
-
# Move/rename chosen CSV to target name at gene_dir root
|
|
36
33
|
if target_csv.exists():
|
|
37
34
|
target_csv.unlink()
|
|
38
35
|
chosen.replace(target_csv)
|
|
39
36
|
|
|
40
|
-
# Cleanup
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if p.is_dir():
|
|
45
|
-
shutil.rmtree(p)
|
|
46
|
-
else:
|
|
47
|
-
p.unlink()
|
|
37
|
+
# Cleanup only what we created
|
|
38
|
+
shutil.rmtree(extract_dir)
|
|
39
|
+
if zip_path.exists():
|
|
40
|
+
zip_path.unlink()
|
|
48
41
|
|
|
49
42
|
return str(target_csv)
|
|
50
43
|
|
|
@@ -143,36 +136,37 @@ def generate_azn_clinical_report(doc, gene, phewas_dir, phewas_filename=""):
|
|
|
143
136
|
with sync_playwright() as playwright:
|
|
144
137
|
run(playwright, gene=gene, save_path=phewas_dir)
|
|
145
138
|
|
|
146
|
-
|
|
139
|
+
doc.add_heading("Phenome-wide Association Study (PheWAS) in UK Biobank cohort collected from AstraZeneca", level=2)
|
|
140
|
+
if os.path.exists(phewas_file):
|
|
147
141
|
fig, plot_df = get_azn_manhattan(gene, phewas_file)
|
|
148
142
|
fig_path = uth._save_fig_to_tmp(fig, basename="azn_phewas", dpi=300)
|
|
149
143
|
doc.add_paragraph() # spacing
|
|
150
144
|
doc.add_picture(fig_path, width=Inches(6.5))
|
|
151
|
-
uth.
|
|
145
|
+
uth._add_figure_caption(doc, f"{gene} PheWAS results from AstraZeneca.")
|
|
152
146
|
doc.add_paragraph() # spacing
|
|
153
147
|
|
|
154
|
-
# Table
|
|
148
|
+
# Table: Top 10 significant hits (sorted by p-value)
|
|
155
149
|
top_significant = plot_df.nsmallest(10, 'P value')
|
|
156
150
|
columns = ['Phenotype', 'Phenotypic category', 'Odds ratio', 'P value']
|
|
157
151
|
# Rename columns for display
|
|
158
152
|
display_df = top_significant[columns].copy()
|
|
159
153
|
display_df.columns = ['Phenotype', 'Category', 'OR', 'P-value']
|
|
160
|
-
uth._add_table_to_doc(doc, display_df, f"
|
|
154
|
+
uth._add_table_to_doc(doc, display_df, uth._add_table_title(doc, f"Top 10 significant associations for {gene} in AstraZeneca"),
|
|
161
155
|
['Phenotype', 'Category', 'OR', 'P-value'], list(map(Inches, [2.75, 1.75, 0.75, 0.75]))
|
|
162
156
|
)
|
|
163
|
-
# Table
|
|
157
|
+
# Table: Top 10 negative beta hits (odds_ratio < 0, sorted by p-value)
|
|
164
158
|
negative_beta = plot_df[plot_df['Odds ratio'] < 1].nsmallest(10, 'P value')
|
|
165
159
|
if len(negative_beta) > 0:
|
|
166
160
|
display_df_neg = negative_beta[columns].copy()
|
|
167
161
|
display_df_neg.columns = ['Phenotype', 'Category', 'OR', 'P-value']
|
|
168
|
-
uth._add_table_to_doc(doc, display_df_neg, f"
|
|
162
|
+
uth._add_table_to_doc(doc, display_df_neg, uth._add_table_title(doc, f"Top 10 protective associations for {gene} in AstraZeneca"),
|
|
169
163
|
['Phenotype', 'Category', 'OR', 'P-value'], list(map(Inches, [2.75, 1.75, 0.75, 0.75]))
|
|
170
164
|
)
|
|
171
|
-
doc.
|
|
165
|
+
doc.add_page_break() # spacing
|
|
172
166
|
|
|
173
167
|
else:
|
|
174
168
|
doc.add_paragraph(f"No AstraZeneca PheWAS results found for {gene}.")
|
|
175
|
-
doc.
|
|
169
|
+
doc.add_page_break() # spacing
|
|
176
170
|
return doc
|
|
177
171
|
|
|
178
172
|
|
rwe/clients/genebass.py
CHANGED
|
@@ -93,38 +93,38 @@ def generate_genebass_clinical_report(doc, gene, phewas_dir, phewas_filename="")
|
|
|
93
93
|
approved_symbol, ensembl_id, entrez_id = get_gene_info(gene, hgnc_path)
|
|
94
94
|
with sync_playwright() as playwright:
|
|
95
95
|
run(playwright, approved_symbol, ensembl_id, save_path=phewas_dir)
|
|
96
|
-
|
|
96
|
+
doc.add_heading("Phenome-wide Association Study (PheWAS) in UK Biobank cohort collected from GeneBass", level=2)
|
|
97
97
|
if os.path.exists(phewas_file):
|
|
98
98
|
fig, plot_df = get_genebass_manhattan(gene, phewas_file)
|
|
99
99
|
fig_path = uth._save_fig_to_tmp(fig, basename="genebass_phewas", dpi=300)
|
|
100
100
|
doc.add_paragraph() # spacing
|
|
101
101
|
doc.add_picture(fig_path, width=Inches(6))
|
|
102
|
-
uth.
|
|
102
|
+
uth._add_figure_caption(doc, f"{gene} PheWAS results from GeneBass.")
|
|
103
103
|
doc.add_paragraph() # spacing
|
|
104
104
|
|
|
105
|
-
# Table
|
|
105
|
+
# Table: Top 10 significant hits (sorted by p-value)
|
|
106
106
|
top_significant = plot_df.nsmallest(10, 'P-Value (Burden)')
|
|
107
107
|
columns = ['Description', 'Category', 'Beta', 'P-Value (Burden)']
|
|
108
108
|
# Rename columns for display
|
|
109
109
|
display_df = top_significant[columns].copy()
|
|
110
110
|
display_df.columns = ['Description', 'Category', 'Beta', 'P-value']
|
|
111
|
-
uth._add_table_to_doc(doc, display_df, f"
|
|
111
|
+
uth._add_table_to_doc(doc, display_df, uth._add_table_title(doc, f"Top 10 significant associations for {gene} in GeneBass"),
|
|
112
112
|
['Description', 'Category', 'Beta', 'P-value'], list(map(Inches, [2.75, 2.0, 0.5, 0.75]))
|
|
113
113
|
)
|
|
114
114
|
|
|
115
|
-
# Table
|
|
115
|
+
# Table: Top 10 negative beta hits (beta < 0, sorted by p-value)
|
|
116
116
|
negative_beta = plot_df[plot_df['Beta'] < 0].nsmallest(10, 'P-Value (Burden)')
|
|
117
117
|
if len(negative_beta) > 0:
|
|
118
118
|
display_df_neg = negative_beta[columns].copy()
|
|
119
119
|
display_df_neg.columns = ['Description', 'Category', 'Beta', 'P-value']
|
|
120
|
-
uth._add_table_to_doc(doc, display_df_neg, f"
|
|
120
|
+
uth._add_table_to_doc(doc, display_df_neg, uth._add_table_title(doc, f"Top 10 protective associations for {gene} in GeneBass"),
|
|
121
121
|
['Description', 'Category', 'Beta', 'P-value'], list(map(Inches, [2.75, 2.0, 0.5, 0.75]))
|
|
122
122
|
)
|
|
123
123
|
|
|
124
|
-
doc.
|
|
124
|
+
doc.add_page_break() # spacing
|
|
125
125
|
else:
|
|
126
126
|
doc.add_paragraph(f"No GeneBass PheWAS results found for {gene}.")
|
|
127
|
-
doc.
|
|
127
|
+
doc.add_page_break() # spacing
|
|
128
128
|
return doc
|
|
129
129
|
|
|
130
130
|
if __name__ == "__main__":
|
rwe/generate_report.py
CHANGED
|
@@ -33,7 +33,9 @@ def generate_rwe_report(
|
|
|
33
33
|
logo_path : optional str (path to Arrowhead logo PNG/JPG)
|
|
34
34
|
report_date : optional str (e.g. "January 26th, 2026")
|
|
35
35
|
"""
|
|
36
|
-
|
|
36
|
+
if not out_docx_path:
|
|
37
|
+
out_docx_path = f"./rwe_reports/{gene}_RWE_report.docx"
|
|
38
|
+
proj_dir = os.path.dirname(out_docx_path)
|
|
37
39
|
os.makedirs(proj_dir, exist_ok=True)
|
|
38
40
|
|
|
39
41
|
# --- Title and Contents --- #
|
|
@@ -56,8 +58,6 @@ def generate_rwe_report(
|
|
|
56
58
|
|
|
57
59
|
|
|
58
60
|
# Save
|
|
59
|
-
if not out_docx_path:
|
|
60
|
-
out_docx_path = f"{gene}_RWE_report.docx"
|
|
61
61
|
doc.save(out_docx_path)
|
|
62
62
|
return out_docx_path
|
|
63
63
|
|
rwe/parsers/aou/config.py
CHANGED
|
@@ -61,7 +61,7 @@ PLAUSIBLE = {
|
|
|
61
61
|
|
|
62
62
|
# --- Liver / protein balance (AoU typical units: albumin g/L, protein g/L, enzymes U/L, bilirubin mg/dL OR umol/L; range is loose) ---
|
|
63
63
|
"Albumin [Mass/volume] in Serum or Plasma": (15, 60), # g/L
|
|
64
|
-
"Protein [Mass/volume] in Serum or Plasma": (
|
|
64
|
+
"Protein [Mass/volume] in Serum or Plasma": (3, 12), # g/dL
|
|
65
65
|
"Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma": (0, 1000), # U/L
|
|
66
66
|
"Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma": (0, 1000), # U/L
|
|
67
67
|
"Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma": (10, 2000), # U/L
|
rwe/utils/helpers.py
CHANGED
|
@@ -10,6 +10,28 @@ from google.cloud import storage
|
|
|
10
10
|
|
|
11
11
|
# ---------- DOCX helpers ----------
|
|
12
12
|
|
|
13
|
+
def _init_report_counters(doc: Document) -> Document:
|
|
14
|
+
"""Initialize figure and table counters on the document object."""
|
|
15
|
+
doc._report_counters = {"figure": 0, "table": 0}
|
|
16
|
+
return doc
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _get_next_figure_num(doc: Document) -> int:
|
|
20
|
+
"""Get the next figure number and increment the counter."""
|
|
21
|
+
if not hasattr(doc, '_report_counters'):
|
|
22
|
+
doc._report_counters = {"figure": 0, "table": 0}
|
|
23
|
+
doc._report_counters["figure"] += 1
|
|
24
|
+
return doc._report_counters["figure"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _get_next_table_num(doc: Document) -> int:
|
|
28
|
+
"""Get the next table number and increment the counter."""
|
|
29
|
+
if not hasattr(doc, '_report_counters'):
|
|
30
|
+
doc._report_counters = {"figure": 0, "table": 0}
|
|
31
|
+
doc._report_counters["table"] += 1
|
|
32
|
+
return doc._report_counters["table"]
|
|
33
|
+
|
|
34
|
+
|
|
13
35
|
def _set_default_styles(doc: Document):
|
|
14
36
|
# Normal
|
|
15
37
|
style = doc.styles["Normal"]
|
|
@@ -57,12 +79,39 @@ def _add_toc_field(paragraph):
|
|
|
57
79
|
|
|
58
80
|
|
|
59
81
|
def _add_caption(doc: Document, text: str):
|
|
82
|
+
"""Add a caption paragraph (for backward compatibility)."""
|
|
60
83
|
p = doc.add_paragraph(text)
|
|
61
84
|
p.style = doc.styles["Normal"]
|
|
62
85
|
p.runs[0].italic = True
|
|
63
86
|
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
64
87
|
return p
|
|
65
88
|
|
|
89
|
+
|
|
90
|
+
def _add_figure_caption(doc: Document, description: str):
|
|
91
|
+
"""Add an auto-numbered figure caption.
|
|
92
|
+
|
|
93
|
+
Args:
|
|
94
|
+
doc: Document object with _report_counters attached
|
|
95
|
+
description: Caption text without the "Figure X." prefix
|
|
96
|
+
"""
|
|
97
|
+
fig_num = _get_next_figure_num(doc)
|
|
98
|
+
text = f"Figure {fig_num}. {description}"
|
|
99
|
+
return _add_caption(doc, text)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _add_table_title(doc: Document, description: str):
|
|
103
|
+
"""Get an auto-numbered table title string.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
doc: Document object with _report_counters attached
|
|
107
|
+
description: Title text without the "Table X." prefix
|
|
108
|
+
|
|
109
|
+
Returns:
|
|
110
|
+
str: The full table title with number prefix
|
|
111
|
+
"""
|
|
112
|
+
table_num = _get_next_table_num(doc)
|
|
113
|
+
return f"Table {table_num}. {description}"
|
|
114
|
+
|
|
66
115
|
def _save_fig_to_tmp(fig, basename="figure", dpi=300):
|
|
67
116
|
tmpdir = tempfile.mkdtemp(prefix="rwe_report_")
|
|
68
117
|
path = os.path.join(tmpdir, f"{basename}.png")
|
rwe/utils/report.py
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
rwe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
rwe/generate_report.py,sha256
|
|
2
|
+
rwe/generate_report.py,sha256=AlM-_RzLAPYoM8U120qdQH1E9TmqzJkkBZpHXlAH7Yw,1840
|
|
3
3
|
rwe/assets/Arrowhead_Pharmaceuticals_logo.png,sha256=C2mAn6GG4gArds4sBnqM5LcxhuZgujXjwGiZxIuxbLo,51053
|
|
4
4
|
rwe/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
rwe/clients/aou.py,sha256=
|
|
6
|
-
rwe/clients/azn.py,sha256=
|
|
7
|
-
rwe/clients/genebass.py,sha256=
|
|
5
|
+
rwe/clients/aou.py,sha256=YHp1QbUXBAHR6OrngggOj6-NVsnJ7x5-K1Da7UnZbVY,10047
|
|
6
|
+
rwe/clients/azn.py,sha256=eQ3WKepK5xNk9JVaXNACTJNsbW2DXWHqermVV51YcOM,7441
|
|
7
|
+
rwe/clients/genebass.py,sha256=HzaKCkNBubf0-qCx1g_DcR4baSqsM0OfSmKoupV7RPs,6274
|
|
8
8
|
rwe/clients/hgnc.py,sha256=ZabNiMgzwu4rCVCptbgUb38qHsL9cHlsQX7s6mZA8Nk,2015
|
|
9
9
|
rwe/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
rwe/parsers/aou/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
rwe/parsers/aou/collect.py,sha256=3j9S0vg3s5u-lJYhP9gdJA_SJVUTUld-i8M1mS-qg-0,13610
|
|
12
|
-
rwe/parsers/aou/config.py,sha256=
|
|
12
|
+
rwe/parsers/aou/config.py,sha256=7O8NhrxOAeDJnKYsiQBgufNkxo_O6nRPSrhJ49pteLk,27017
|
|
13
13
|
rwe/parsers/aou/process.py,sha256=q-H12OQdwBZMqWxuDo389m6WCJb9Qsp5ZIwVc2MHqu4,3683
|
|
14
14
|
rwe/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
rwe/plots/clinical.py,sha256=dBgdrFog-4gWJyJphoObSuoPtS7Q4wOprWyXMcDD6Dw,7738
|
|
@@ -18,10 +18,10 @@ rwe/plots/measurements.py,sha256=Z7GG4SMXD3ExGGJF6LvmZ_XwvMwGB_6FFk7nxz_8fr8,328
|
|
|
18
18
|
rwe/plots/surveys.py,sha256=2SiNBnjLQL2V4jfeMTIj2y2v7y7Wh4kLji2dnEJ0cdo,6672
|
|
19
19
|
rwe/plots/variant_info.py,sha256=KLUnefwmSxcmOn7mkNBcxvJdpNN4i4F9SZ0SZGlNrvk,5362
|
|
20
20
|
rwe/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
rwe/utils/helpers.py,sha256=
|
|
22
|
-
rwe/utils/report.py,sha256=
|
|
23
|
-
rwe-0.0.
|
|
24
|
-
rwe-0.0.
|
|
25
|
-
rwe-0.0.
|
|
26
|
-
rwe-0.0.
|
|
27
|
-
rwe-0.0.
|
|
21
|
+
rwe/utils/helpers.py,sha256=4yeNeaK_29t9uZL4sZr9kHtUf5rJ5P6cAuWY4BT-hvk,5957
|
|
22
|
+
rwe/utils/report.py,sha256=dAWWeB1eaO1CD7fn1RbBt4R4dBdl9LyuQe6uPj4TAKI,4693
|
|
23
|
+
rwe-0.0.4.dist-info/licenses/LICENSE,sha256=0PfJPAoyFVWY4L80aEcQyjy4PojxzfqcOenSuXdhgBg,1072
|
|
24
|
+
rwe-0.0.4.dist-info/METADATA,sha256=va0uTJb7uNfqmUGfK1qLOclKYbAW-0aAC3SY3zCeK9o,23601
|
|
25
|
+
rwe-0.0.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
26
|
+
rwe-0.0.4.dist-info/top_level.txt,sha256=zwX0M3dfnEfklZqvvBPQXiJykChpiqt219EolC3WFRc,4
|
|
27
|
+
rwe-0.0.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|