Author: William Purvis
This project implements a custom latent force model in GPJax
, a didactic Gaussian Process library for python, to infer the latent activity profile of the p53 transcription factor given the expressions of its target genes. The model is flexible, allowing for different data replicas to be used as well as enabling ablation studies.
The code for this project can either be installed and run within a docker container, or the repository can be run locally. To clone the repository run the following command:
git clone [email protected]:phy/data-intensive-science-mphil/projects/wp289.git
A dockerfile is provided to run the project alongside all of it's dependencies (defined in environment.yml) in a docker container. To build the docker image from the provided dockerfile run the following commands after cloning the repository:
docker build -t lfm_image . # builds docker image
As the project requires command-line interactions, the docker container needs to be run in interactive mode:
docker run -it lfm_image
The project can then be run within the docker container.
To run this project without docker, create a conda
environment from the provided environment.yml
file and activate it:
conda env create -f environment.yml # create env
conda activate gpjax_wp289 # activate env
To run the GPJax
implementation of the latent force model (LFM) used to obtain the latent activity of p53 presented in the report run the following command from the root directory:
python src/main.py
In addition, refactored code from the ALFI package is included to validate the results. This LFM can be run using:
python src/gpytorch/main_alfi.py
Additionally, example notebooks are provided as tutorials on how to use this package (src/notebook.py
).
NOTE there is a depency issue with GPJax, and the following warning may appear (that can be safely ignored):
UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.
This project uses NumPy-style doc strings and in-depth documentation on how to use the package can be obtained by navigating to the docs/
directory and building the documentation locally:
cd docs
make html # Generate HTML documentation
This project is licensed under the MIT license - see the LICENSE file for details.