This repository contains the code and data used for classifying smoker status in Lung Adenocarcinoma (LUAD) using RNA-seq data and machine learning techniques.
Lung cancer is the leading cause of cancer-related deaths worldwide, with smoking accounting for almost 85% of lung cancer cases. Classifying smoker status can aid in early diagnosis and improve the accuracy of lung cancer diagnosis. Gene expression can be altered due to smoking and is therefore a potential biomarker for lung cancer.
- Dataset Collection: Identify datasets of RNA-seq with adequate smoking annotation.
- Algorithm Selection: Find the best performing machine learning algorithm for classification.
- Model Development: Write a hierarchical multiclassifier.
- TCGA Lung Adenocarcinoma Dataset: Comprised of 522 patients.
- Python Libraries:
- Machine Learning:
scikit-learn,LightGBM,pycaret,optuna - Feature Engineering:
SHAP,decoupleR
- Machine Learning:
- R Libraries:
- Pathway Analysis:
PROGENY
- Pathway Analysis:
- Data Transformation: Multiclass Y transformed to binary Y.
- Gene Filtration with SHAP: Estimated feature importance using SHAP values and removed the least important features iteratively.
-
Initial Model Assessment:
- Performance estimation using
pycareton the training dataset (396 samples, 3000 genes). - Best model: LightGBM with Train F1 score ~ 0.75.
- Performance estimation using
-
Hyperparameter Tuning:
- Hyper-tuned LightGBM using
Optuna. - Train F1: 1.00, Test F1: 0.73.
- Hyper-tuned LightGBM using
-
Pathway Activities:
- Assessed pathway activities with
PROGENY, resulting in 14 new features. - Train F1: 0.91, Test F1: 0.74.
- Assessed pathway activities with
- Custom Hierarchical Classifier:
- Represented multiclass Y as a tree hierarchy.
- Implemented a Custom Hierarchical Classifier.
- Upsampled classes with
SMOTE. - Trained and hyper-tuned the LightGBM multiclassifier.
- Identify additional RNA-seq LUAD datasets.
- Explore deep learning algorithms.
- Improve the Custom Hierarchical Multiclassifier.
-
Clone the Repository:
git clone https://github.com/michtrofimov/smoker_class.git cd smoker_class -
Install Dependencies: Install with any environment manager from
pyproject.toml -
Run the Notebooks: Open the Jupyter notebooks in the notebooks/ directory to see data preprocessing steps, model training, and evaluation.
For any questions or issues, please contact Michil Trofimov.
