Deep learning methods for feature selection in gene expression autism data.
This project implements several features selection algorithms intended for finding the most significant subset of genes and gene sequences stored in dataset of gene expression microarray.
Current version of project provides the following list of feature selection algorithms:
- Fisher discriminant analysis
- two sample t-test
- feature correlation with a class
More implementation details of the above methods can be found here:
Data mining for feature selection in gene expression autism data
Feature selection methods in application to gene expression: autism data
The outcome of feature selection stage is consumed by fully connected feedforward neural network. The following list of hyperparameters can be configured in this neural network:
- number of layers,
- number of hidden units in each layer,
- activation function: sigmoid, tanh and ReLU,
- L2 lambda reguralization parameter.
- batch size,
- number of epochs.
The below diagram depicts the training and testing procedures:
The dataset is publicity available and was downloaded from GEO (NCBI) repository. Data file in this repository was cleaned up and contains only raw data with annotated genes and gene sequences annotations.
Number of observations in this dataset equals 146 and number of genes 54613. The database consists of two classes: the first one is related to children with autism (n=82) and the second to control (healthy) children (n=64). Blood draws for all subjects were done between the spring and summer of 2004. Total RNA was extracted for microarray experiments with Affymetrix Human U133 Plus 2.0 39 Expression Arrays.
In order to install all requirements execute the following script: (If needed add 'execute' permission to install.sh script before running it):
chmod a+x bin/install.sh
./bin/install.sh
Then activate the Virtual Environment (if needed):
source .venv/bin/activate
In order to run the pipeline execute:
python pipeline.py
In order to run the pipeline on Google Colab use the following notebook: Deep Learning Gene Expression in Google Colab
Pipeline gives you possibility to tweak training parameters. In order to modify them use configuration file
placed in ./config/experiment_setup.yml
. Below you can find the default configuration:
selection_methods:
- method: fisher
num_features: 100
- method: ttest
num_features: 100
- method: corr
num_features: 100
- method: random
num_features: 100
hyperparameters:
learning_rate: 0.001
input_size: 100
hidden_sizes: [80]
output_size: 1
num_features: 100
activation_function: 'tanh'
lambda_reg: 0.8
norm_data: True
data_file: 'data/data.tsv'
training:
num_epochs: 10000
cross_validation_folds: 10
batch_size: 20 # online learning when batch_size=1