A package for discovering motifs in ChIP-seq datasets with knockout controls
What is peaKO?
PeaKO discovers motifs in ChIP-seq datasets with knockout controls. PeaKO takes in paired wild-type/knockout BAM files in addition to several reference files, as input. It returns a file of ranked motifs (see our paper for more details).
- Conda (Miniconda or Anaconda)
- MEME Suite version 4.12.0 with our CentriMo binary* (see below)
- Download peaKO's environment file.
- Open a terminal and run
conda env create -f peako-env.ymlin your Downloads directory. This will create a Conda environment called "peako".
conda activate peakoor
source activate peakoto activate this environment.
- Install peaKO from PyPI by running
python3 -m pip install peako.
- You can test that this worked by running
Instructions for our modified CentriMo binary
*Our modified CentriMo application will be incorporated in MEME Suite's next major release. Until then, you may install MEME Suite from source and replace its binary with our own to use peaKO.
- Download MEME distribution 4.12.0 from the MEME Suite Download page.
- Follow the "Quick Install" steps on the MEME Suite Installation page up until
- After running
make install, replace
$HOME/meme/bin/centrimowith our modified CentriMo binary.
- Make sure that
$HOME/meme/binis located on your
$PATH. You should now be able to call
PeaKO uses Snakemake, which is a workflow management system.
You can run peaKO either locally or on a compute cluster using the Slurm job scheduling system.
To run on Slurm, you must create your own
cluster.config file (template) and provide it to peaKO via
Each step of the workflow either inherits from the main activated Conda environment ("peako") or uses its own separate environment.
If you are working on a compute cluster, run peaKO first with
--sm-build-envs on a node with internet access to create these additional Conda environments.
Then, you can run it on the cluster without internet, providing a Slurm configuration file (see above).
After activating peaKO's Conda environment (
conda activate peako or
source activate peako), you can run peako as follows:
peako <outdir> <wt-bam> <ko-bam> <organism> <chr-sizes> <trf-masked-genome> <motif-database> [options]
There are 7 required arguments. Please provide full paths for files and directories.
outdir: output directory (please make sure this already exists); all output directories and files will be created here
wt-bam: wild-type sample BAM file
ko-bam: knockout sample BAM file
organism: name of organism (must be either
chr-sizes: chromosome sizes file of reference genome (TXT)
trf-masked-genome: TRF masked reference genome file (FASTA)
motif-database: JASPAR motif database (MEME)
Here are the optional arguments:
--help: access the help message and exit
--version: show the program's version and exit
-j <JASPAR_ID>: transcription factor motif JASPAR identifier (e.g. MA0083.3)
-m <MOTIF>: transcription factor motif common name (e.g. SRF)
--extra: output all intermediate peaKO files for plotting
--pickle: use pickled peaKO dictionaries from previous run
--sm-build-envs: build conda environments for workflow and exit (requires internet connection)
--sm-cluster-config: snakemake cluster configuration file (JSON)
Currently, peaKO generates output directories and files for each step.
These can all be found under your provided
PeaKO's main output file is
<outdir>/peako_out/peaKO-rankings.txt, which contains a ranked list of motifs.
Source code is available at: https://bitbucket.org/hoffmanlab/peako.
If you found peaKO useful, please cite:
Denisko D, Viner C, Hoffman MM. Motif elucidation in ChIP-seq datasets with a knockout control. BioRxiv <ID> [Preprint]. 2019. Available from: https://doi.org/<ID>
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.