joduor commited on
Commit
53bbc56
·
verified ·
1 Parent(s): 00e9dea

Fix pLDDT: fetch per-residue scores from AlphaFold confidence JSON endpoint (app.py)

Browse files
Files changed (1) hide show
  1. app.py +6 -6
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 = extract_plddt_scores(af_data)
77
- avg_plddt = sum(plddt_scores) / len(plddt_scores) if plddt_scores else 0.0
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 = extract_plddt_scores(af_data)
119
- avg_plddt = sum(plddt_scores) / len(plddt_scores) if plddt_scores else 0.0
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 = extract_plddt_scores(af_data)
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(