AI-powered lung cancer malignancy risk assessment tool combining deep learning with clinical risk factors
UCSC BioHacks Project 1st Place in AI Applications in Biomedical Research
LungOC is a hybrid decision support system that combines:
- Deep Learning: CNN-based image classification of CT scans
- Clinical Risk Assessment: Patient demographics (age, smoking history, family history)
- Risk Stratification: Provides actionable risk levels (Low/Moderate/High) with recommendations
- Backend: FastAPI + PyTorch (ResNet18 model)
- Frontend: React + TypeScript + Vite + Tailwind CSS
- Model: ResNet18 trained on lung CT scan dataset
- Python 3.12+
- Node.js 18+
- PyTorch, FastAPI, Streamlit (see requirements)
1. Backend (FastAPI)
cd src/backend
pip install -r requirements.txt
uvicorn main:app --reloadBackend runs at: http://127.0.0.1:8000
2. Frontend (React)
cd frontend
npm install
npm run devFrontend runs at: http://localhost:5173
Alternative: Streamlit Frontend
cd src
streamlit run app.pySee DEPLOYMENT.md for detailed deployment instructions to:
- Backend: Render.com (Free tier)
- Frontend: Vercel or Netlify (Free tier)
Health check and API info
Service health status
Predict lung cancer risk from CT scan
Request:
file: CT scan image (JPG/PNG)age: Patient age (integer)smoking: Pack-years of smoking (integer)family_history: Family history (boolean)
Response:
{
"prediction": "Malignant cases",
"image_probability": 0.873,
"final_risk": 0.742,
"risk_level": "High"
}- Architecture: ResNet18 (modified final layer for 3 classes)
- Classes: Benign, Malignant, Normal
- Input: 224x224 RGB images
- Framework: PyTorch
final_risk = 0.7 × image_malignancy_prob + 0.3 × clinical_score
clinical_score = 0.01 × age + 0.02 × smoking_pack_years + (0.1 if family_history)
This tool is a research prototype and not intended for clinical diagnosis. Always consult qualified healthcare professionals for medical decisions.
See LICENSE file for details.
Heli :)
- Deployment Guide
- API Documentation (when running locally)