This repository contains the code for the paper
Deep SNP: An End-to-end Deep Neural Network with Attention-based Localization for Break-point Detection in SNP Array Genomic Data
Hamid Eghbal-zadeh, Lukas Fischer, Niko Popitsch, Florian Kromp, Sabine Taschner-Mandl, Teresa Gerber, Eva Bozsaky, Peter F. Ambros, Inge M. Ambros, Gerhard Widmer, Bernhard A. Moser
Published in JCB and initially at the joint ICML and IJCAI 2018 Workshop on Computational Biology
If you use DeepSNP in your research, please cite the following BibTeX entry:
@article{eghbal2018deepsnp,
author={Eghbal-Zadeh, Hamid and Fischer, Lukas and Popitsch, Niko and Kromp, Florian and Taschner-Mandl, Sabine and Gerber, Teresa and Bozsaky, Eva and Ambros, Peter F. and Ambros, Inge M. and Widmer, Gerhard and Moser, Bernhard A.},
title={DeepSNP: An End-to-End Deep Neural Network with Attention-Based Localization for Breakpoint Detection in Single-Nucleotide Polymorphism Array Genomic Data},
journal = {Journal of Computational Biology},
volume = {26},
number = {6},
pages = {},
year = {2019},
doi = {10.1089/cmb.2018.0172},
note ={PMID: 30585743},
URL = {https://doi.org/10.1089/cmb.2018.0172},
eprint = {https://doi.org/10.1089/cmb.2018.0172}
}
DeepSNP was developed using Python 3.6 (Anaconda), Keras 2.2.2 and Tensorflow 1.9 and was tested under Windows 10 and Ubuntu 16.04.
pip install -r requirements.txt
DeepSNP expects windowed data from SNPa sequences. To prepare your data follow the instructions described in TRAINING.
Experiment ID and run mode (training, inference (default), data_from_raw, eval_rawcopy) can be passed to the main.py function.
Each experiment ID needs a configuration file (inheriting the default configuration: configs/config.py)
For example to run inference with DeepSNPv1 with no attention use:
python main.py --exp_id DeepSNP_V1_noAtt' --mode inference
This wil load the configuration defined in:
configs/config_DeepSNP_V1_noAtt.py
To train the provided models from scratch please refer to TRAINING.
To evaluate the breakpoint prediction performance of Rawcopy on a certain data set use:
python main.py --mode eval_rawcopy
This work was carried out within the Austrian Research Promotion Agency (FFG) COIN "Networks" project VISIOMICS together with St. Anna Kinderkrebsforschung and additionally supported by the Austrian Ministry for Transport, Innovation and Technology, the Federal Ministry of Science, Research and Economy, and the Province of Upper Austria in the frame of the COMET center SCCH. The authors gratefully acknowledge the support of NVIDIA Corporation with the donation of a Titan~X GPU used for this research.