Skip to content

yutongo/TIGON

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TIGON

Trajectory Inference with Growth via Optimal transport and Neural network Doc/overview.jpg

DOI

TIGON is a dynamic unbalanced optimal transport (OT) model that reconstructs dynamic trajectories and population growth simultaneously as well as the underlying gene regulatory network (GRN) from time-series scRNA-seq snapshots.

Requirements

The training framework is implemented in PyTorch and Neural ODEs. Given a stable internet connection, it will take several minutes to install these packages:

  • pytorch 1.13.1
  • scipy 1.10.1
  • TorchDiffEqPack 1.0.1
  • torchdiffeq 0.2.3
  • Recommended: An Nvidia GPU with CUDA support for GPU acceleration

For generating plots to visualize results, the required packages are listed:

  • numpy 1.23.5
  • seaborn 0.12.2
  • matplotlib 3.5.3

Input Files

$Dataset.npy: data coordinates from different time points. One simulation and three single-cell datasets used for TIGON paper are provided in folder Input/.

Usage

Inputs:

--dataset Name of the data set. Options: EMT; Lineage; Bifurcation; Simulation, default = 'Simulation'.
--input_dir Input Files Directory, default='Input/'.
--save_dir Output Files Directory, default='Output/'.
--timepoints Time points of data.
--niters Number of traning iterations.
--lr Learning rate.
--num_samples Number of sampling points per epoch.
--hidden_dim Dimension of hidden layer.
--n_hiddens Number of hidden layers for the neural network learning velocity.

Outputs:

ckpt.pth: save model’s parameters and training errors.

Examples:

Training process: python3 TIGON.py

Visualization of results: python3 plot_result.py

Tutorials:

A Jupyter Notebook of the step-by-step tutorial is accessible from :

Training process: Notebooks/Training.ipynb

Visualization of results: Notebooks/Visualization.ipynb

Sources

Lineage tracing dataset

Single-cell lineage tracing dataset (raw data of Lineage.npy) can be obtained from: Weinreb, Caleb, et al. "Lineage tracing on transcriptional landscapes links state to fate during differentiation." Science 367.6479 (2020): eaaw3381.

EMT dataset

TGFB1 induced EMT from A549 cancer cell line dataset (raw data of EMT.npy) can be obtained from: Cook, David P., and Barbara C. Vanderhyden. "Context specificity of the EMT transcriptional response." Nature communications 11.1 (2020): 1-9.

Bifurcation dataset

Single-cell qPCR dataset of iPSCs toward cardiomyocytes dataset (raw data of Bifurcation.npy) can be obtained from: Bargaje, Rhishikesh, et al. "Cell population structure prior to bifurcation predicts efficiency of directed differentiation in human induced pluripotent cells." Proceedings of the National Academy of Sciences 114.9 (2017): 2271-2276.

Reference

Sha, Y., Qiu, Y., Zhou, P., & Nie, Q. (2023). Reconstructing growth and dynamic trajectories from single-cell transcriptomics data. Nature Machine Intelligence. https://www.nature.com/articles/s42256-023-00763-w#