/GraphCPA

Predicting gene expression for single cell perturbation with small molecules using a computational perturbational auto encoder (CPA) and graph neural network (GNN). Utilizing gene coexpression information via a graph.

Primary LanguageJupyter NotebookMIT LicenseMIT

GraphCPA

This repository has our code for our model GraphCPA and its variants, created for CPSC 483.

Usage

  • Download checkpoint of pretrained molecule encoder from here and place into jeffrey/base_checkpoint.
  • Download de_train.parquet from here and place into the root of the repository.
  • For all training and inference besides from inside the jeffrey (molecule transformer), create and activate a Conda environment from environment.yml. For the variant of the model with the molecule transformer in jeffrey, use transformer_environment.yml.

GraphCPA Base

  • Use finetune.py and inference.py.

GraphCPA + Molecule Transformer

  • Use jeffrey/finetune.py and inference.py for the trainable molecule encoder.
  • Use jeffrey/finetune_fixed.py and inference_fixed.py for the fixed molecule encoder.

GraphCPA + Gene Relationship GCN

  • Use andrew/finetune.py and andrew/inference.py.

GraphCPA + Gene Relationship GCN + Chromatin Attention

  • Use bill/finetune.py and bill/inference.py.

Evaluation