Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build and Test

on:
push:

permissions:
contents: read # to fetch code (actions/checkout)

jobs:
build_wheels:
name: ${{ matrix.os }} Wheels
runs-on: ${{ matrix.os }}
strategy:
# Ensure that a wheel builder finishes even if another fails
fail-fast: false
matrix:
os: [windows-latest, macos-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- name: Checkout ${{ github.repository }}
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Dependencies
run: pip install .

- name: Test
run: |
python -c "\
import anndata
from sketchKH import *
adata = anndata.read_h5ad('data/nk_cell_preprocessed.h5ad')
kh_indices, adata_subsample = sketch(adata, sample_set_key = 'FCS_File', gamma = 1, num_subsamples = 500, frequency_seed = 0, n_jobs = 4)
"
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ Distribution-Informed Sketching with Kernel Herding
## Overview
We provide a set of functions for distribution-aware sketching of multiple profiled single-cell samples via Kernel Herding. Our sketches select a small, representative set of cells from each profiled sample so that all major immune cell-types and their relative frequencies are well-represented.
* Please see our paper for more information (ACM-BCB 2022) : https://arxiv.org/abs/2207.00584
* Updated : December 27, 2024
* Updated : March 17, 2026

![Sketching via KH Overview](https://github.com/CompCy-lab/SketchKH/blob/main/sketch_overview.png?raw=True)

## Installation
Dependencies
* Python >= 3.6 < 3.10, anndata >= 0.7.6, numpy >= 1.22.4, scipy >= 1.7.1, numba, joblib, tqdm_joblib
* Python >= 3.6, anndata >= 0.7.6, numpy >= 1.22.4, scipy >= 1.7.1, numba, joblib, tqdm_joblib

You can install the package with `pip` by,
```
Expand Down
48 changes: 48 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "sketchKH"
version = "0.1.3"
description = "Distribution-based sketching of single-cell samples"
readme = "README.md"
requires-python = ">=3.6"
authors = [
{ name = "CompCy Lab", email = "compcylab@gmail.com" }
]
dependencies = [
"anndata>=0.7.6",
"numpy>=1.22.4",
"scipy>=1.7.1",
"numba",
"tqdm",
"joblib",
"tqdm_joblib",
]
keywords = [
"cytometry",
"single-cell bioinformatics",
"clinical prediction",
"compression",
"computational biology",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Operating System :: OS Independent",
]

[project.urls]
Homepage = "https://github.com/CompCy-lab/SketchKH"

[tool.setuptools.packages.find]
include = ["sketchKH*"]
exclude = ["data*"]
46 changes: 0 additions & 46 deletions setup.py

This file was deleted.

Loading