Basset
Deep convolutional neural networks for DNA sequence analysis.
Basset provides researchers with tools to:
- Train deep convolutional neural networks to learn highly accurate models of DNA sequence activity such as accessibility (via DNaseI-seq or ATAC-seq), protein binding (via ChIP-seq), and chromatin state.
- Interpret the principles learned by the model.
Read more about the method in the manuscript here:
As well as follow up work here:
Which has an associated repo where continued development on this toolkit now occurs. You can now run Basset-style peak prediction using Basenji, and I recommend using that software because I can better support it. See here..
Installation
Basset has a few dependencies because it uses both Torch7 and Python and takes advantage of a variety of packages available for both.
First, I recommend installing Torch7 from here. If you plan on training models on a GPU, make sure that you have CUDA installed and Torch should find it.
For the Python dependencies, I highly recommend the Anaconda distribution. The only library missing is pysam, which you can install through Anaconda or manually from here. You'll also need bedtools for data preprocessing. If you don't want to use Anaconda, check out the full list of dependencies here.
Basset relies on the environmental variable BASSETDIR to orient itself. In your startup script (e.g. .bashrc), write
export BASSETDIR=the/dir/where/basset/is/installed
To make the code available for use in any directory, also write
export PATH=$BASSETDIR/src:$PATH
export PYTHONPATH=$BASSETDIR/src:$PYTHONPATH
export LUA_PATH="$BASSETDIR/src/?.lua;$LUA_PATH"
To download and install the remaining dependencies, run
./install_dependencies.py
Alternatively, Dr. Lee Zamparo generously volunteered his Docker image.
To download and install additional useful data, like my best pre-trained model and public datasets, run
./install_data.py
Documentation
Basset is under active development, so don't hesitate to ask for clarifications or additional features, documentation, or tutorials.
Tutorials
These are a work in progress, so forgive incompleteness for the moment. If there's a task that you're interested in that I haven't included, feel free to post it as an Issue at the top.
- Preprocess
- Train
- Test
- Visualization