Spaces:
Running
Running
Update mtdna_backend.py
Browse files- mtdna_backend.py +15 -5
mtdna_backend.py
CHANGED
|
@@ -17,6 +17,7 @@ from oauth2client.service_account import ServiceAccountCredentials
|
|
| 17 |
from io import StringIO
|
| 18 |
import hashlib
|
| 19 |
import threading
|
|
|
|
| 20 |
|
| 21 |
# @lru_cache(maxsize=3600)
|
| 22 |
# def classify_sample_location_cached(accession):
|
|
@@ -299,7 +300,12 @@ async def summarize_results(accession, stop_flag=None, niche_cases=None):
|
|
| 299 |
label = key + "(Isolate: " + outputs[key]["isolate"] + ")"
|
| 300 |
else: label = key
|
| 301 |
if len(outputs[key]["source"]) == 0: outputs[key]["source"] = ["No Links"]
|
| 302 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 303 |
if niche_cases:
|
| 304 |
row = {
|
| 305 |
"Sample ID": truncate_cell(label or "unknown"),
|
|
@@ -310,7 +316,8 @@ async def summarize_results(accession, stop_flag=None, niche_cases=None):
|
|
| 310 |
"Predicted " + niche_cases[0]: truncate_cell(pred_niche or "unknown"),
|
| 311 |
niche_cases[0] + " Explanation": truncate_cell(niche_explanation or "unknown"),
|
| 312 |
"Sources": truncate_cell("\n".join(outputs[key]["source"]) or "No Links"),
|
| 313 |
-
"Time cost": truncate_cell(outputs[key]["time_cost"])
|
|
|
|
| 314 |
}
|
| 315 |
#row_score.append(row)
|
| 316 |
# rows.append(list(row.values()))
|
|
@@ -328,7 +335,8 @@ async def summarize_results(accession, stop_flag=None, niche_cases=None):
|
|
| 328 |
"Query_cost": outputs[key]["query_cost"] or "",
|
| 329 |
"Time cost": outputs[key]["time_cost"] or "",
|
| 330 |
"file_chunk": truncate_cell(outputs[key]["file_chunk"] or ""),
|
| 331 |
-
"file_all_output": truncate_cell(outputs[key]["file_all_output"] or "")
|
|
|
|
| 332 |
}
|
| 333 |
|
| 334 |
#row_score.append(row)
|
|
@@ -342,7 +350,8 @@ async def summarize_results(accession, stop_flag=None, niche_cases=None):
|
|
| 342 |
"Predicted Sample Type": truncate_cell(pred_sample or "unknown"),
|
| 343 |
"Sample Type Explanation": truncate_cell(sample_explanation or "unknown"),
|
| 344 |
"Sources": truncate_cell("\n".join(outputs[key]["source"]) or "No Links"),
|
| 345 |
-
"Time cost": truncate_cell(outputs[key]["time_cost"])
|
|
|
|
| 346 |
}
|
| 347 |
#row_score.append(row)
|
| 348 |
# rows.append(list(row.values()))
|
|
@@ -357,7 +366,8 @@ async def summarize_results(accession, stop_flag=None, niche_cases=None):
|
|
| 357 |
"Query_cost": outputs[key]["query_cost"] or "",
|
| 358 |
"Time cost": outputs[key]["time_cost"] or "",
|
| 359 |
"file_chunk": truncate_cell(outputs[key]["file_chunk"] or ""),
|
| 360 |
-
"file_all_output": truncate_cell(outputs[key]["file_all_output"] or "")
|
|
|
|
| 361 |
}
|
| 362 |
|
| 363 |
#row_score.append(row)
|
|
|
|
| 17 |
from io import StringIO
|
| 18 |
import hashlib
|
| 19 |
import threading
|
| 20 |
+
import confidence_score
|
| 21 |
|
| 22 |
# @lru_cache(maxsize=3600)
|
| 23 |
# def classify_sample_location_cached(accession):
|
|
|
|
| 300 |
label = key + "(Isolate: " + outputs[key]["isolate"] + ")"
|
| 301 |
else: label = key
|
| 302 |
if len(outputs[key]["source"]) == 0: outputs[key]["source"] = ["No Links"]
|
| 303 |
+
# signals for confidence score
|
| 304 |
+
signals_confidence_score = outputs[key]["signals"]
|
| 305 |
+
rules = confidence_score.set_rules()
|
| 306 |
+
score, tier, explanations_score = confidence_score.compute_confidence_score_and_tier(signals_confidence_score,rules)
|
| 307 |
+
confidence_values = f"{tier} ({score})" + "\n" + explanations_score
|
| 308 |
+
|
| 309 |
if niche_cases:
|
| 310 |
row = {
|
| 311 |
"Sample ID": truncate_cell(label or "unknown"),
|
|
|
|
| 316 |
"Predicted " + niche_cases[0]: truncate_cell(pred_niche or "unknown"),
|
| 317 |
niche_cases[0] + " Explanation": truncate_cell(niche_explanation or "unknown"),
|
| 318 |
"Sources": truncate_cell("\n".join(outputs[key]["source"]) or "No Links"),
|
| 319 |
+
"Time cost": truncate_cell(outputs[key]["time_cost"]),
|
| 320 |
+
"Confidence Score":confidence_values,
|
| 321 |
}
|
| 322 |
#row_score.append(row)
|
| 323 |
# rows.append(list(row.values()))
|
|
|
|
| 335 |
"Query_cost": outputs[key]["query_cost"] or "",
|
| 336 |
"Time cost": outputs[key]["time_cost"] or "",
|
| 337 |
"file_chunk": truncate_cell(outputs[key]["file_chunk"] or ""),
|
| 338 |
+
"file_all_output": truncate_cell(outputs[key]["file_all_output"] or ""),
|
| 339 |
+
"Confidence Score":confidence_values,
|
| 340 |
}
|
| 341 |
|
| 342 |
#row_score.append(row)
|
|
|
|
| 350 |
"Predicted Sample Type": truncate_cell(pred_sample or "unknown"),
|
| 351 |
"Sample Type Explanation": truncate_cell(sample_explanation or "unknown"),
|
| 352 |
"Sources": truncate_cell("\n".join(outputs[key]["source"]) or "No Links"),
|
| 353 |
+
"Time cost": truncate_cell(outputs[key]["time_cost"]),
|
| 354 |
+
"Confidence Score":confidence_values,
|
| 355 |
}
|
| 356 |
#row_score.append(row)
|
| 357 |
# rows.append(list(row.values()))
|
|
|
|
| 366 |
"Query_cost": outputs[key]["query_cost"] or "",
|
| 367 |
"Time cost": outputs[key]["time_cost"] or "",
|
| 368 |
"file_chunk": truncate_cell(outputs[key]["file_chunk"] or ""),
|
| 369 |
+
"file_all_output": truncate_cell(outputs[key]["file_all_output"] or ""),
|
| 370 |
+
"Confidence Score":confidence_values,
|
| 371 |
}
|
| 372 |
|
| 373 |
#row_score.append(row)
|