BAGELp
Master | Develop |
---|---|
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
.whl
(wheel)
Install via 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.