variant-risk-explainer / docs /architecture.md
faisalAI27
polish and verification
8fbda8a
|
Raw
History Blame Contribute Delete
2.3 kB

Architecture

Variant Risk Explainer is split into four top-level folders:

training/  -> ClinVar GRCh38 preparation, DNABERT-2 training, evaluation scripts
backend/   -> FastAPI inference API
frontend/  -> Next.js research demo UI
docs/      -> project documentation

Runtime Flow

User
  |
  v
Next.js Frontend
  |
  | POST /analyze
  v
FastAPI Backend
  |
  v
DNABERT-2 Prediction Service
  |
  v
Explanation Layer
  |
  v
Research/Demo Result

Backend Flow

  1. Load settings from backend/.env.
  2. Load the DNABERT-2 tokenizer and sequence-classification model from MODEL_DIR.
  3. Select device automatically: CUDA, then MPS, then CPU.
  4. Clean the submitted DNA sequence.
  5. Center crop sequences longer than MODEL_MAX_LENGTH.
  6. Run DNABERT-2 in inference mode.
  7. Apply the tuned pathogenic threshold, currently 0.16.
  8. Generate a cautious explanation.
  9. Return prediction probabilities, label, explanation, limitations, and disclaimer.

Explanation Layer

The explanation layer is designed to be safe for a research demo:

  • rule-based: local deterministic explanation.
  • openai: optional OpenAI-generated explanation paragraph.
  • rule-based-fallback: local explanation used because AI explanation failed or was missing configuration.

The LLM, when enabled, rewrites only the explanation paragraph. It does not control the prediction, probabilities, threshold, confidence level, recommendation, limitations, or disclaimer.

Frontend Flow

The frontend provides:

  • backend health indicator
  • DNA sequence input form
  • loading and error states
  • result card
  • explanation source display
  • local in-browser history panel
  • research/demo disclaimer

Training Flow

  1. Prepare ClinVar GRCh38 records.
  2. Extract reference sequence windows.
  3. Build alternate-allele sequence windows.
  4. Filter uncertain/conflicting labels.
  5. Fine-tune DNABERT-2 on the alternate-sequence dataset.
  6. Evaluate on held-out validation and test splits.
  7. Export a self-contained Hugging Face model folder for backend inference.

Safety Boundary

This is a research and educational demo. It does not diagnose disease, recommend care, or replace genetic counseling or clinical variant interpretation. All user-facing layers should preserve that boundary.