The DNA-Based Disease Prediction System is a machine learning-based bioinformatics project that analyzes genomic variations such as Single Nucleotide Polymorphisms (SNPs) to predict disease risk in individuals.
The system integrates:
- 🧪 GWAS (Genome-Wide Association Study) dataset
- 👤 Patient genomic data (SNP + genotype information)
- 🤖 Machine Learning models
It computes a Polygenic Risk Score (PRS) and classifies individuals into:
- 🟢 Low Risk
- 🟡 Medium Risk
- 🔴 High Risk
This project combines bioinformatics + machine learning + data science to support early disease detection and precision medicine.
The main objectives of this project are:
- 🔬 To analyze genetic variations (SNPs) from DNA data
- 🧬 To map SNPs with disease associations using GWAS dataset
- 📊 To compute Polygenic Risk Score (PRS) for individuals
- 🤖 To train ML models for disease risk classification
- 🧠 To compare multiple ML algorithms for best performance
- 📈 To visualize genetic risk patterns and model performance
- 🧪 To support research in personalized medicine
Contains genetic association data:
- SNP ID (rsID)
- Disease / Trait
- Risk Allele
- Effect Size (Beta)
- Chromosome information
Contains individual-level genetic data:
- rsID
- Chromosome number
- Position (POS)
- Genotype (AA, AG, GG etc.)
- Derived PRS values
The project follows a structured pipeline:
- Load GWAS dataset (SNP-disease mapping)
- Load patient genomic dataset
- Remove missing SNP values
- Standardize SNP formats
- Extract risk alleles
- Clean chromosome values (X → 23, Y → 24, MT → 25)
- Encode genotype values (0 / 1 / 2 representation)
- Create mapping:
- SNP → Beta score
- SNP → Disease association
- Merge GWAS knowledge into patient dataset
For each SNP:
[ PRS = (Number\ of\ risk\ alleles\ in\ genotype) \times \beta ]
Final PRS is sum of all SNP contributions.
Final model features:
- rsID (encoded)
- Chromosome
- Position (POS)
- Genotype (encoded)
- Beta score
Dataset is split into:
- Training: 60%
- Validation: 20%
- Testing: 20%
- Ensemble of decision trees
- Uses majority voting
- Handles high-dimensional genomic data well
- Reduces overfitting
- Sequential learning method
- Each model corrects previous errors
- Optimizes loss function
- High accuracy in structured data
- Finds optimal hyperplane for classification
- Works well in high-dimensional space
- Uses kernel trick for non-linear separation
- Effective for PRS classification
- Probabilistic classification model
- Uses sigmoid function
- Provides interpretable outputs
- Works well for baseline comparison
Models are evaluated using:
- Accuracy
- Precision
- Recall
- F1-Score
- RMSE
- Confusion Matrix
- 🌟 Gradient Boosting: ~93% accuracy
- 🌟 Random Forest: ~92% accuracy
- ⚖️ SVM & Logistic Regression: moderate performance
The system successfully classifies individuals into:
- Low Risk
- Medium Risk
- High Risk
Computes genetic risk based on SNP effect sizes.
Predicts disease risk category for new genetic input.
- Distribution of SNP effect sizes
- Identification of high-impact SNPs
- Maps SNPs to diseases
- Identifies top diseases by SNP count
- Risk categorization per individual
- Identification of high-risk SNPs
- Confusion Matrix heatmaps
- Beta score distribution graph
- Feature importance (Random Forest)
- Disease association bar plots
- 🧠 Deep Learning (Neural Networks for genomic prediction)
- 🌐 Web-based UI dashboard for real-time analysis
- 📂 VCF file upload support
- 🧬 Multi-population genetic analysis
- 🏥 Clinical integration with medical records
- 🤖 AI-driven disease recommendation system
- GWAS Catalog: https://www.ebi.ac.uk/gwas/
- 1000 Genomes Project: https://www.internationalgenome.org/
- Scikit-learn Documentation: https://scikit-learn.org/
- IEEE Research Papers on Genomic ML Models
Software Developer | Student | Research Enthusiast
Passionate about Bioinformatics, Machine Learning, and AI in Healthcare
This project demonstrates how machine learning and genomics can be combined to predict disease risk from DNA data, enabling early diagnosis and personalized healthcare insights.