This is now published in Genome Biology.
An example of what the model can provide is shown below.
- The posterior cell assignment is shown in top subpanel: each cell is assigned a probability of belonging to a branch.
- In the bottom subpanel the posterior branching time is shown: the probability of branching at a particular pseudotime.
If you have any problems with installation see the script at the bottom of the page for a detailed setup guide from a new python environment.
- Install tensorflow
pip install tensorflow
- Install GPflow
git clone https://github.com/GPflow/GPflow.git cd GPflow pip install . cd
See GPFlow page for more detailed instructions.
- Install Branched GP package
git clone https://github.com/ManchesterBioinference/BranchedGP cd BranchedGP python setup.py install cd
For a quick introduction see the
Therein we demonstrate how to fit the model and compute
the log Bayes factor for two genes.
The Bayes factor in particular is calculated by calling
after fitting the model using
This notebook should take a total of 6 minutes to run.
To run the tests should takes < 3min.
pip install nose pip install nose-timer cd BranchedGP/testing nosetests --pdb-failures --pdb --with-timer
List of notebooks
To run the notebooks
cd BranchedGP/notebooks jupyter notebook
|Hematopoiesis||Application of BGP to hematopoiesis data.|
|SyntheticData||Application of BGP to synthetic data.|
|SamplingFromTheModel||Sampling from the BGP model.|
Comparison to monocle-BEAM
In the paper we compare the BGP model to the BEAM method proposed
in monocle 2. In
monocle/runMonocle.R the R script for performing
Monocle and BEAM on the hematopoiesis data is included.
List of python library files
|FitBranchingModel.py||Main file for user to call BGP fit, see function FitModel|
|pZ_construction_singleBP.py||Construct prior on assignments; use by variational code.|
|assigngp_dense.py||Variational inference code to infer function labels.|
|assigngp_denseSparse.py||Sparse inducing point variational inference code to infer function labels.|
|branch_kernParamGPflow.py||Branching kernels. Includes independent kernel as used in the overlapping mixture of GPs and a hardcoded branch kernel for testing.|
|BranchingTree.py||Code to generate branching tree.|
Running in a cluster
When running BranchingGP in a cluster it may be useful to constrain the number of cores used. To do this insert this code at the beginning of your script.
from gpflow import settings settings.session.intra_op_parallelism_threads = NUMCORES settings.session.inter_op_parallelism_threads = NUMCORES