Repository files navigation

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

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

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

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

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

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

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

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

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

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

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

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

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

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

[CellVQ] Illuminating cell states by a comprehensive and interpretable single cell foundation model

CellVQ is a comprehensive and interpretable single-cell foundation model. CellVQ innovatively integrates a Single-Cell Discretization (SCD) module into the single-cell foundation model. This module utilizes a unified cell codebook to transform the cell representation into a cell code and uses an SCD cell embedding derived from the cell codebook to represent the cell corresponding to the code. CellVQ employs an encoder-SCD-decoder architecture, encompassing 511 million parameters and pretrained on over 68 million single-cell data points.

Table of Contents

Background

Advances in high-throughput single-cell sequencing techniques have enabled AI-driven methods to harness extensive datasets, resulting in the emergence of robust single-cell foundation models that demonstrate exceptional representation capabilities across various downstream applications. However, current evidence suggests that the practical utility and generalizability of these foundation models are significantly constrained by the sparsity and heterogeneity of real-world data, as well as their limited interpretability. To truly enhance single-cell research and facilitate drug discovery, a foundation model must exhibit improved generalizability across diverse real-world data sources and provide clear interpretations for novel biological insights.

Features

  • Advanced cell representation and Generalizability: CellVQ can be applied to a wide range of single-cell tasks, categorized into prediction and analysis tasks. In the realm of prediction tasks, which encompass cell clustering, annotation, property prediction, gene and drug perturbation prediction, as well as drug response prediction, CellVQ demonstrates significant advancements over other foundation model.
  • Effective Quantization: CellVQ effectively represents high-dimensional and multi-modal single-cell data using a single token, minimizing information loss.
  • Interprebility: The VQ and CellVQ-graph module provides quantized stastics that help interpret the significance of each gene or property in relation to the cell state. It greatly empowers the analysis tasks. By integrating CellVQ and CellVQ-Graph, the models can be used in four distinct tasks: cell state discovery, gene discovery, gene regulatory network (GRN) analysis, and multimodal analysis.

For more details on the performance and benchmarking, please refer to our paper.

Installation

To get started with CellVQ, follow these steps:

  1. Clone the repository:

    git clone https://github.com/A4Bio/CellVQ.git
    cd CellVQ
  2. Create and activate the conda environment:

    conda create -n CellVQ python=3.9.17
    conda activate CellVQ
    ./install.sh
  3. Download the pretrained Model:

    We provide a pretrained model for CellVQ. Download it here and place it in the pretrained_models directory. We also provide the test data in Download it here.

  4. Download the pretraining dataset: To download the pretraining dataset, users can refer to the link.

Quick Start

To quickly try out CellVQ using an example dataset, run the following command:

bash run_example.sh

This script runs the inference.py script with sample data provided in the examples folder.

We also provide an example tutorial in quick_start.ipynb. The instructions for reproducing our results on each downstream task can be found in the corresponding directory.

Usage

Command-line Arguments

The inference.py script supports several command-line arguments:

ArgumentDescriptionDefault
--data_pathPath to the dataset.None
--model_pathPath to the pretrained model checkpoint.pretrained_model/checkpoint.pt
--save_pathPath to save the output of CellVQ.example
--deviceDevice to run the model on (cpu or cuda).cuda
--verboseEnable verbose output for debugging.Disabled
--modeModel mode.m1

Running the Example

You can run the example directly from the command line:

python inference.py

Using Custom Data

To use CellVQ with your own data, you need to provide a scRNA-seq or scATAC-seq dataset. For example:

python inference.py --data_path /path/to/your/dataset --save_path /path/to/your/save/path --mode m1 --device cuda

References

For a complete description of the method, see:

TBD

Contact

Please submit any bug reports, feature requests, or general usage feedback as a github issue or discussion.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages