/BAGELp

Parallel version of bagel https://sourceforge.net/projects/bagel-for-knockout-screens/

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

BAGELp

Master Develop
Master Badge Develop Badge

This is parallel implementation of original BAGEL: software for Bayesian analysis of gene knockout screens using pooled library CRISPR or RNAi.

BAGEL is a Bayesian classifier for pooled library genetic perturbation screens, using either CRISPR-Cas9 or shRNA libraries. It uses training sets of known essential and nonessential genes to estimate what the fold change distribution of an essential or nonessential gene should look like. Then, for each uncharacterized gene, it takes all observations of reagents targeting that gene (guide RNA, for CRISPR-Cas9 screens, or short hairpin RNA) and makes a probabilistic statement about whether those observations were more likely drawn from the essential or nonessential training set. A log2 Bayes Factor for each gene is reported.

Design

Uses python pool to parallelise bootstrapping step

Tools

BAGELp has multiple commands, listed with BAGELp --help.

BAGELp

Parallel implementation of original BAGEL

inputFormat

Input is tab separated txt file (see example file in tests/data/test_fc.txt

Please refere original BAGEL for detailed file format documentation

outputFormat

Calculates log2 Bayes Factor for each gene.

Please refere original BAGEL for detailed file format documentation

INSTALL

Installing via pip install. Simply execute with the path to the compiled 'whl' found on the release page:

pip install BAGELp.X.X.X-py3-none-any.whl

Release .whl files are generated as part of the release process and can be found on the release page

Package Dependancies

pip will install the relevant dependancies, listed here for convenience, please refer requirements.txt for versions:

Development environment

This project uses git pre-commit hooks. As these will execute on your system it is entirely up to you if you activate them.

If you want tests, coverage reports and lint-ing to automatically execute before a commit you can activate them by running:

git config core.hooksPath git-hooks

Only a test failure will block a commit, lint-ing is not enforced (but please consider following the guidance).

You can run the same checks manually without a commit by executing the following in the base of the clone:

./run_tests.sh

Development Dependencies

Setup VirtualEnv

cd $PROJECTROOT
hash virtualenv || pip3 install virtualenv
virtualenv -p python3 env
source env/bin/activate
python setup.py develop # so bin scripts can find module

For testing/coverage (./run_tests.sh)

source env/bin/activate # if not already in env
pip install pytest
pip install pytest-cov

Also see Package Dependancies

Cutting a release

Make sure the version is incremented in ./setup.py

Install via .whl (wheel)

Generate .whl

source env/bin/activate # if not already
python setup.py bdist_wheel -d dist

Install .whl

# this creates an wheel archive which can be copied to a deployment location, e.g.
scp dist/BAGELp.X.X.X-py3-none-any.whl user@host:~/wheels
# on host
pip install --find-links=~/wheels BAGELp

Reference

If using BAGELp please site
URL of this repository and
Hart T, Moffat J. BAGEL: a computational framework for identifying essential genes from pooled library screens. BMC Bioinformatics. 2016 Apr 16;17:164. doi:10.1186/s12859-016-1015-8.