Our project trains a classifier to predict cancer type from patient gene expression data. We compare the performance of 2 different types of models, random forest and a neural network for binary classification on Acute Myeloid Leukemia (AML) and Acute Lymphoblastic Leukemia (ALL). The dataset we are using is from kaggle and contains 72 patients with 7130 gene expressions, each of these patients either have AML or ALL.
|- data # folder containing all data
|- leukemia_dataset # raw, unprocessed data files
|- preprocessed # preprocessed data
|- figures
|- src # source code
|- visualization # code for producing figures
AML and ALL claims over 1,400 Canadian lives annually, distinguishing these symptomatically similar cancers is critical because they require vastly different treatments.
Please ensure that you have conda installed and run the following
conda env create --name cancer_classification_310 --file=environment.ymlThen activate the conda environment by running the following
conda activate cancer_classification_310Ensure the conda enviroment is active and navigate into the src folder.
cd src/To reproduce the results in our paper, run the following command
python learn.py
Which should result in training and testing of both models and all figure generations.
To run the hyperparameter sweep, run the following command
python test_hps.py
Which should result in generating the parallel coordinates plot
Note: this may take a few minutes as many Random Forest models are trained in this process
To preprocess the data (however the preprocessed data is already provided), run the following command
python preprocess.py
Which should result in the train.csv and test.csv generatation located in /data/preprocessed