Skip to main content

scVital

Latest PyPI Version PyPI Downloads tests

scVial workflow

Read the pre-print! A deep-learning tool for species-agnostic integration of cancer cell states

scVital

scVital is a powerful tool designed for the integration and analysis of single-cell RNA sequencing (scRNA-seq) data from multiple species. It leverages deep learning techniques to integrate datasets, enabling comprehensive comparative analyses and insights into conserved and species-specific cell states.

Features

  • Cross-Species Data Integration: Seamlessly integrate scRNA-seq data from different species.
  • Deep Learning Models: Utilizes autoencoders and discriminators for effective data integration.
  • Comprehensive Evaluation Metrics: Evaluate model performance using latent space similarity, UMAP visualization, cluster identification, and more.
  • User-Friendly Interface: Easy to use with detailed documentation and examples.

Installation

From PyPI

To install scVital from PyPI, use the following command:

pip install scVital

From GitHub Release

To download and install scVital from a GitHub release, follow these steps:

  1. Navigate to the GitHub Repository:

    • Go to the scVital GitHub repository.
  2. Go to the Releases Section:

    • Click on the "Releases" tab, which is usually found on the right side of the repository's main page.
  3. Find the Desired Release:

    • Browse through the list of releases and find the one you want to download. Releases are typically tagged with version numbers.
  4. Download the Release:

    • Under the desired release, you will find assets such as .zip or .tar.gz files. Click on the appropriate file to download it.
  5. Install the Package:

    • Once downloaded, you can install the package using pip. Navigate to the directory where the downloaded file is located and run the following command in your terminal:

      pip install path/to/downloaded/file.zip
      

      Replace path/to/downloaded/file.zip with the actual path to the downloaded file.

Example

Let's say you want to download and install a package from a GitHub release:

  1. Navigate to the repository: https://github.com/j-rub/scVital

  2. Go to the Releases section: https://github.com/j-rub/scVital/releases

  3. Download the release: Click on scVital-v1.0.1.zip to download it.

  4. Install the package:

    pip install ~/Downloads/scVital-1.0.1.zip
    

Usage Example

import numpy as np
import pandas as pd
import scanpy as sc
import scVital as sv

writeDir = "../data"
tissue = "muscle"

species1 = "human"
adataFile1 = f'{writeDir}/{tissue}Human_DeM_QC.h5ad'

species2 = "mouse"
adataFile2 = f'{writeDir}/{tissue}Mouse_DeM_QC.h5ad'

adata1 = sc.read_h5ad(adataFile1)
adata2 = sc.read_h5ad(adataFile2)

adata = sv.mg.mergeAdatas([adata1, adata2]) 

batchKey = "species"
sc.pp.highly_variable_genes(adata, batch_key=batchKey, n_top_genes=2000)
adata = adata[:, np.logical_and(adata.var.highly_variable, np.logical_not(adata.var.mt))]


setupData = {
    'adata': adata,
    'batchLabel': 'species',
    'miniBatchSize': 128,
    'numEpoch': 36,
    'learningRate': 1e-3,
    'hid1': 1024,
    'hid2': 128,
    'latentSize': 12,
    'discHid': 6,
    'reconCoef': 1e1,
    'klCoef': 5e-1,
    'discCoef': 1e0,
    'discIter': 5,
    'earlyStop': 1e-2,
    'train': False,
    'seed': 18,
    'verbose': True
}

scVitalModel = sv.makeScVital(setupData['adata'], setupData['batchLabel'], setupData['miniBatchSize'], setupData['numEpoch'], setupData['learningRate'],
        setupData['hid1'], setupData['hid2'], setupData['latentSize'], setupData['discHid'], 
        setupData['reconCoef'], setupData['klCoef'], setupData['discCoef'], setupData['discIter'], 
        setupData['earlyStop'], setupData['train'], seed=setupData['seed'], verbose=setupData['verbose']
    )

scVitalModel.runTrainScVital()

adata = scVitalModel.getAdata()

umapKey = "scVitalModel"
neighborsKey = "scVitalModel"
pcaRep = "X_scVital"

sc.pp.pca(adata, svd_solver="arpack")
sc.pp.neighbors(adata, n_pcs=scVitalModel.getLatentSize(), use_rep=pcaRep, key_added=umapKey)
sc.tl.umap(adata, neighbors_key = umapKey)
sc.tl.leiden(adata, resolution=0.1, key_added = neighborsKey, neighbors_key = umapKey)#, flavor="igraph", n_iterations=2,  directed=False)

sc.pl.umap(adata, color = ["species",neighborsKey,"cell_annotation"], ncols = 2)

Future Improvements for scVital

  1. Additional Discriminator:

    • Address inter-patient heterogeneity to reduce batch effects when integrating human data.
      • One discriminator to remove patient batch effect.
      • One discriminator to remove species batch effect.
    • Enhance integration when multiple human patients are involved.
  2. Use Reconstructed Output Data as Imputed Data:

    • Utilize imputed gene expression data for further downstream analysis, including differential gene expression.
      • Overcome gene dropout in scRNA-seq data.
  3. Expand to Perform Cell Clustering:

    • Add an output softmax clustering layer to the latent space.
      • Identify cell states without needing Leiden clustering after training.
  4. Utilize GPUs to Speed Up the Process:

    • Implement GPU acceleration to enhance processing speed and efficiency.
      • Possibly use NVIDIA rapids

README made with the help of copilot.

Metadata

Release files for scVital 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scVital 1.0.1
File Size Uploaded
scvital-1.0.1.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for scVital 1.0.1
File Interpreter ABI Platform
scvital-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.5 MB

Release files / scvital-1.0.1.tar.gz

Download URL scvital-1.0.1.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
e66415c7ff94838f42e45ad4d33c8d1e77c2b66e9cec88c96e937cd9ce16719d
BLAKE2b-256 checksum
How to use checksums
8b06a34fa310de2b5cbd97294c9cfeae1d5bd3a772bc9742968e99ad0875fa17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2025.

Transparency log

Release files / scvital-1.0.1-py3-none-any.whl

Download URL scvital-1.0.1-py3-none-any.whl
Size 51.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f3ceed3b323e463f70a9402618f5749c4034394d727b34f4dfbe90225e9f8824
BLAKE2b-256 checksum
How to use checksums
17a25cbe3c2ca15e9e64a6f0f2a4d8b337c092f2a6a2d4428ebff3003691a24b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page