Extension of the Monge Gap to learn conditional optimal transport maps
Project description
Conditional Monge Gap
An extension of the Monge Gap, an approach to estimate transport maps conditionally on arbitrary context vectors. It is based on a two-step training procedure combining an encoder-decoder architecture with an OT estimator. The model is applied to 4i and scRNA-seq datasets.
Installation from PyPI
You can install this package as follows
pip install cmonge
Development setup & installation
The package environment is managed by poetry. The code was tested in Python 3.10.
pip install poetry
git clone git@github.com:AI4SCR/conditional-monge.git
cd cmonge
poetry install -v
If the installation was successful you can run the tests using pytest
poetry shell # activate env
pytest
Data
The preprocessed version of the Sciplex3 and 4i datasets can be downloaded here.
Example usage
You can find example config in configs/conditional-monge-sciplex.yml.
To train an autoencoder model:
from cmonge.datasets.conditional_loader import ConditionalDataModule
from cmonge.trainers.ae_trainer import AETrainerModule
from cmonge.utils import load_config
config_path = Path("configs/conditional-monge-sciplex.yml")
config = load_config(config_path)
config.data.ae = True
datamodule = ConditionalDataModule(config.data, config.condition)
ae_trainer = AETrainerModule(config.ae)
ae_trainer.train(datamodule)
ae_trainer.evaluate(datamodule)
To train a conditional monge model:
from cmonge.datasets.conditional_loader import ConditionalDataModule
from cmonge.trainers.conditional_monge_trainer import ConditionalMongeTrainer
from cmonge.utils import load_config
config_path = Path("configs/conditional-monge-sciplex.yml")
logger_path = Path("logs")
config = load_config(config_path)
datamodule = ConditionalDataModule(config.data, config.condition)
trainer = ConditionalMongeTrainer(jobid=1, logger_path=logger_path, config=config.model, datamodule=datamodule)
trainer.train(datamodule)
trainer.evaluate(datamodule)
Older checkpoints loading
If you want to load model weights of older checkpoints (cmonge-{moa, rdkit}-ood or cmonge-{moa, rdkit}-homogeneous), make sure you are on the tag cmonge_checkpoint_loading.
git checkout cmonge_checkpoint_loading
Citation
If you use the package, please cite:
@inproceedings{
harsanyi2024learning,
title={Learning Drug Perturbations via Conditional Map Estimators},
author={Benedek Harsanyi and Marianna Rapsomaniki and Jannis Born},
booktitle={ICLR 2024 Workshop on Machine Learning for Genomics Explorations},
year={2024},
url={https://openreview.net/forum?id=FE7lRuwmfI}
}
Project details
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 cmonge-0.1.0.tar.gz.
File metadata
- Download URL: cmonge-0.1.0.tar.gz
- Upload date:
- Size: 34.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.10.16 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62a3754ba42134f51f4dfd88ce097080622be6439c638f140bfb2df6aadcf6ed
|
|
| MD5 |
c682c3af05ad36ec62d38e643efc951d
|
|
| BLAKE2b-256 |
69ca126f7f1b6baf9961dc95082105d2734efd236ec15dc2de03c2798a070d25
|
File details
Details for the file cmonge-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cmonge-0.1.0-py3-none-any.whl
- Upload date:
- Size: 41.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.10.16 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a02322061956303d41ee5c29408a9b6a0f28cf6cda8e3dd3d46cd864abe3e1cf
|
|
| MD5 |
04d9fc8b7d988ac868a3898f46efed31
|
|
| BLAKE2b-256 |
59bdac008380386a918daf2dfedd3d8d5b0f607c2da526cb3dae9ec6a75c2fde
|