Cisformer command-line tools
Project description
Translation of Single-Cell Data Across Modalities with Cisformer
About
Cisformer is a novel cross-modal deep learning model based on the Transformer architecture. It enables bidirectional prediction and association between cis-regulatory elements and genes at the single-cell level, with high efficiency and accuracy.
To meet real-world application needs and improve model performance:
- For the RNA2ATAC task, a trained Cisformer can generate high-quality scATAC-seq data from scRNA-seq inputs.
- For the ATAC2RNA task, the model can generate pseudo-scRNA-seq data and construct a highly accurate cis-regulatory interaction matrix between cis-elements and genes.
Documentation
For detailed usage and examples, see the official documentation.
If you encounter any issues, feel free to open an issue.
Environment Setup
Miniconda3
We recommend using Miniconda3 or Anaconda as the environment manager. Make sure conda is installed.
Creating the Cisformer Environment
To get started, copy requirement.sh to your local server and run:
conda create -n cisformer python=3.10
conda activate cisformer
bash ./requirement.sh
Alternatively, you can install dependencies manually:
conda create -n cisformer python=3.10
conda activate cisformer
conda install numpy=1.23
conda install pytorch=2.2.1 torchvision=0.17.1 torchaudio=2.2.1 pytorch-cuda=12.1 -c pytorch -c nvidia
conda install -c conda-forge accelerate==0.22.0
conda install -c conda-forge scanpy python-igraph leidenalg
pip install ninja
pip install flash-attn --no-build-isolation
pip install torcheval
conda install tensorboard
conda install pybedtools
Install from PyPI
pip install cisformer
Quick Start
Generate Default Config Files
cisformer generate_default_config
This command will create a folder named cisformer_config in the current directory, containing the following config files:
accelerate_config.yamlatac2rna_config.yamlrna2atac_config.yaml
Cisformer uses Hugging Face Accelerate for distributed training. You may need to modify cisformer_config/accelerate_config.yaml based on your server setup. See Accelerate launch docs for more information.
RNA ➝ ATAC
1. Configure Parameters (Optional)
Edit the RNA2ATAC configuration file:
cisformer_config/rna2atac_config.yaml
Refer to the documentation for parameter explanations.
2. Data Preprocessing
Cisformer requires raw scRNA-seq and scATAC-seq data in Scanpy .h5ad format.
To preprocess:
cisformer data_preprocess -r test_data/rna.h5ad -a test_data/atac.h5ad -s preprocessed_dataset
-r: path to RNA.h5adfile-a: path to ATAC.h5adfile-s: output directory
See the documentation for additional options and output file details.
3. Model Training
cisformer rna2atac_train -t preprocessed_dataset/cisformer_rna2atac_train_dataset -v preprocessed_dataset/cisformer_rna2atac_val_dataset -n rna2atac_test
-t: path to training dataset-v: path to validation dataset-n: project name
A save directory will be created (or can be customized using -s). Inside, you'll find a folder like 2025-05-12_rna2atac_test, which contains the trained models. Typically, the model from the last epoch performs best.
Refer to the documentation for more options and output explanations.
4. Prediction
cisformer rna2atac_predict -r preprocessed_dataset/test_rna.h5ad -m save/2025-05-12_rna2atac_test/epoch34/pytorch_model.bin
-r: RNA.h5adfile for prediction-m: trained model checkpoint
The predicted ATAC matrix will be saved to output/cisformer_predicted_atac.h5ad by default.
See the documentation for more.
ATAC ➝ RNA
1. Configure Parameters (Optional)
Edit the ATAC2RNA configuration file:
cisformer_config/atac2rna_config.yaml
See the documentation for details.
2. Data Preprocessing
cisformer data_preprocess -r test_data/rna.h5ad -a test_data/atac.h5ad -s preprocessed_dataset --atac2rna
--atac2rnaflag indicates this is for the ATAC2RNA direction
Other arguments are the same as in RNA2ATAC.
3. Model Training
cisformer atac2rna_train -d preprocessed_dataset/cisformer_atac2rna_train_dataset -n atac2rna_test
-d: path to ATAC2RNA training dataset-n: project name
A save directory will be created (or customized with -s). The folder 2025-05-12_atac2rna_test will contain the trained model, with the final epoch model usually performing best.
4. Prediction (Optional)
cisformer atac2rna_predict -d preprocessed_dataset/cisformer_atac2rna_test_dataset/atac2rna_0.pt -m save/2025-05-12_atac2rna_test/epoch30/pytorch_model.bin
-d: path to test dataset.ptfile-m: trained model checkpoint
Output will be saved to output/cisformer_predicted_rna.h5ad.
5. Link cis-regulators and Genes
cisformer atac2rna_link -d preprocessed_dataset/cisformer_atac2rna_test_dataset/atac2rna_0.pt -m save/2025-05-12_atac2rna_test/epoch30/pytorch_model.bin -c test_data/celltype_info.tsv
-d: test.ptfile (must be accompanied bycell_info.tsvin the same folder)-m: trained model-c: TSV file mapping each cell barcode to a cell type (no header)
Example of celltype_info.tsv:
GTACCGGGTATACTGG-1 CD14 Mono
ACTGAATGTCACCAAA-1 cDC2
AACCTTGCAAACTGTT-1 CD14 Mono
...
The output folder output/cisformer_link will contain .h5ad files linking cis-regulators to genes for each cell type.
Acknowledgements
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 cisformer-1.0.0.tar.gz.
File metadata
- Download URL: cisformer-1.0.0.tar.gz
- Upload date:
- Size: 30.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a70fd8af1c12232b870a456bc047ac51cb8db161ed60e03255de9ba38fa7526
|
|
| MD5 |
51de6a587467ee084d8cb2660192492e
|
|
| BLAKE2b-256 |
43078c1fecdb99a5d53b136d321668aa65d143aa518cd179a08896d53ad96ff3
|
File details
Details for the file cisformer-1.0.0-py3-none-any.whl.
File metadata
- Download URL: cisformer-1.0.0-py3-none-any.whl
- Upload date:
- Size: 30.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
445299746c3cf4a6c31f288ffbc13998525627910e7ad30fd90674da8b1117e0
|
|
| MD5 |
fee3e094ada969ae68b62105dffe2e4e
|
|
| BLAKE2b-256 |
6acc09eb2d97b7976c088869c9ec28482a4437dacd01bbddfdcbd4798f705f30
|