Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

scRegulate

Single-Cell Regulatory-Embedded Variational Inference of Transcription Factor Activity from Gene Expression

GitHub issuesDocsPyPI - ProjectCondaDOI

Introduction

scRegulate is a powerful tool designed for the inference of transcription factor activity from single cell/nucleus RNA data using advanced generative modeling techniques. It leverages a unified learning framework to optimize the modeling of cellular regulatory networks, providing researchers with accurate insights into transcriptional regulation. With its efficient clustering capabilities, scRegulate facilitates the analysis of complex biological data, making it an essential resource for studies in genomics and molecular biology.



For further information and example tutorials, please check our documentation:

If you have any questions or concerns, feel free to open an issue.

Requirements

scRegulate is implemented in the PyTorch framework. Running scRegulate on CUDA is highly recommended if available.

Before installing and running scRegulate, ensure you have the following libraries installed:

  • PyTorch (version 2.0 or higher)
    Install with the exact command from the PyTorch “Get Started” page for your OS, Python version and (optionally) CUDA toolkit.
  • NumPy (version 1.23 or higher)
  • Scanpy (version 1.9 or higher)
  • Anndata (version 0.8 or higher)

You can install these dependencies using pip:

pip install torch numpy scanpy anndata

Installation

Option 1:
You can install scRegulate via pip for a lightweight installation:

pip install scregulate

Option 2:
Alternatively, if you want the latest, unreleased version, you can install it directly from the source on GitHub:

pip install git+https://github.com/YDaiLab/scRegulate.git

Option 3:
For users who prefer Conda or Mamba for environment management, you can install scRegulate along with extra dependencies:

Conda:

conda install -c zandigohar scregulate

Mamba:

mamba create -n scRegulate -c zandigohar scregulate

FAQ

Q1: Do I need a GPU to run scRegulate?
No, a GPU is not required. However, using a CUDA-enabled GPU is strongly recommended for faster training and inference, especially with large datasets.

Q2: How do I know if I can use a GPU with scRegulate?
There are two quick checks:

  1. System check
    In your terminal, run nvidia-smi. If you see your GPU listed (model, memory, driver version), your machine has an NVIDIA GPU with the driver installed.

  2. Python check
    In a Python shell, run:

    importtorchprint(torch.cuda.is_available()) # True means PyTorch can see your GPUprint(torch.cuda.device_count()) # How many GPUs are usable

Q3: Can I use scRegulate with Seurat or R-based tools?
scRegulate is written in Python and works directly with AnnData objects (e.g., from Scanpy). You can convert Seurat objects to AnnData using tools like SeuratDisk.

Q4: How can I visualize inferred TF activities?
TF activities inferred by scRegulate are stored in the obsm slot of the AnnData object. You can use scanpy.pl.embedding, scanpy.pl.heatmap, or export the matrix for custom plots.

Q5: What kind of prior networks does scRegulate accept?
scRegulate supports user-provided gene regulatory networks (GRNs) in CSV or matrix format. These can be curated from public databases or inferred from ATAC-seq or motif analysis.

Q6: Can I use scRegulate for multi-omics integration?
Not directly. While scRegulate focuses on TF activity from RNA, you can incorporate priors derived from other omics (e.g., ATAC) to guide the model.

Q7: What file formats are supported?
scRegulate works with .h5ad files (AnnData format). Input files should contain gene expression matrices with proper normalization.

Q8: How do I cite scRegulate?
See the Citation section below for the latest reference and preprint link.

Q9: How can I reproduce the paper’s results?
See our Reproducibility Guide for step-by-step instructions. Then run scregulate.

Citation

If you use scRegulate in your research, please cite:

Mehrdad Zandigohar, Jalees Rehman, Yang Dai, scRegulate: single-cell regulatory-embedded variational inference of transcription factor activity from gene expression, Bioinformatics, Volume 41, Issue 12, December 2025, btaf638, doi.org/10.1093/bioinformatics/btaf638

Development & Contact

scRegulate was developed and is actively maintained by Mehrdad Zandigohar as part of his PhD research at the University of Illinois Chicago (UIC), in the lab of Dr. Yang Dai.

📬 For private questions, please email: mzandi2@uic.edu

🤝 For collaboration inquiries, please contact PI: Dr. Yang Dai (yangdai@uic.edu)

Contributions, feature suggestions, and feedback are always welcome!

License

The code in scRegulate is licensed under the MIT License, which permits academic and commercial use, modification, and distribution.

Please note that any third-party dependencies bundled with scRegulate may have their own respective licenses.

About

Python Toolkit for Transcription Factor Activity Inference and Clustering of scRNA-seq Data

Topics

Resources

Code of conduct

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages