Installation
Requirements
This program requires just a few libraries. I provide a buildCondaLocal.zsh script that you can run on your own machine to automatically build an environment, or you can install the dependencies yourself with conda or pip.
- python >= 3.11
This project uses features that were introduced in Python 3.11 heavily, so earlier Python versions will not work.
- tfmodisco-lite
Used to identify motifs. (You may need to install cmake to build the wheel for modiscolite.)
- pyBigWig
Used to read in data files.
- pysam
used to read in fasta files.
- pyBedTools
Used to read in region files. You will also need to make sure you have BedTools installed to use pyBedTools.
- tensorflow < 2.16
Does the heavy work of machine learning. Tensorflow 2.16 added a bunch of crummy backwards-incompatible behavior and it will be supported with BPReveal 5.0.
- tensorflow-probability < 0.24
Used to create the multinomial loss function.
- matplotlib
Used to make pretty plots.
- tqdm
Used to create progress bars.
- h5py
Used to read and write data files.
- jsonschema
Used to validate the json files given to the Main CLI programs.
- gcc, gfortran
You’ll need a C compiler and a Fortran compiler to build the Jaccard and ushuffle libraries.
While not strictly necessary, the following packages are very useful:
- jupyterlab
For interactive data wrangling.
- pandoc
Used to export Jupyter notebooks as pdfs.
- pydot, graphviz
These are only necessary to use showModel.py, which is deprecated and will be removed in BPReveal 6.0.0.
Additionally, for development, there are a few libraries that I find useful:
- flake8, pydocstyle, pylint
Used to check the code for style issues.
- sphinx, sphinx_rtd_theme, sphinx-argparse, sphinx-autodoc-typehints
Used to generate the documentation you’re reading right now.
- coverage
Used to check code coverage.
Setup
Once you have the requisite packages, you need to do a bit more setup to get BPReveal fully installed. If you use the buildCondaLocal.zsh script, you can skip this because the script takes care of this part.
In the
src/directory of BPReveal, runmake clean && maketo build the Jaccard and ushuffle libraries. This step also generates the json schemas that are used to check your inputs for bugs.Add the
bin/directory to your path. This will be something like:export PATH=/path/to/bpreveal/bin:$PATH
Add the
pkg/directory to your python path. The easy way to do this is withconda develop:conda develop /path/to/bpreveal/pkg
(Optional) Build the documentation in the
doc/directory:make html latexpdf