Skip to content

overclocking42/Rheumatoid-arthritis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Rheumatoid Arthritis Diagnosis System - Quick Start

For comprehensive technical documentation, see PROJECT_INFO.md


Imaging Data:

tags:

  • X-ray
  • Wrist
  • Segmentation
  • Classification license: bigscience-openrail-m

Dataset Card for RAM-W600

Benchmark code is available in https://github.com/maxQterminal/Rheumatoid-arthritis.

Download

Please run the following command to download RAM-W600 image data:

git clone https://huggingface.co/datasets/TokyoTechMagicYang/RAM-W600

Numerical Data: data


Four tabs:

  1. Lab Assessment: Input 6 biomarkers β†’ Get RA diagnosis
  2. X-ray Analysis: Upload hand X-ray β†’ Get erosion classification
  3. Combined Results: See both predictions together
  4. Model Performance: View model accuracy, comparison, and augmentation strategy

Important: Models are already in models/ folder (EfficientNet-B3, XGBoost). No additional setup needed!


πŸ“Š What This Does

Input: Blood tests (6 biomarkers) + Hand X-ray image
Output: RA diagnosis (Healthy / Seropositive / Seronegative) + Erosion status
Accuracy: 89% (blood tests) + 85.83% (X-ray with augmentation strategy)


πŸ”„ Data Flow: Input β†’ Model β†’ Output

End-to-End Pipeline

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        USER INTERACTION (UI)                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  Tab 1: Lab Assessment              Tab 2: X-ray Analysis               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
β”‚  β”‚ Input 6 Biomarkers:     β”‚       β”‚ Upload Hand X-ray Image: β”‚         β”‚
β”‚  β”‚ β€’ Age (years)           β”‚       β”‚ β€’ JPG/PNG/BMP format     β”‚         β”‚
β”‚  β”‚ β€’ Gender (M/F)          β”‚       β”‚ β€’ 224Γ—224 or larger      β”‚         β”‚
β”‚  β”‚ β€’ RF (IU/mL)            β”‚       β”‚                          β”‚         β”‚
β”‚  β”‚ β€’ Anti-CCP (IU/mL)      β”‚       β”‚ Click: "Analyze X-ray"   β”‚         β”‚
β”‚  β”‚ β€’ CRP (mg/L)            β”‚       β”‚                          β”‚         β”‚
β”‚  β”‚ β€’ ESR (mm/hr)           β”‚       β”‚                          β”‚         β”‚
β”‚  β”‚                         β”‚       β”‚                          β”‚         β”‚
β”‚  β”‚ Click: "Get Diagnosis"  β”‚       β”‚                          β”‚         β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚
β”‚            ↓                                 ↓                          β”‚ 
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    DATA PREPROCESSING (Backend)                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  NUMERIC DATA (Blood Tests)       IMAGE DATA (X-ray)                    β”‚
β”‚  ─────────────────────────       ─────────────────────                  β”‚
β”‚  Input: [Age, Gender, RF, ...]   Input: Image pixels                    β”‚
β”‚         ↓                                ↓                              β”‚
β”‚  1. StandardScaler normalization   1. Resize to 224Γ—224                 β”‚
β”‚    (subtract mean, divide by std)  2. Convert to 3-channel RGB          β”‚
β”‚         ↓                          3. Apply ImageNet normalization      β”‚
β”‚  Normalized values ready                  ↓                             β”‚
β”‚  for model input                   Preprocessed image ready             β”‚
β”‚                                    for model input                      β”‚
β”‚                                                                         β”‚
β”‚  See PROJECT_INFO.md "Data Preprocessing" section for details           β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€-──────────────────┐
β”‚                     MODEL INFERENCE (Prediction)                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                      β”‚
β”‚  PATH 1: Numeric Model              PATH 2: Imaging Model            β”‚
β”‚  ─────────────────────────          ──────────────────────           β”‚
β”‚  Preprocessed biomarkers             Preprocessed image              β”‚
β”‚           ↓                                  ↓                       β”‚
β”‚    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                β”‚
β”‚    β”‚   XGBoost    β”‚              β”‚ EfficientNet-B3  β”‚                β”‚
β”‚    β”‚   Classifier β”‚              β”‚     CNN          β”‚                β”‚
β”‚    β”‚ (100 trees)  β”‚              β”‚  (10.3M params)  β”‚                β”‚
β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β”‚
β”‚           ↓                                  ↓                       β”‚
β”‚   Multiclass Output:              Binary Output:                     β”‚
β”‚   P(Healthy) = 0.15               P(Erosive) = 0.72                  β”‚
β”‚   P(Seroneg) = 0.25               (72% confident)                    β”‚
β”‚   P(Seropos) = 0.60 ← Max         Threshold: 0.5 (default)           β”‚
β”‚           ↓                       Since 0.72 > 0.5:                  β”‚
β”‚           ↓                       Predict: "EROSIVE"                 β”‚
β”‚   Prediction:                                                        β”‚
β”‚   "SEROPOSITIVE"                  Confidence = 0.72                  β”‚
β”‚   (60% confident)                          ↓                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     USER OUTPUT (UI Display)                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                       β”‚
β”‚  Lab Assessment Tab Shows:       X-ray Analysis Tab Shows:            β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
β”‚  β”‚ Diagnosis Result:    β”‚       β”‚ X-ray Classification:β”‚              β”‚
β”‚  β”‚ βœ“ SEROPOSITIVE RA    β”‚       β”‚ βœ“ EROSIVE            β”‚              β”‚
β”‚  β”‚                      β”‚       β”‚                      β”‚              β”‚
β”‚  β”‚ Confidence: 60%      β”‚       β”‚ Confidence: 72%      β”‚              β”‚
β”‚  β”‚                      β”‚       β”‚ Decision: Threshold  β”‚              β”‚
β”‚  β”‚ Breakdown:           β”‚       β”‚          = 0.35      β”‚              β”‚
β”‚  β”‚ β€’ P(Healthy) = 15%   β”‚       β”‚                      β”‚              β”‚
β”‚  β”‚ β€’ P(Seroneg) = 25%   β”‚       β”‚ Interpretation:      β”‚              β”‚
β”‚  β”‚ β€’ P(Seropos) = 60%   β”‚       β”‚ "Joint erosions      β”‚              β”‚
β”‚  β”‚                      β”‚       β”‚  are present"        β”‚              β”‚
β”‚  β”‚ Clinical Action:     β”‚       β”‚                      β”‚              β”‚
β”‚  β”‚ β†’ Start DMARD        β”‚       β”‚ Clinical Action:     β”‚              β”‚
β”‚  β”‚   therapy            β”‚       β”‚ β†’ Confirm with       β”‚              β”‚
β”‚  β”‚ β†’ Monitor closely    β”‚       β”‚   radiologist        β”‚              β”‚
β”‚  β”‚ β†’ Follow-up in 6 wks β”‚       β”‚ β†’ Adjust treatment   β”‚              β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                                                                       β”‚
β”‚  Combined Results Tab Shows:                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                         β”‚
β”‚  β”‚ OVERALL RA DIAGNOSIS SUMMARY             β”‚                         β”‚
β”‚  β”‚                                          β”‚                         β”‚
β”‚  β”‚ Blood Tests: SEROPOSITIVE (60%)          β”‚                         β”‚ 
β”‚  β”‚ Hand X-rays: EROSIVE (72%)               β”‚                         β”‚
β”‚  β”‚                                          β”‚                         β”‚
β”‚  β”‚ Combined Assessment:                     β”‚                         β”‚
β”‚  β”‚ βœ“ HIGH RA LIKELIHOOD                     β”‚                         β”‚
β”‚  β”‚   - Positive autoimmune markers          β”‚                         β”‚
β”‚  β”‚   - Visible joint erosions               β”‚                         β”‚
β”‚  β”‚                                          β”‚                         β”‚
β”‚  β”‚ Recommendation:                          β”‚                         β”‚
β”‚  β”‚ β†’ Advanced RA suspected                  β”‚                         β”‚
β”‚  β”‚ β†’ Aggressive treatment indicated         β”‚                         β”‚
β”‚  β”‚ β†’ Consider rheumatology referral         β”‚                         β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Flow Summary

Stage Input Processing Output
User Input Biomarkers or X-ray image Enter via UI Raw data
Preprocessing Raw values/pixels Normalize, resize, format Ready for model
Model Inference Preprocessed data Neural net / Tree ensemble Probability scores
Decision Probabilities Apply threshold Class prediction
UI Display Prediction + confidence Format for display Clinical summary

πŸ“ Project Structure

data/raw_data/
β”œβ”€β”€ numeric/
β”‚   β”œβ”€β”€ train_pool.csv         (3,848 original samples)
β”‚   β”œβ”€β”€ train_numeric.csv      (2,658 training samples)
β”‚   β”œβ”€β”€ val_numeric.csv        (570 validation)
β”‚   β”œβ”€β”€ test_numeric.csv       (570 test)
β”‚   β”œβ”€β”€ healthy.csv            (synthetic)
β”‚   └── seronegative.csv       (synthetic)
β”‚
└── imaging/RAM-W600/
    β”œβ”€β”€ JointLocationDetection/images/  (800 X-ray images)
    β”œβ”€β”€ splits/
    β”‚   β”œβ”€β”€ train.csv          (560 training)
    β”‚   β”œβ”€β”€ val.csv            (120 validation)
    β”‚   └── test.csv           (120 test)
    └── SvdHBEScoreClassification/
        └── JointBE_SvdH_GT.json       (erosion labels)

models/
β”œβ”€β”€ xgb_model.joblib           (1.1 MB - blood test classifier)
β”œβ”€β”€ efficientnet.pth           (41.3 MB - X-ray classifier - PRIMARY MODEL)
β”œβ”€β”€ resnet50.pth               (41.3 MB - X-ray classifier - alternative)
└── vit.pth                    (328 MB - X-ray classifier - alternative)

src/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ app_medical_dashboard.py    (Main app)
β”‚   └── demo_predict.py             (Test predictions)
└── data/
    └── synth_and_numeric.py        (Data preprocessing)

πŸ€– Models

2. Imaging Models: Three CNNs with Augmentation Strategy

Problem Solved: Severe class imbalance (4.59:1 - 82% Erosive vs 18% Non-Erosive)

Solution Applied:

  • WeightedRandomSampler: Balances batch-level sampling to 1:1 ratio
  • Focal Loss (Ξ³=2.0): Focuses training on hard-to-learn minority class examples
  • Progressive Augmentation: Flips, rotations Β±15Β°, color jitter, Gaussian blur
  • F1-based Early Stopping: Monitors erosive class F1 (not validation loss)
  • Optimized for M4 Metal GPU: Float32 dtype, batch size 16

Model Comparison (all trained with identical augmentation pipeline):

Model Accuracy F1 Erosive F1 Non-Erosive Status
EfficientNet-B3 85.83% 91.63% 54.05% βœ… PRIMARY
ResNet50 82.50% 89.45% 48.78% Alternative
ViT-B/16 80.00% 87.23% 53.85% Alternative

Selected Model: EfficientNet-B3

  • Highest overall accuracy (85.83%, +5.83pp vs ViT)
  • Best minority class F1 (54.05%, handles early RA detection)
  • Optimal erosive recall (95.04%, catches most erosion cases)
  • Fast inference (200-500 ms) vs ViT (slower, larger memory)
  • See reports/image/model_comparison_all_models.png for visualizations

1. Numeric Model: XGBoost

  • Input: 6 blood test biomarkers
  • Output: Healthy / Seropositive RA / Seronegative RA
  • Accuracy: 89.28%
  • F1-Score: 85.77%
  • ROC-AUC: 93.21%
  • Speed: 15-50 ms
  • Why this model: Best for tabular data, fast, interpretable, handles mixed feature types

πŸŽ“ Understanding Train/Validation/Test Splits

This is critical for understanding why our models are trustworthy:

Set Size Purpose Model Learns? Accuracy
Training 2,658 Model learns patterns βœ… Yes 90-95%
Validation 570 Detect overfitting ❌ No 87-89%
Test 570 Final honest score ❌ No 85-89%

Why this matters for patients:

  • Without proper split: Model claims 95% but only 40% on new patients = wrong diagnosis βœ—
  • With proper splits: Model says 89% on unseen data = doctor can trust it βœ“

train_pool.csv (3,848 samples): Original raw data before splitting. We split this 70/15/15 to create train/val/test. Kept for reproducibility.


πŸ’‘ Key Concepts

Blood Test Features:

  • Age: Patient age
  • Gender: Male/Female
  • RF: Rheumatoid factor (autoimmune antibody)
  • Anti-CCP: Anti-cyclic citrullinated peptide antibody (RA-specific)
  • CRP: C-reactive protein (inflammation marker)
  • ESR: Erythrocyte sedimentation rate (inflammation indicator)

X-ray Analysis:

  • Detects hand bone erosions (joint damage)
  • Uses SvdH (Sharp Van Der Heide) scoring
  • Binary: Erosive (damage present) or Non-erosive (no damage)

Data Processing: Each data type goes through specific preprocessing before model input:

Numeric Data:

  • Normalization: StandardScaler (subtract mean, divide by std)
  • Handles missing values with forward-fill + mean imputation
  • Stratified split maintains class proportions

Image Data:

  • Resize to 224Γ—224 pixels
  • Convert grayscale to 3-channel RGB (model requirement)
  • ImageNet normalization (mean/std from pre-training)
  • Data augmentation during training (rotations, flips, scaling)

β†’ See PROJECT_INFO.md - Data Preprocessing for complete technical details


πŸ“– For Full Technical Details

PROJECT_INFO.md covers:

  • βœ… Complete train/validation/test split explanation (with clinical implications)
  • βœ… How train_pool.csv relates to train/val/test
  • βœ… Full project architecture and technical specifications
  • βœ… How each model works (XGBoost, EfficientNet-B3)
  • βœ… Performance metrics (accuracy, F1, ROC-AUC)
  • βœ… Preprocessing steps with code examples
  • βœ… Training details and hyperparameters
  • βœ… How to make predictions programmatically
  • βœ… Exactly where training data comes from
  • βœ… Why data is organized this way
  • βœ… Data flow diagrams
  • βœ… File verification commands

πŸ”§ Installation & Setup

1. Prerequisites

  • Python 3.8+
  • pip or conda

2. Install Dependencies

pip install -r requirements.txt

3. Run Dashboard

# Make sure you're in the project root directory
streamlit run src/app/app_medical_dashboard.py

Opens at http://localhost:8501


🌍 Portability - Running Anywhere

This project is fully portable! You can run it on any system (Windows, Mac, Linux) because:

βœ… All paths are relative - No hardcoded machine-specific paths βœ… Auto-detects project structure - ROOT = os.path.dirname(...) finds models anywhere βœ… Works from any directory - Just cd to project root and run βœ… All dependencies in requirements.txt - One command to install everything βœ… Models included - models/xgb_model.joblib and models/EfficientNet-B3_best.pth already in repo

To clone and run on another machine:

# 1. Clone repository
git clone https://github.com/maxQterminal/Rheumatoid-arthritis.git
cd Rheumatoid-arthritis

# 2. Install dependencies
pip install -r requirements.txt

# 3. Run app (works immediately, no configuration needed!)
streamlit run src/app/app.py

That's it! No paths to update, no files to move. The app finds everything automatically.


βœ… Status

Production Ready: All models trained, optimized, and tested
Documentation: Complete and comprehensive
Performance: 89.28% accuracy (numeric/blood tests) + 84.17% accuracy (imaging/X-rays)
Data Processing: Comprehensive preprocessing pipeline (see PROJECT_INFO.md)


Version: 1.0 | Last Updated: November 18, 2025

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages