Skip to content

Commit e7e82a6

Browse files
committed
2 parents fcde277 + b9ca11c commit e7e82a6

4 files changed

Lines changed: 122 additions & 22 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- uses: actions/setup-python@v5
16+
with:
17+
python-version: "3.11"
18+
19+
- name: Install build dependencies
20+
run: pip install hatchling build twine
21+
22+
- name: Build
23+
run: python -m build
24+
25+
- name: Check metadata
26+
run: twine check dist/*
27+
28+
- name: Smoke test
29+
run: |
30+
pip install dist/*.whl --no-deps
31+
python -c "from cytovanni.version import __version__; print(__version__)"

.github/workflows/publish.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- uses: actions/setup-python@v5
15+
with:
16+
python-version: "3.11"
17+
18+
- name: Install build dependencies
19+
run: pip install hatchling build twine
20+
21+
- name: Build
22+
run: python -m build
23+
24+
- name: Check metadata
25+
run: twine check dist/*
26+
27+
- uses: actions/upload-artifact@v4
28+
with:
29+
name: dist
30+
path: dist/
31+
32+
publish:
33+
needs: build
34+
runs-on: ubuntu-latest
35+
environment: pypi
36+
permissions:
37+
id-token: write
38+
steps:
39+
- uses: actions/download-artifact@v4
40+
with:
41+
name: dist
42+
path: dist/
43+
44+
- uses: pypa/gh-action-pypi-publish@release/v1

container/container.def

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,12 @@ From: pytorch/pytorch:2.8.0-cuda12.9-cudnn9-devel
44
%post
55
pip install --no-cache-dir uv
66

7-
# install rapids
8-
uv pip install --system --pre --extra-index-url=https://pypi.nvidia.com --index-strategy unsafe-best-match \
9-
"cudf-cu12==25.08.*" "dask-cudf-cu12==25.08.*" "cuml-cu12==25.08.*" \
10-
"cugraph-cu12==25.08.*" "nx-cugraph-cu12==25.08.*" "raft-dask-cu12==25.08.*"
11-
127
uv pip install --system jupyter ipykernel
13-
uv pip install --system "jax[cuda12]"
14-
uv pip install --system scvi-tools numpy pandas muon flowkit flowutils readfcs matplotlib seaborn datashader scanpy igraph
15-
16-
# couldn't get fastplotlib to work
17-
#apt update
18-
#apt install -y libturbojpeg0-dev libegl1-mesa libgl1-mesa-dri libglx-mesa0 mesa-utils mesa-utils-extra
19-
#uv pip install --system "fastplotlib[notebook]" simplejpeg glfw
20-
21-
uv pip install --system pykeops geomloss "rapids-singlecell==0.13.2"
22-
23-
# packages for Arges
24-
uv pip install --system mahotas tifffile "cellpose==4.0.4"
25-
26-
# packages for documentation
27-
uv pip install --system mkdocs mknotebooks mkdocstrings[python] mkdocs-gen-files
8+
uv pip install --system numpy pandas flowkit flowutils readfcs matplotlib seaborn scipy scikit-learn anndata statsmodels Pillow
9+
uv pip install --system pykeops geomloss
2810

2911
# custom packages
30-
uv pip install --system torchgmm
31-
# datashader?
12+
uv pip install --system datashader colorcet
3213

3314
python -m ipykernel install --user --name=cytovanni-docker --display-name "Python (Cytovanni-docker)"
3415

pyproject.toml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
[build-system]
2+
requires = ["hatchling"]
3+
build-backend = "hatchling.build"
4+
5+
[project]
6+
name = "cytovanni"
7+
authors = [
8+
"Valentin Wüst <valentin.wuest@bioquant.uni-heidelberg.de>",
9+
"Simon Anders <simon.anders@bioquant.uni-heidelberg.de>",
10+
]
11+
maintainers = ["Valentin Wüst <valentin.wuest@bioquant.uni-heidelberg.de>"]
12+
dynamic = ["version"]
13+
description = "Computational Standardization of Flow Cytometry Data"
14+
readme = "README.md"
15+
license = { file = "LICENSE" }
16+
requires-python = ">=3.10"
17+
dependencies = [
18+
"numpy",
19+
"pandas",
20+
"torch",
21+
"anndata",
22+
"flowkit",
23+
"flowio",
24+
"flowutils",
25+
"matplotlib",
26+
"seaborn",
27+
"scipy",
28+
"scikit-learn",
29+
"statsmodels",
30+
"tqdm",
31+
"Pillow",
32+
"python-dateutil",
33+
]
34+
35+
[project.optional-dependencies]
36+
geom = ["geomloss", "pykeops"]
37+
plot = ["datashader", "colorcet"]
38+
all = ["cytovanni[geom,plot]"]
39+
40+
[project.urls]
41+
Repository = "https://github.com/anders-biostat/Cytovanni"
42+
43+
[tool.hatch.version]
44+
path = "src/cytovanni/version.py"

0 commit comments

Comments
 (0)