Bootstrap-based OscoNet method: Method to infer sinusoidal oscillations in single cell data.
This software reproduces the approach presented in 'OscoNet: inferring oscillatory gene networks' by Luisa Cutillo, Alexis Boukouvalas, Elli Marinopoulou, Nancy Papalopulu & Magnus Rattray
BMC Bioinformatics volume 21, Article number: 351 (2020)
https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-020-03561-y
contact: [email protected]
The authors would like to thank Michael Croucher @mikecroucher for code optimization.
- Create new environment
conda create --name fullosconet python=3and to activate it withconda activate fullosconetbefore proceeding. - Install required packages using
pip install -r requirements.txt - Install package
pip install -e . - Install numba
conda install numba - Verify your installation by running
pytestfrom the project root directoryFullOscoNet. Note this can take around 1-2 minutes.
- Run
python OscopeBootstrap/oscope_tf.py --test_modefor a simple demonstration of the method on synthetic data. This will run under a quick configuration to demonstrate the capabilities of the method. This should take 10-20 seconds. - Remove the
--test_modeflag for a 1000-sample bootstrap test on the exact synthetic run configuraiton used in the paper (1000 genes, 100 cells with 3 clusters of co-oscillating genes).
notebooks/OscoNet introduction.ipynb: provides an introduction to the hypothesis test on a simple synthetic example.notebooks/Reproduce_figures_5_7.ipynb: pseudotime on Whitfield microarray data. To see how the spectral embedding pseudotime method can be applied.notebooks/Reproduce_Table1.ipynb: Reproduce table 1 from OscoNet papernotebooks/Reproduce_Table5.ipynb: Reproduce table 5 from OscoNet papernotebooks/Reproduce_Figure4.ipynb: Reproduce Figure 4 from OscoNet paper
OscoNet requires the data to be already normalised and rescaled between [-1,1].
We suggest you chose your favourite normalization pipeline and also you continue the preprocessing in R, using the functions 'MVfilter' and 'NormForSine' from the R package Oscope: https://www.bioconductor.org/packages/release/bioc/html/Oscope.html