Skip to main content

A Combinatorial Approach for Label-free Marker Gene Selection

Project description

GeneCover

PyPI-Server Project generated with PyScaffold

A combinatorial approach for label-free marker gene selection from scRNA-seq and spatial transcriptomics data, using gene-gene correlation and set cover.

This repository is a Python packaging + PyPI-friendly version of the original GeneCover pipeline, keeping the algorithm behavior as close as possible to the original implementation while supporting optional solver backends (uses lazy loading).


Manuscript

Wang, A., Hicks, S., Geman, D., & Younes, L. (2025, April).
GeneCover: A Combinatorial Approach for Label-free Marker Gene Selection.
In International Conference on Research in Computational Molecular Biology (pp. 354–357). Cham: Springer Nature Switzerland.
DOI: 10.1101/2024.10.30.621151

@inproceedings{wang2025genecover,
  title={GeneCover: A Combinatorial Approach for Label-free Marker Gene Selection},
  author={Wang, An and Hicks, Stephanie and Geman, Donald and Younes, Laurent},
  booktitle={International Conference on Research in Computational Molecular Biology},
  pages={354--357},
  year={2025},
  organization={Springer}
}

Original resources:


This package exists to provide a lightweight, pip-installable interface to GeneCover without requiring users to clone the original repository or configure solvers unless needed.

Features

  • Compute gene–gene correlation matrices from scRNA-seq / spatial transcriptomics data:
    • Spearman correlation (default)
    • Pearson correlation
  • Select marker genes via minimal-weight set cover, with multiple backends:
    • Gurobi (integer programming; requires license)
    • SCIP via PySCIPOpt (open-source solver)
    • Greedy heuristic (no solver dependencies; NumPy-only)
  • Perform iterative marker selection (Iterative_GeneCover) to build gene panels in multiple rounds
  • Behavior closely aligned with the original one-file GeneCover implementation

Compatibility with the original GeneCover implementation

  • The core GeneCover algorithm, thresholds, and optimization logic are preserved.
  • gene_gene_correlation, GeneCover, and Iterative_GeneCover follow the same behavior and defaults as the original implementation.
  • Differences from the original repository are limited to packaging and dependency handling (lazy imports, optional solver extras).
  • Results should be directly comparable to those obtained using the original GeneCover code.

Installation

Install from PyPI

pip install genecover

This installs the core package and supports the Greedy backend (no external solver required).

Optional solver backends

To use integer-programming solvers, install extras:

Gurobi backend (requires a valid Gurobi license)

pip install "genecover[gurobi]"

SCIP backend (via PySCIPOpt)

pip install "genecover[scip]"

Install all optional backends

pip install "genecover[all]"

Usage and QuickStart

For full tutorials and usage examples, see the original GeneCover documentation. The function names should be the same, for instance:

from genecover import gene_gene_correlation, GeneCover, Iterative_GeneCover

Project Status

This package focuses on: a clean Python API (genecover), reproducibility with the original one-file pipeline, and solver backends as optional dependencies. The interface may evolve as packaging/testing/docs are improved.


Contributing

Bug reports, feature requests, and GitHub issues or pull requests are welcome.

Please submit issues and pull requests via the GitHub repository: https://github.com/danielchen05/GeneCover


Note

This project has been set up using PyScaffold 4.6. For details and usage information on PyScaffold see https://pyscaffold.org/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genecover-0.1.0.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

genecover-0.1.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file genecover-0.1.0.tar.gz.

File metadata

  • Download URL: genecover-0.1.0.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.14

File hashes

Hashes for genecover-0.1.0.tar.gz
Algorithm Hash digest
SHA256 682606da7f5caf0482197cf8106203e9ef2dd7dfca8b23cc74c9fb01a3c12eae
MD5 93ff261d12a46548c405178dbfea8713
BLAKE2b-256 8aff6384c52b5cb53309965d01c7f0ce5f0d21834c12d13bc7d4ce480b27f2d5

See more details on using hashes here.

File details

Details for the file genecover-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: genecover-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.14

File hashes

Hashes for genecover-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4274382a071201ee9ea8002055ffe679653c79f8e00eeed99960d25cd1710438
MD5 dc8d60aade5fe7fd9658750a7deb062e
BLAKE2b-256 0da07f2b5a743c5a211f9b15a369bba0ee7500bd7ec29d208c06a35bf3f1beb6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page