unitvelo

UniTVelo, Temporally Unified RNA Velocity for single cell trajectory inference

https://github.com/statbiomed/unitvelo

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: biorxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.6%) to scientific vocabulary

Keywords

inference rna trajectory transcriptomics velocity
Last synced: 6 months ago · JSON representation ·

Repository

UniTVelo, Temporally Unified RNA Velocity for single cell trajectory inference

Basic Info
Statistics
  • Stars: 26
  • Watchers: 3
  • Forks: 9
  • Open Issues: 2
  • Releases: 2
Topics
inference rna trajectory transcriptomics velocity
Created almost 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

UniTVelo for RNA Velocity Analysis

Temporally unified RNA velocity for single cell trajectory inference (UniTVelo) is implementated on Python 3 and TensorFlow 2. The model estimates velocity of each gene and updates cell time based on phase portraits concurrently. human bone marrow velocity stream

The major features of UniTVelo are,

  • Using spliced RNA oriented design to model RNA velocity and transcription rates
  • Introducing a unified latent time (Unified-time mode) across whole transcriptome to incorporate stably and monotonically changed genes
  • Retaining gene-spcific time matrics (Independent mode) for complex datasets

UniTVelo has proved its robustness in 10 different datasets. Details can be found via our manuscript in bioRxiv which is currently under review (UniTVelo).

Installation

GPU Acceleration

UniTVelo is designed based on TensorFlow's automatic differentiation architecture. Please make sure TensorFlow 2 and relative CUDA dependencies are correctly installed.

Use the following scripts to confirm TensorFlow is using the GPU.

python3 import tensorflow as tf print ("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

If GPU is not available, UniTVelo will automatically switch to CPU for model fitting or it can be spcified in config.py (see Getting Started below).

Main Module

(Optional) Create a separate conda environment for version control and to avoid potential conflicts.

python3 conda create -n unitvelo python=3.7 conda activate unitvelo

UniTVelo package can be conveniently installed via PyPI or directly from GitHub repository.

python3 pip install unitvelo

or

python3 pip install git+https://github.com/StatBiomed/UniTVelo

Getting Started

Analyzed Notebooks

https://drive.google.com/drive/folders/1A-Gcu0zhjVv4N8UZHttM_RULSztUzaUU?usp=sharing

Public Datasets

Examples of UniTVelo and steps for reproducible results are provided in Jupyter Notebook under notebooks folder. Specifically, please refer to records analyzing Mouse Erythroid and Human Bone Marrow datasets.

UniTVelo has proved its performance through 10 different datasets and 4 of them have been incorporated within scVelo package, see datasets. Others can be obtained via link.

RNA Velocity on New Dataset

UniTVelo provides an integrated function for velocity analysis by default whilst specific configurations might need to be adjusted accordingly.

  1. Import package

python3 import unitvelo as utv

  1. Sub-class and override base configuration file (here lists a few frequently used), please refer config.py for detailed arguments.

python3 velo = utv.config.Configuration() velo.R2_ADJUST = True velo.IROOT = None velo.FIT_OPTION = '1' velo.GPU = 0

  • Arguments:
    • -- velo.R2_ADJUST (bool), linear regression R-squared on extreme quantile (default) or full data (adjusted)
    • -- velo.IROOT (str), specify root cell cluster would enable diffusion map based time initialization, default None
    • -- velo.FIT_OPTION (str), '1' Unified-time mode (default), '2' Independent mode
    • -- velo.GPU (int), specify the GPU card used for fitting, -1 will switch to CPU mode, default 0.
  1. Run model (label refers to column name in adata.obs specifying celltypes)

python3 adata = utv.run_model(path_to_adata, label, config_file=velo) scv.pl.velocity_embedding_stream(adata, color=label, dpi=100, title='')

  1. Evaluation metrics (Optional)

```python3

Cross Boundary Direction Correctness

Ground truth should be given via cluster_edges

metrics = {} metrics = utv.evaluate(adata, cluster_edges, label, 'velocity')

Latent time estimation

scv.pl.scatter(adata, color='latenttime', colormap='gnuplot', size=20)

Phase portraits for individual genes (experimental)

utv.pl.plotrange(genename, adata, velo, showax=True, timemetric='latent_time') ```

Owner

  • Name: Statistical learning for Biomedicine
  • Login: StatBiomed
  • Kind: organization
  • Location: HK

Lab of Data Science for Biomedical Science at HKU

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this package, please cite it as below."
authors:
- family-names: "GAO"
  given-names: "MINGZE"
  orcid: "https://orcid.org/0000-0002-8795-3861"
title: "UniTVelo"
version: 0.2.3
doi: 10.5281/zenodo.7112387
date-released: 2022-09-25
url: "https://github.com/StatBiomed/UniTVelo"

GitHub Events

Total
  • Issues event: 4
  • Watch event: 1
  • Push event: 1
  • Fork event: 1
Last Year
  • Issues event: 4
  • Watch event: 1
  • Push event: 1
  • Fork event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 59
  • Total Committers: 4
  • Avg Commits per committer: 14.75
  • Development Distribution Score (DDS): 0.102
Past Year
  • Commits: 12
  • Committers: 3
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.25
Top Committers
Name Email Commits
MichaelGMZ m****9@o****m 53
Yuanhua Huang h****4@g****m 3
Idris Kouadri Boudjelthia 7****b 2
Altair Wei a****i@o****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 13
  • Total pull requests: 21
  • Average time to close issues: 5 months
  • Average time to close pull requests: 1 day
  • Total issue authors: 11
  • Total pull request authors: 3
  • Average comments per issue: 2.38
  • Average comments per pull request: 0.0
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Linxiaobuskiy (2)
  • altairwei (2)
  • cameronraysmith (1)
  • AlexanderAivazidis (1)
  • 0317miaomiao (1)
  • Marius1311 (1)
  • Mnew1288 (1)
  • trebbiano (1)
  • SJagot (1)
  • SevenTea7 (1)
Pull Request Authors
  • michaelgmz (19)
  • altairwei (1)
  • idriskb (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 84 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 17
  • Total maintainers: 1
pypi.org: unitvelo

Temporally unified RNA velocity inference

  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 84 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 11.5%
Average: 13.1%
Forks count: 13.3%
Stargazers count: 13.7%
Downloads: 16.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

docs/requirements.txt pypi
  • importlib_metadata *
  • ipykernel *
  • nbsphinx <=0.8.6
  • setuptools *
  • setuptools_scm *
  • sphinx *
  • sphinx_autodoc_typehints *
  • sphinx_rtd_theme >=0.3
  • typing_extensions *
  • unitvelo *