Spaces:
Sleeping
Sleeping
Fix pLDDT: fetch per-residue scores from AlphaFold confidence JSON endpoint (app.py)
Browse files
app.py
CHANGED
|
@@ -15,7 +15,7 @@ from pydantic import BaseModel, Field
|
|
| 15 |
from adaptive import get_session, build_adaptive_prompt, update_session_protein, generate_followups
|
| 16 |
from alphafold_client import (
|
| 17 |
fetch_alphafold_summary, fetch_uniprot_entry,
|
| 18 |
-
extract_protein_metadata, extract_plddt_scores,
|
| 19 |
)
|
| 20 |
from morphic import generate_morphic_image, generate_confidence_heatmap
|
| 21 |
from models import embed_sequence, predict_disorder, classify_secondary_structure_heuristic
|
|
@@ -73,8 +73,8 @@ async def get_structure(uniprot_id: str, session_id: str = Query(default="")):
|
|
| 73 |
raise HTTPException(status_code=404, detail=f"Could not fetch data for {uid}: {e}")
|
| 74 |
|
| 75 |
meta = extract_protein_metadata(up_data)
|
| 76 |
-
plddt_scores =
|
| 77 |
-
avg_plddt = sum(plddt_scores) / len(plddt_scores) if plddt_scores else
|
| 78 |
|
| 79 |
# Update session
|
| 80 |
if session_id:
|
|
@@ -115,8 +115,8 @@ async def analyze_protein(req: AnalyzeRequest):
|
|
| 115 |
raise HTTPException(status_code=404, detail=f"Could not fetch data for {uid}: {e}")
|
| 116 |
|
| 117 |
meta = extract_protein_metadata(up_data)
|
| 118 |
-
plddt_scores =
|
| 119 |
-
avg_plddt = sum(plddt_scores) / len(plddt_scores) if plddt_scores else
|
| 120 |
|
| 121 |
# ESM-2 embedding + heuristics (run synchronously — CPU only)
|
| 122 |
seq = meta.get("sequence", "")
|
|
@@ -225,7 +225,7 @@ async def simulate_heatmap(uniprot_id: str):
|
|
| 225 |
except Exception as e:
|
| 226 |
raise HTTPException(status_code=404, detail=str(e))
|
| 227 |
meta = extract_protein_metadata(up_data)
|
| 228 |
-
scores =
|
| 229 |
if len(scores) <= 1:
|
| 230 |
scores = [scores[0]] * meta["length"]
|
| 231 |
png = generate_confidence_heatmap(
|
|
|
|
| 15 |
from adaptive import get_session, build_adaptive_prompt, update_session_protein, generate_followups
|
| 16 |
from alphafold_client import (
|
| 17 |
fetch_alphafold_summary, fetch_uniprot_entry,
|
| 18 |
+
extract_protein_metadata, extract_plddt_scores, fetch_plddt_scores,
|
| 19 |
)
|
| 20 |
from morphic import generate_morphic_image, generate_confidence_heatmap
|
| 21 |
from models import embed_sequence, predict_disorder, classify_secondary_structure_heuristic
|
|
|
|
| 73 |
raise HTTPException(status_code=404, detail=f"Could not fetch data for {uid}: {e}")
|
| 74 |
|
| 75 |
meta = extract_protein_metadata(up_data)
|
| 76 |
+
plddt_scores = await fetch_plddt_scores(af_data)
|
| 77 |
+
avg_plddt = sum(plddt_scores) / len(plddt_scores) if plddt_scores else 75.0
|
| 78 |
|
| 79 |
# Update session
|
| 80 |
if session_id:
|
|
|
|
| 115 |
raise HTTPException(status_code=404, detail=f"Could not fetch data for {uid}: {e}")
|
| 116 |
|
| 117 |
meta = extract_protein_metadata(up_data)
|
| 118 |
+
plddt_scores = await fetch_plddt_scores(af_data)
|
| 119 |
+
avg_plddt = sum(plddt_scores) / len(plddt_scores) if plddt_scores else 75.0
|
| 120 |
|
| 121 |
# ESM-2 embedding + heuristics (run synchronously — CPU only)
|
| 122 |
seq = meta.get("sequence", "")
|
|
|
|
| 225 |
except Exception as e:
|
| 226 |
raise HTTPException(status_code=404, detail=str(e))
|
| 227 |
meta = extract_protein_metadata(up_data)
|
| 228 |
+
scores = await fetch_plddt_scores(af_data)
|
| 229 |
if len(scores) <= 1:
|
| 230 |
scores = [scores[0]] * meta["length"]
|
| 231 |
png = generate_confidence_heatmap(
|