MIOFlow is a Python package for modeling and analyzing single-cell RNA-seq data using optimal flows.
Project description
MIOFlow is a Python package for modeling and analyzing single-cell RNA-seq data using optimal flows. It leverages neural ordinary differential equations (neural ODEs) and optimal transport to reconstruct cell developmental trajectories from time-series scRNA-seq data.
Features
- Trajectory inference using optimal transport and neural ODEs
- GAGA embedding — geometric autoencoder that preserves PHATE distances in latent space
- Gene-space decoding — map trajectories back to full gene expression via PCA inverse projection
- Flexible I/O for AnnData and standard scRNA-seq formats
Installation
Install from PyPI
pip install MIOFlow
Install from GitHub (Development Version)
pip install git+https://github.com/yourusername/MIOFlow.git
Usage
Basic Workflow
from MIOFlow.gaga import Autoencoder, train_gaga_two_phase, train_valid_loader_from_pc
from MIOFlow.mioflow import MIOFlow
# 1. Train a GAGA autoencoder on PCA coordinates + PHATE distances
gaga_model = Autoencoder(input_dim=50, latent_dim=10)
train_loader, val_loader = train_valid_loader_from_pc(X_pca, D_phate, batch_size=64)
train_gaga_two_phase(gaga_model, train_loader, encoder_epochs=50, decoder_epochs=50)
# 2. Fit MIOFlow
mf = MIOFlow(
adata,
gaga_model=gaga_model,
gaga_input_scaler=scaler, # StandardScaler fitted on X_pca
obs_time_key='day',
n_epochs=200,
)
mf.fit()
# 3. Inspect results
print(mf.trajectories.shape) # (n_bins, n_trajectories, latent_dim)
gene_traj = mf.decode_to_gene_space() # (n_bins, n_trajectories, n_genes)
Full worked examples are in the tutorials/ directory.
Citation
If you use MIOFlow in your research, please cite:
@misc{https://doi.org/10.48550/arxiv.2206.14928,
doi = {10.48550/ARXIV.2206.14928},
url = {https://arxiv.org/abs/2206.14928},
author = {Huguet, Guillaume and Magruder, D. S. and Tong, Alexander and Fasina, Oluwadamilola and Kuchroo, Manik and Wolf, Guy and Krishnaswamy, Smita},
keywords = {Machine Learning (cs.LG), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {Manifold Interpolating Optimal-Transport Flows for Trajectory Inference},
publisher = {arXiv},
year = {2022},
copyright = {arXiv.org perpetual, non-exclusive license}
}
License
MIOFlow is distributed under the terms of the Yale License.
Support
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
Acknowledgments
- Built with PyTorch and torchdiffeq for neural ODE integration
- Integrates with the scanpy / AnnData ecosystem for single-cell analysis
- Optimal transport via the POT library
- Geometric embedding via PHATE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mioflow-0.1.11.tar.gz.
File metadata
- Download URL: mioflow-0.1.11.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dd978910c1a56090580425d7588a5147fd9d55cb6392df391861fd477bbfba1
|
|
| MD5 |
d6c2dab06e8109e18c166487a1350332
|
|
| BLAKE2b-256 |
d7ba9e5a8b51fc395bb520ee49f59e6991a9fdd253820dc693024623ba55f873
|
File details
Details for the file mioflow-0.1.11-py3-none-any.whl.
File metadata
- Download URL: mioflow-0.1.11-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
083514dd4196bf5d9876000c823444a7060b453d5e67c029b5c8e3fe9f696461
|
|
| MD5 |
2bd8b1c4f6647b5a13fc05e33da63d94
|
|
| BLAKE2b-256 |
582bef157267179b1eef78b395bdf8d203e8d2e49fe7cb036ce0ff109c2f68df
|