Skip to main content

loveslide

A Python interface to the SLIDE framework for latent factor discovery and statistical inference.


📘 Overview

loveslide wraps key components of the original SLIDE R package into a user-friendly Python interface, making it easier to incorporate into machine learning pipelines and bioinformatics workflows.

SLIDE (Statistical Latent Inference for Discovery and Explanation) combines:

  • LOVE: A latent factor discovery algorithm using model-based overlapping clustering.
  • Knockoffs: For statistically rigorous identification of significant standalone and interacting latent factors.

This Python implementation retains R underpinnings via rpy2 and is structured to be modular, extensible, and accessible from both the command line and within Python scripts or notebooks.


🔗 Related Repositories


🚀 Installation

Set up a compatible Python environment:

module load anaconda3/2022.10
conda create -n loveslide_env python=3.9 r-base
conda activate loveslide_env
pip install loveslide

If needed, clone the environment used during development:

# On the cluster:
source activate /ix3/djishnu/alw399/envs/rhino

⚡ Quick Start

📿 Command Line

python slide.py \
  --x_path /path/to/your/features.csv \
  --y_path /path/to/your/labels.csv \
  --out_path /path/to/output/

Use full paths if not running from the src/loveslide directory.


🧪 In a Notebook

import loveslide

from loveslide import OptimizeSLIDE

input_params = {
    'x_path': '/path/to/features.csv',
    'y_path': '/path/to/labels.csv',
    'fdr': 0.1,
    'thresh_fdr': 0.1,
    'spec': 0.2,
    'y_factor': True,
    'niter': 500,
    'SLIDE_top_feats': 20,
    'rep_CV': 50,
    'pure_homo': True,
    'delta': [0.01],
    'lambda': [0.5, 0.1],
    'out_path': '/path/to/output/'
}

slider = OptimizeSLIDE(input_params)
slider.run_pipeline(verbose=True, n_workers=1)

🔬 Pipeline Overview

The run_pipeline() method follows three key stages:

🧩 Stage 1: Latent Factor Discovery

  • LOVE Algorithm: Identifies overlapping latent factors in the data.
  • Output: Latent factor matrix (z_matrix) and factor loadings.

📊 Stage 2: Statistical Inference with Knockoffs

  • Identifies significant standalone and interacting latent factors.
  • Controls False Discovery Rate (FDR) to maintain statistical rigor.

📈 Stage 3: Visualization

  • Diagnostic plots
  • Top genes/features for each latent factor (loadings > |0.05|)

⚙️ Parameters

Name Type Description Default/Example
x_path str Path to feature matrix CSV Required
y_path str Path to response/labels CSV Required
fdr float Knockoff FDR threshold 0.1
thresh_fdr float FDR threshold in LOVE 0.1
spec float Minimum reproducibility for a factor 0.2
y_factor bool Treat y as categorical True
niter int Iterations for LOVE 500
SLIDE_top_feats int Number of top features to plot 20
rep_CV int Repeats for cross-validation 50
pure_homo bool Use pure variables with loadings = 1 True
delta list Regularization parameters [0.01]
lambda list Penalty parameters [0.5, 0.1]
out_path str Output directory Required

🏗️ Project Structure

SLIDE_py/
├── src/
│   ├── loveslide/             # Main Python & R wrappers
│   │   ├── slide.py           # Main entry point
│   │   ├── love.py
│   │   ├── knockoffs.py
│   │   ├── ...
│   │   ├── LOVE-master/       # (Legacy) Original LOVE code
│   │   └── LOVE-SLIDE/        # Customized LOVE implementation for SLIDE
├── dist/
├── example/
├── ...

🧠 Design Notes

  • Core statistical inference is done using R scripts via rpy2.
  • Python acts as an orchestration layer to allow integration into ML workflows.
  • Most plotting is done in R (e.g., pheatmap, ggplot2).

📌 Known Limitations and TODOs

  • YAML → dictionary conversion for easier parameter management
  • Extend y_factor handling to non-binary variables
  • Parallelization of knockoff inference (e.g., in select_short_freq)
  • Correlation networks visualization using networkx

📢 Citation & Contact

If you use loveslide in your work, please cite the original R implementation and this repository. For bugs or feature requests, please open an issue on GitHub.

Metadata

Release files for loveslide 0.0.7

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

Source distribution (sdist)

Source distribution for loveslide 0.0.7
File Size Uploaded Provenance Actions
loveslide-0.0.7.tar.gz 51.5 kB With provenance Details for loveslide-0.0.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for loveslide 0.0.7
File Interpreter ABI Platform Actions
loveslide-0.0.7-py3-none-any.whl Python 3 none any Details for loveslide-0.0.7-py3-none-any.whl

Total release size: 117.9 kB

Release files / loveslide-0.0.7.tar.gz

Download URL loveslide-0.0.7.tar.gz
Size 51.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d8ea80583acf31a43347963a67e100e651a61443b2e731146e890051a22fc709
BLAKE2b-256 checksum
How to use checksums
059d0cfd58cb504c2e6fe99585b1cf69373c4d8bc6b801c62a4d5cca675fda46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Dec 10, 2025.

Transparency log

Release files / loveslide-0.0.7-py3-none-any.whl

Download URL loveslide-0.0.7-py3-none-any.whl
Size 66.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e07a84fa1318fc44e86a2068a423712237d3a47cc375cfe5da188692383c8bea
BLAKE2b-256 checksum
How to use checksums
487cd2e9d4407c1f964a6b1e79f6bcb2b1f570f7544357ffa946c81f6feed6c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Dec 10, 2025.

Transparency log

Security for loveslide 0.0.7

Provenance

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

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for loveslide-0.0.7.tar.gz

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Dec 10, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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