MinION signal-level alignment and methylation detection using hidden Markov Models with hierarchical Dirichlet process kmer learning.
Currently Refactoring for RNA. Documentation is probably out of date.
sudo apt-get update && sudo apt-get install zlib1g-dev g++ git
git clone https://github.com/lh3/bwa.git
cd bwa
make
export $PATH=$(pwd):$PATH
- Recursively clone this repo
git clone --recursive -b rna https://github.com/mitenjain/signalAlign.git
cd signalAlign && make
pip install -e .
- Test the installation by running
cd bin && ./testSignalAlign
- All of the programs can be found in the
bin/
directory
Nanopore sequencing is based on the principal of isolating a nanopore in a membrane separating buffered salt solutions, then applying a voltage across the membrane and monitoring the ionic current through the nanopore. The Oxford Nanopore Technologies (ONT) MinION sequences DNA by recording the ionic current as DNA strands are enzymatically guided through the nanopore. SignalAlign will align the ionic current from the MinION to a reference sequence using a trainable hidden Markov model (HMM). The emissions model for the HMM can either be the table of parametric normal distributions provided by ONT or a hierarchical Dirichlet process (HDP) mixture of normal distributions. The HDP models enable mapping of methylated bases to your reference sequence. Instructions for usage including building/training HDP models can be found in the manual.
- Python 2.7 (most packages are included in Anaconda distribution of Python 2.7)
- H5Py
- Numpy
- Pandas
- BWA-MEM (Li H. (2013), instructions can be found (https://github.com/lh3/bwa))
- Needs to be in path
- GCC 4.4.7 or newer (tested on 4.4.7 and 5.0)
signalAlign uses H5Py, Numpy, and Pandas (see requirements.txt for versions used). The system python could be used if these dependencies are present. Otherwise, a virtual environment can be created by running the following command in the signalAlign base directory:
virtualenv --no-site-packages --distribute env && source env/bin/activate && pip install -r requirements.txt
These steps were tested in both a Linux and OS X Sierra environment using Docker: https://docs.docker.com/installation/
To download signalAlign Docker container:
docker pull mitenjain/signalalign
To run signalAlign from the container:
docker run mitenjain/signalalign runSignalAlign
Code in this repo is based on cPecan (https://github.com/benedictpaten/cPecan)