Spaces:
Running
Running
Kévin Yauy
commited on
Commit
•
fa8bd43
1
Parent(s):
fd06789
refacto(requirements): add requirements
Browse filesFormer-commit-id: 10acc250bd2079381b082a132ef673875d815d88
- .python-version +1 -0
- README.md +2 -2
- phenogenius_cli.py +77 -75
- requirements.txt +178 -0
.python-version
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
3.8
|
README.md
CHANGED
@@ -18,8 +18,8 @@ If you use PhenoGenius, please cite:
|
|
18 |
- Requirements
|
19 |
|
20 |
```bash
|
21 |
-
python == 3.8
|
22 |
-
poetry
|
23 |
```
|
24 |
|
25 |
- Install dependencies
|
|
|
18 |
- Requirements
|
19 |
|
20 |
```bash
|
21 |
+
python == 3.8 #(pyenv install 3.8)
|
22 |
+
poetry #(https://python-poetry.org/docs/#installation)
|
23 |
```
|
24 |
|
25 |
- Install dependencies
|
phenogenius_cli.py
CHANGED
@@ -90,7 +90,7 @@ def score_sim_add(hpo_list_add, matrix, sim_dict, symbol):
|
|
90 |
|
91 |
@click.command()
|
92 |
@click.option("--result_file", default="match.tsv")
|
93 |
-
@click.option("--hpo_list", default=
|
94 |
def evaluate_matching(result_file, hpo_list):
|
95 |
logging.info("INFO: load databases")
|
96 |
ncbi, symbol = symbol_to_id_to_dict()
|
@@ -98,83 +98,85 @@ def evaluate_matching(result_file, hpo_list):
|
|
98 |
hp_onto = load_hp_ontology()
|
99 |
|
100 |
logging.info("INFO: clean HPO list")
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
hpo_list_up.append(hpo)
|
110 |
else:
|
111 |
-
|
112 |
-
|
113 |
-
axis=0
|
114 |
-
) == 0 and hpo_to_test not in ["HP:0000001"]:
|
115 |
-
hpo_to_test = hp_onto[hpo_to_test]["direct_parent"][0]
|
116 |
-
if hpo_to_test in ["HP:0000001"]:
|
117 |
-
pass
|
118 |
else:
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
.
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
.
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
|
179 |
|
180 |
if __name__ == "__main__":
|
|
|
90 |
|
91 |
@click.command()
|
92 |
@click.option("--result_file", default="match.tsv")
|
93 |
+
@click.option("--hpo_list", default=None)
|
94 |
def evaluate_matching(result_file, hpo_list):
|
95 |
logging.info("INFO: load databases")
|
96 |
ncbi, symbol = symbol_to_id_to_dict()
|
|
|
98 |
hp_onto = load_hp_ontology()
|
99 |
|
100 |
logging.info("INFO: clean HPO list")
|
101 |
+
if hpo_list is None:
|
102 |
+
print("Provide a list of HPO terms with the --hpo_list option")
|
103 |
+
else:
|
104 |
+
hpo_list_ini = hpo_list.strip().split(",")
|
105 |
+
hpo_list_up = []
|
106 |
+
for hpo in hpo_list_ini:
|
107 |
+
if hpo in ["HP:0000001"]:
|
108 |
+
pass
|
|
|
109 |
else:
|
110 |
+
if data[hpo].astype(bool).sum(axis=0) != 0:
|
111 |
+
hpo_list_up.append(hpo)
|
|
|
|
|
|
|
|
|
|
|
112 |
else:
|
113 |
+
hpo_to_test = hp_onto[hpo]["direct_parent"][0]
|
114 |
+
while data[hpo_to_test].astype(bool).sum(
|
115 |
+
axis=0
|
116 |
+
) == 0 and hpo_to_test not in ["HP:0000001"]:
|
117 |
+
hpo_to_test = hp_onto[hpo_to_test]["direct_parent"][0]
|
118 |
+
if hpo_to_test in ["HP:0000001"]:
|
119 |
+
pass
|
120 |
+
else:
|
121 |
+
hpo_list_up.append(hpo_to_test)
|
122 |
+
hpo_list = list(set(hpo_list_up))
|
123 |
+
if len(hpo_list) < 6:
|
124 |
+
logging.info("INFO: selected symptom interaction model - NMF")
|
125 |
+
pandarallel.initialize(nb_workers=4)
|
126 |
+
pheno_NMF, reduced = load_nmf_model()
|
127 |
+
witness = np.zeros(len(data.columns))
|
128 |
+
witness_nmf = np.matmul(pheno_NMF.components_, witness)
|
129 |
+
witness_df = (
|
130 |
+
pd.DataFrame(reduced)
|
131 |
+
.set_index(data.index)
|
132 |
+
.parallel_apply(lambda x: sum((x - witness_nmf) ** 2), axis=1)
|
133 |
+
)
|
134 |
+
|
135 |
+
patient = np.zeros(len(data.columns))
|
136 |
+
for hpo in hpo_list:
|
137 |
+
hpo_index = list(data.columns).index(hpo)
|
138 |
+
patient[hpo_index] = 1
|
139 |
+
|
140 |
+
patient_nmf = np.matmul(pheno_NMF.components_, patient)
|
141 |
+
patient_df = (
|
142 |
+
pd.DataFrame(reduced)
|
143 |
+
.set_index(data.index)
|
144 |
+
.parallel_apply(lambda x: sum((x - patient_nmf) ** 2), axis=1)
|
145 |
+
)
|
146 |
+
|
147 |
+
case_df = pd.DataFrame(patient_df - witness_df)
|
148 |
+
case_df.columns = ["score"]
|
149 |
+
case_df["score_norm"] = abs(case_df["score"] - case_df["score"].max())
|
150 |
+
case_df["sum"] = case_df["score_norm"]
|
151 |
+
case_df_sort = case_df.sort_values(by="sum", ascending=False)
|
152 |
+
case_df_sort["rank"] = (
|
153 |
+
case_df_sort["sum"].rank(ascending=False, method="max").astype(int)
|
154 |
+
)
|
155 |
+
case_df_sort["gene_symbol"] = case_df_sort.index.to_series().apply(
|
156 |
+
get_symbol, args=(symbol,)
|
157 |
+
)
|
158 |
+
match_nmf = case_df_sort[["gene_symbol", "rank", "sum"]]
|
159 |
+
match_nmf_filter = match_nmf[match_nmf["sum"] > 0.01].reset_index()
|
160 |
+
match_nmf_filter.columns = ["gene_id", "gene_symbol", "rank", "sum"]
|
161 |
+
match_nmf_filter["sum"] = match_nmf_filter["sum"].round(2)
|
162 |
+
match_nmf_filter.to_csv(result_file, sep="\t", index=False)
|
163 |
|
164 |
+
else:
|
165 |
+
logging.info("INFO: selected symptom interaction model - node similarity")
|
166 |
+
similarity_terms_dict = load_similarity_dict()
|
167 |
+
sim_dict, hpo_list_add = get_similar_terms(hpo_list, similarity_terms_dict)
|
168 |
+
results_sum_add = score_sim_add(hpo_list_add, data, sim_dict, symbol)
|
169 |
+
results_sum_add["rank"] = (
|
170 |
+
results_sum_add["sum"].rank(ascending=False, method="max").astype(int)
|
171 |
+
)
|
172 |
+
cols = results_sum_add.columns.tolist()
|
173 |
+
cols = cols[-2:] + cols[:-2]
|
174 |
+
match_sim = results_sum_add[cols].sort_values(by=["sum"], ascending=False)
|
175 |
+
match_sim_filter = match_sim[match_sim["sum"] > 0.01].reset_index()
|
176 |
+
match_sim_filter_print = match_sim_filter.iloc[:, [0, 1, 2, -1]]
|
177 |
+
match_sim_filter_print.columns = ["gene_id", "gene_symbol", "rank", "sum"]
|
178 |
+
match_sim_filter_print["sum"] = match_sim_filter_print["sum"].round(2)
|
179 |
+
match_sim_filter_print.to_csv(result_file, sep="\t", index=False)
|
180 |
|
181 |
|
182 |
if __name__ == "__main__":
|
requirements.txt
ADDED
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
altair==4.2.0 ; python_version >= "3.8" and python_version < "3.9"
|
2 |
+
appnope==0.1.3 ; python_version >= "3.8" and python_version < "3.9" and (platform_system == "Darwin" or sys_platform == "darwin")
|
3 |
+
argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.9"
|
4 |
+
argon2-cffi==21.3.0 ; python_version >= "3.8" and python_version < "3.9"
|
5 |
+
asttokens==2.0.5 ; python_version >= "3.8" and python_version < "3.9"
|
6 |
+
attrs==22.1.0 ; python_version >= "3.8" and python_version < "3.9"
|
7 |
+
backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.9" \
|
8 |
+
--hash=sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e \
|
9 |
+
--hash=sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255
|
10 |
+
backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9"
|
11 |
+
beautifulsoup4==4.11.1 ; python_version >= "3.8" and python_version < "3.9"
|
12 |
+
bleach==5.0.1 ; python_version >= "3.8" and python_version < "3.9"
|
13 |
+
blinker==1.5 ; python_version >= "3.8" and python_version < "3.9"
|
14 |
+
cachetools==5.2.0 ; python_version >= "3.8" and python_version < "3.9"
|
15 |
+
certifi==2022.6.15 ; python_version >= "3.8" and python_version < "3.9"
|
16 |
+
cffi==1.15.1 ; python_version >= "3.8" and python_version < "3.9"
|
17 |
+
charset-normalizer==2.1.0 ; python_version >= "3.8" and python_version < "3.9"
|
18 |
+
click==8.0.4 ; python_version >= "3.8" and python_version < "3.9"
|
19 |
+
colorama==0.4.5 ; python_version >= "3.8" and python_version < "3.9" and (platform_system == "Windows" or sys_platform == "win32")
|
20 |
+
commonmark==0.9.1 ; python_version >= "3.8" and python_version < "3.9"
|
21 |
+
cycler==0.11.0 ; python_version >= "3.8" and python_version < "3.9"
|
22 |
+
debugpy==1.6.2 ; python_version >= "3.8" and python_version < "3.9"
|
23 |
+
decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.9"
|
24 |
+
defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.9" \
|
25 |
+
--hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \
|
26 |
+
--hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61
|
27 |
+
dill==0.3.5.1 ; python_version >= "3.8" and python_version < "3.9"
|
28 |
+
entrypoints==0.4 ; python_version >= "3.8" and python_version < "3.9"
|
29 |
+
executing==0.9.1 ; python_version >= "3.8" and python_version < "3.9"
|
30 |
+
fastjsonschema==2.16.1 ; python_version >= "3.8" and python_version < "3.9"
|
31 |
+
fonttools==4.34.4 ; python_version >= "3.8" and python_version < "3.9"
|
32 |
+
gitdb==4.0.9 ; python_version >= "3.8" and python_version < "3.9"
|
33 |
+
gitpython==3.1.27 ; python_version >= "3.8" and python_version < "3.9"
|
34 |
+
idna==3.3 ; python_version >= "3.8" and python_version < "3.9"
|
35 |
+
importlib-metadata==4.12.0 ; python_version >= "3.8" and python_version < "3.9"
|
36 |
+
importlib-resources==5.9.0 ; python_version >= "3.8" and python_version < "3.9"
|
37 |
+
ipykernel==6.15.1 ; python_version >= "3.8" and python_version < "3.9"
|
38 |
+
ipython-genutils==0.2.0 ; python_version >= "3.8" and python_version < "3.9" \
|
39 |
+
--hash=sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8 \
|
40 |
+
--hash=sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8
|
41 |
+
ipython==8.4.0 ; python_version >= "3.8" and python_version < "3.9"
|
42 |
+
ipywidgets==7.7.1 ; python_version >= "3.8" and python_version < "3.9"
|
43 |
+
jedi==0.18.1 ; python_version >= "3.8" and python_version < "3.9"
|
44 |
+
jinja2==3.1.2 ; python_version >= "3.8" and python_version < "3.9"
|
45 |
+
joblib==1.1.0 ; python_version >= "3.8" and python_version < "3.9" \
|
46 |
+
--hash=sha256:4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35 \
|
47 |
+
--hash=sha256:f21f109b3c7ff9d95f8387f752d0d9c34a02aa2f7060c2135f465da0e5160ff6
|
48 |
+
jsonschema==4.9.0 ; python_version >= "3.8" and python_version < "3.9"
|
49 |
+
jupyter-client==7.3.4 ; python_version >= "3.8" and python_version < "3.9"
|
50 |
+
jupyter-core==4.11.1 ; python_version >= "3.8" and python_version < "3.9"
|
51 |
+
jupyterlab-pygments==0.2.2 ; python_version >= "3.8" and python_version < "3.9"
|
52 |
+
jupyterlab-widgets==1.1.1 ; python_version >= "3.8" and python_version < "3.9"
|
53 |
+
kiwisolver==1.4.4 ; python_version >= "3.8" and python_version < "3.9"
|
54 |
+
llvmlite==0.34.0 ; python_version >= "3.8" and python_version < "3.9"
|
55 |
+
markupsafe==2.1.1 ; python_version >= "3.8" and python_version < "3.9"
|
56 |
+
matplotlib-inline==0.1.3 ; python_version >= "3.8" and python_version < "3.9"
|
57 |
+
matplotlib==3.5.2 ; python_version >= "3.8" and python_version < "3.9"
|
58 |
+
mistune==0.8.4 ; python_version >= "3.8" and python_version < "3.9" \
|
59 |
+
--hash=sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e \
|
60 |
+
--hash=sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4
|
61 |
+
mizani==0.7.4 ; python_version >= "3.8" and python_version < "3.9"
|
62 |
+
multipy==0.16 ; python_version >= "3.8" and python_version < "3.9"
|
63 |
+
nbclient==0.6.6 ; python_version >= "3.8" and python_version < "3.9"
|
64 |
+
nbconvert==6.5.0 ; python_version >= "3.8" and python_version < "3.9"
|
65 |
+
nbformat==5.4.0 ; python_version >= "3.8" and python_version < "3.9"
|
66 |
+
nest-asyncio==1.5.5 ; python_version >= "3.8" and python_version < "3.9"
|
67 |
+
networkx==2.8.5 ; python_version >= "3.8" and python_version < "3.9"
|
68 |
+
notebook==6.4.12 ; python_version >= "3.8" and python_version < "3.9"
|
69 |
+
numba==0.51.2 ; python_version >= "3.8" and python_version < "3.9"
|
70 |
+
numpy==1.23.1 ; python_version < "3.9" and python_version >= "3.8"
|
71 |
+
obonet==0.3.0 ; python_version >= "3.8" and python_version < "3.9"
|
72 |
+
packaging==21.3 ; python_version >= "3.8" and python_version < "3.9"
|
73 |
+
palettable==3.3.0 ; python_version >= "3.8" and python_version < "3.9"
|
74 |
+
pandarallel==1.6.1 ; python_version >= "3.8" and python_version < "3.9" \
|
75 |
+
--hash=sha256:e36f16d7057a1728f9f3a6ef25ca50e01e382eb10d8be580a4881c210be6ce3a
|
76 |
+
pandas==1.4.3 ; python_version >= "3.8" and python_version < "3.9"
|
77 |
+
pandocfilters==1.5.0 ; python_version >= "3.8" and python_version < "3.9"
|
78 |
+
parso==0.8.3 ; python_version >= "3.8" and python_version < "3.9"
|
79 |
+
patsy==0.5.2 ; python_version >= "3.8" and python_version < "3.9"
|
80 |
+
pexpect==4.8.0 ; python_version >= "3.8" and python_version < "3.9" and sys_platform != "win32" \
|
81 |
+
--hash=sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937 \
|
82 |
+
--hash=sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c
|
83 |
+
pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.9" \
|
84 |
+
--hash=sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca \
|
85 |
+
--hash=sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56
|
86 |
+
pillow==9.2.0 ; python_version >= "3.8" and python_version < "3.9"
|
87 |
+
pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9"
|
88 |
+
plotnine==0.9.0 ; python_version >= "3.8" and python_version < "3.9"
|
89 |
+
prometheus-client==0.14.1 ; python_version >= "3.8" and python_version < "3.9"
|
90 |
+
prompt-toolkit==3.0.30 ; python_version >= "3.8" and python_version < "3.9"
|
91 |
+
protobuf==3.20.1 ; python_version >= "3.8" and python_version < "3.9"
|
92 |
+
psrecord==1.2 ; python_version >= "3.8" and python_version < "3.9"
|
93 |
+
psutil==5.9.1 ; python_version >= "3.8" and python_version < "3.9"
|
94 |
+
ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.9" and (sys_platform != "win32" or os_name != "nt") \
|
95 |
+
--hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 \
|
96 |
+
--hash=sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220
|
97 |
+
pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.9"
|
98 |
+
py==1.11.0 ; python_version >= "3.8" and python_version < "3.9" and implementation_name == "pypy"
|
99 |
+
pyarrow==8.0.0 ; python_version >= "3.8" and python_version < "3.9"
|
100 |
+
pycparser==2.21 ; python_version >= "3.8" and python_version < "3.9"
|
101 |
+
pydeck==0.7.1 ; python_version >= "3.8" and python_version < "3.9"
|
102 |
+
pygments==2.12.0 ; python_version >= "3.8" and python_version < "3.9"
|
103 |
+
pympler==1.0.1 ; python_version >= "3.8" and python_version < "3.9"
|
104 |
+
pynndescent==0.5.7 ; python_version >= "3.8" and python_version < "3.9"
|
105 |
+
pyparsing==3.0.9 ; python_version >= "3.8" and python_version < "3.9"
|
106 |
+
pyrsistent==0.18.1 ; python_version >= "3.8" and python_version < "3.9"
|
107 |
+
python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.9" \
|
108 |
+
--hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \
|
109 |
+
--hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9
|
110 |
+
pytz-deprecation-shim==0.1.0.post0 ; python_version >= "3.8" and python_version < "3.9"
|
111 |
+
pytz==2022.1 ; python_version >= "3.8" and python_version < "3.9"
|
112 |
+
pywin32==304 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.9"
|
113 |
+
pywinpty==2.0.6 ; python_version >= "3.8" and python_version < "3.9" and os_name == "nt"
|
114 |
+
pyzmq==23.2.0 ; python_version >= "3.8" and python_version < "3.9"
|
115 |
+
requests==2.28.1 ; python_version >= "3.8" and python_version < "3.9"
|
116 |
+
rich==12.5.1 ; python_version >= "3.8" and python_version < "3.9"
|
117 |
+
scikit-learn==1.1.1 ; python_version >= "3.8" and python_version < "3.9"
|
118 |
+
scipy==1.6.1 ; python_version >= "3.8" and python_version < "3.9" \
|
119 |
+
--hash=sha256:0c8a51d33556bf70367452d4d601d1742c0e806cd0194785914daf19775f0e67 \
|
120 |
+
--hash=sha256:0e5b0ccf63155d90da576edd2768b66fb276446c371b73841e3503be1d63fb5d \
|
121 |
+
--hash=sha256:2481efbb3740977e3c831edfd0bd9867be26387cacf24eb5e366a6a374d3d00d \
|
122 |
+
--hash=sha256:33d6b7df40d197bdd3049d64e8e680227151673465e5d85723b3b8f6b15a6ced \
|
123 |
+
--hash=sha256:5da5471aed911fe7e52b86bf9ea32fb55ae93e2f0fac66c32e58897cfb02fa07 \
|
124 |
+
--hash=sha256:5f331eeed0297232d2e6eea51b54e8278ed8bb10b099f69c44e2558c090d06bf \
|
125 |
+
--hash=sha256:5fa9c6530b1661f1370bcd332a1e62ca7881785cc0f80c0d559b636567fab63c \
|
126 |
+
--hash=sha256:6725e3fbb47da428794f243864f2297462e9ee448297c93ed1dcbc44335feb78 \
|
127 |
+
--hash=sha256:68cb4c424112cd4be886b4d979c5497fba190714085f46b8ae67a5e4416c32b4 \
|
128 |
+
--hash=sha256:794e768cc5f779736593046c9714e0f3a5940bc6dcc1dba885ad64cbfb28e9f0 \
|
129 |
+
--hash=sha256:83bf7c16245c15bc58ee76c5418e46ea1811edcc2e2b03041b804e46084ab627 \
|
130 |
+
--hash=sha256:8e403a337749ed40af60e537cc4d4c03febddcc56cd26e774c9b1b600a70d3e4 \
|
131 |
+
--hash=sha256:a15a1f3fc0abff33e792d6049161b7795909b40b97c6cc2934ed54384017ab76 \
|
132 |
+
--hash=sha256:a423533c55fec61456dedee7b6ee7dce0bb6bfa395424ea374d25afa262be261 \
|
133 |
+
--hash=sha256:a5193a098ae9f29af283dcf0041f762601faf2e595c0db1da929875b7570353f \
|
134 |
+
--hash=sha256:bd50daf727f7c195e26f27467c85ce653d41df4358a25b32434a50d8870fc519 \
|
135 |
+
--hash=sha256:c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11 \
|
136 |
+
--hash=sha256:e79570979ccdc3d165456dd62041d9556fb9733b86b4b6d818af7a0afc15f092 \
|
137 |
+
--hash=sha256:f46dd15335e8a320b0fb4685f58b7471702234cba8bb3442b69a3e1dc329c345
|
138 |
+
seaborn==0.11.2 ; python_version >= "3.8" and python_version < "3.9"
|
139 |
+
semver==2.13.0 ; python_version >= "3.8" and python_version < "3.9"
|
140 |
+
send2trash==1.8.0 ; python_version >= "3.8" and python_version < "3.9"
|
141 |
+
setuptools-scm==7.0.5 ; python_version >= "3.8" and python_version < "3.9"
|
142 |
+
six==1.16.0 ; python_version >= "3.8" and python_version < "3.9" \
|
143 |
+
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
|
144 |
+
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
|
145 |
+
smmap==5.0.0 ; python_version >= "3.8" and python_version < "3.9"
|
146 |
+
soupsieve==2.3.2.post1 ; python_version >= "3.8" and python_version < "3.9"
|
147 |
+
stack-data==0.3.0 ; python_version >= "3.8" and python_version < "3.9"
|
148 |
+
statsmodels==0.13.2 ; python_version >= "3.8" and python_version < "3.9"
|
149 |
+
streamlit==1.15.1 ; python_version >= "3.8" and python_version < "3.9"
|
150 |
+
terminado==0.15.0 ; python_version >= "3.8" and python_version < "3.9"
|
151 |
+
threadpoolctl==3.1.0 ; python_version >= "3.8" and python_version < "3.9" \
|
152 |
+
--hash=sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b \
|
153 |
+
--hash=sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380
|
154 |
+
tinycss2==1.1.1 ; python_version >= "3.8" and python_version < "3.9"
|
155 |
+
toml==0.10.2 ; python_version >= "3.8" and python_version < "3.9" \
|
156 |
+
--hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \
|
157 |
+
--hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f
|
158 |
+
tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.9"
|
159 |
+
toolz==0.12.0 ; python_version >= "3.8" and python_version < "3.9"
|
160 |
+
tornado==6.2 ; python_version >= "3.8" and python_version < "3.9"
|
161 |
+
tqdm==4.64.0 ; python_version >= "3.8" and python_version < "3.9"
|
162 |
+
traitlets==5.3.0 ; python_version >= "3.8" and python_version < "3.9"
|
163 |
+
typing-extensions==4.3.0 ; python_version >= "3.8" and python_version < "3.9"
|
164 |
+
tzdata==2022.1 ; python_version >= "3.8" and python_version < "3.9"
|
165 |
+
tzlocal==4.2 ; python_version >= "3.8" and python_version < "3.9"
|
166 |
+
ujson==5.4.0 ; python_version >= "3.8" and python_version < "3.9"
|
167 |
+
umap-learn==0.5.3 ; python_version >= "3.8" and python_version < "3.9"
|
168 |
+
urllib3==1.26.11 ; python_version >= "3.8" and python_version < "3.9"
|
169 |
+
validators==0.20.0 ; python_version >= "3.8" and python_version < "3.9"
|
170 |
+
watchdog==2.1.9 ; python_version >= "3.8" and python_version < "3.9" and platform_system != "Darwin"
|
171 |
+
wcwidth==0.2.5 ; python_version >= "3.8" and python_version < "3.9" \
|
172 |
+
--hash=sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784 \
|
173 |
+
--hash=sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83
|
174 |
+
webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.9" \
|
175 |
+
--hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \
|
176 |
+
--hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923
|
177 |
+
widgetsnbextension==3.6.1 ; python_version >= "3.8" and python_version < "3.9"
|
178 |
+
zipp==3.8.1 ; python_version >= "3.8" and python_version < "3.9"
|