The work is an application of the convolutional neural network (CNN) on the Parkinson's disease predictions using the tapping data, and makes the comparisons with other digital biomarkers such as the gait/rest and the voice. The models come from our winning solution of the 2017 PDDB DREAM Challenge. Please contact (gyuanfan@umich.edu) if you have any questions or suggestions.
- python (2.7.5)
- Perl (5.16.3)
- Theano (1.0.1)
- Lasagne (0.2.dev1)
- OpenCV-Python (3.4.0)
- Numpy (1.14.3)
- Scikit-learn (0.20.3)
Install the dependencies through the provided environment file
pip install -r requirements.txt
git clone https://github.com/GuanLab/PDTap.git
The tapping data are stored in the .json format (See the toy examples in the toy_data/
). Before given to the model, we transfer them to numpy arrays as the following and save to .npy files. Please check the extract_coord.py
as an example on extracting the coordinates data from the JSON files.
# Example of the coordinates processed data
# Timstamp Buttom Coord_X Coord_Y
0 TappedButtonLeft 93.5 420
0.0805871250013 TappedButtonNone 255 418.5
0.229725541667 TappedButtonRight 255 418.5
...
# Example of the accelerometer processed data
# Timstamp Accel_X Accel_Y Accel_Z
9.49009614885e+04 1.61743164062e-03 -5.13153076171e-02 -9.94689941405e-01
9.49009714254e+04 1.05529785156e-01 -6.88781738281e-02 -1.04756164551e+00
9.49009813615e+04 1.39877319336e-01 -6.40563964843e-02 -1.08334350586e+00
...
Codes of the experiments are in the accel/
and coord/
folders. Note that to ensemble the models from different data or methods, we directly average the predictions and evaluate, instead of training a new model.
# To train the accelerometer models, find the bash.sh in the folder, and run
bash bash.sh
# And to evaluate, run
bash evaluation.sh
# To train the coordinate models, find the train.sh in the folder, and run
bash train.sh
# And to evaluate, run
bash evaluate.sh