Skip to content

Commit

Permalink
Merge branch 'main' into fix-docker-ci
Browse files Browse the repository at this point in the history
  • Loading branch information
Intron7 authored Sep 25, 2024
2 parents c2db4e7 + b0a2efe commit 822a405
Show file tree
Hide file tree
Showing 60 changed files with 2,172 additions and 366 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
strategy:
matrix:
RAPIDS_VER:
- 24.04
- 24.08
name: Build Docker images
runs-on: ubuntu-latest
permissions:
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
#cache-from: type=registry,ref=ghcr.io/${{ github.repository }}
build-contexts: |
rapids-singlecell-deps=docker-image://${{ steps.meta-base.outputs.tags }}
rapids-singlecell-deps=docker-image://${{ fromJSON(steps.meta-base.outputs.json).tags[0] }}
- name: Generate artifact attestation for main image
if: github.event_name == 'release'
Expand Down
21 changes: 12 additions & 9 deletions .github/workflows/test-gpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
name: GPU Tests
needs: check
runs-on: "cirun-aws-gpu--${{ github.run_id }}"
timeout-minutes: 30

defaults:
run:
shell: bash -el {0}
Expand All @@ -37,20 +39,21 @@ jobs:
- name: Nvidia SMI sanity check
run: nvidia-smi

- name: Install Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- uses: mamba-org/setup-micromamba@v1
- name: Install UV
uses: hynek/setup-cached-uv@v2
with:
micromamba-version: "1.5.6-0"
environment-file: ci/rsc_test_env.yml
post-cleanup: 'all'
cache-dependency-path: pyproject.toml

- name: Install rapids-singlecell
run: uv pip install -e .[test,rapids12] --extra-index-url=https://pypi.nvidia.com
run: uv pip install --system -e .[test,rapids12] --extra-index-url=https://pypi.nvidia.com

- name: Mamba list
run: |
micromamba list
pip list
- name: Pip list
run: pip list

- name: Run test
run: pytest
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.4
rev: v0.6.7
hooks:
- id: ruff
types_or: [python, pyi, jupyter]
Expand All @@ -26,7 +26,7 @@ repos:
args: [--branch=main]
- id: detect-private-key
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
rev: v2.3.0
hooks:
- id: codespell
additional_dependencies:
Expand Down
23 changes: 1 addition & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,9 @@ Rapids-singlecell offers enhanced single-cell data analysis as a near drop-in re

Our commitment with rapids-singlecell is to deliver a powerful, user-centric tool that significantly enhances single-cell data analysis capabilities in bioinformatics.

## Installation
### Conda
The easiest way to install *rapids-singlecell* is to use one of the *yaml* file provided in the [conda](https://github.com/scverse/rapids_singlecell/tree/main/conda) folder. These *yaml* files install everything needed to run the example notbooks and get you started.
```
conda env create -f conda/rsc_rapids_24.02.yml
# or
mamba env create -f conda/rsc_rapids_24.04.yml
```
### PyPI
```
pip install rapids-singlecell
```
The default installer doesn't cover RAPIDS nor cupy. Information on how to install RAPIDS & cupy can be found [here](https://rapids.ai/start.html).

If you want to use RAPIDS PyPI packages, the whole library with all dependencies can be install with:
````
pip install 'rapids-singlecell[rapids11]' --extra-index-url=https://pypi.nvidia.com #CUDA11.X
pip install 'rapids-singlecell[rapids12]' --extra-index-url=https://pypi.nvidia.com #CUDA12
````
It is important to ensure that the CUDA environment is set up correctly so that RAPIDS and Cupy can locate the necessary libraries.

## Documentation

Please have a look through the [documentation](https://rapids-singlecell.readthedocs.io/en/latest/)
For more information please have a look through the [documentation](https://rapids-singlecell.readthedocs.io/en/latest/)


## Citation
Expand Down
6 changes: 0 additions & 6 deletions ci/rsc_test_env.yml

This file was deleted.

15 changes: 0 additions & 15 deletions ci/rsc_test_env_backup.yml

This file was deleted.

2 changes: 1 addition & 1 deletion conda/rsc_rapids_24.04.yml → conda/rsc_rapids_24.06.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ channels:
- conda-forge
- bioconda
dependencies:
- rapids=24.04
- rapids=24.06
- python=3.11
- cuda-version=11.8
- cudnn
Expand Down
6 changes: 3 additions & 3 deletions conda/rsc_rapids_24.02.yml → conda/rsc_rapids_24.08.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ channels:
- conda-forge
- bioconda
dependencies:
- rapids=24.02
- python=3.10
- cuda-version=11.8
- rapids=24.08
- python=3.11
- cuda-version=12.5
- cudnn
- cutensor
- cusparselt
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.deps
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ARG CUDA_VER=11.8.0
ARG CUDA_VER=12.5.0
ARG LINUX_VER=ubuntu22.04

FROM nvidia/cuda:${CUDA_VER}-base-${LINUX_VER}
Expand Down
2 changes: 1 addition & 1 deletion docker/docker-push.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -euxo pipefail

docker_account=scverse
rapids_version=24.04
rapids_version=24.08
grep -v -- '- rapids-singlecell' conda/rsc_rapids_${rapids_version}.yml > rsc_rapids.yml
docker build -t rapids-singlecell-deps:latest -f docker/Dockerfile.deps .
rm rsc_rapids.yml
Expand Down
4 changes: 2 additions & 2 deletions docs/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
## Conda
The easiest way to install *rapids-singlecell* is to use one of the *yaml* file provided in the [conda](https://github.com/scverse/rapids_singlecell/tree/main/conda) folder. These *yaml* files install everything needed to run the example notebooks and get you started.
```
conda env create -f conda/rsc_rapids_24.02.yml
conda env create -f conda/rsc_rapids_24.06.yml #default CUDA-11.8
# or
mamba env create -f conda/rsc_rapids_24.04.yml
mamba env create -f conda/rsc_rapids_24.08.yml #default CUDA-12.5
```
## PyPI
As of version 0.4.0 *rapids-singlecell* is now on PyPI.
Expand Down
2 changes: 2 additions & 0 deletions docs/api/decoupler_gpu.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,7 @@
:toctree: generated
dcg.run_mlm
dcg.run_ulm
dcg.run_wsum
dcg.run_aucell
```
2 changes: 2 additions & 0 deletions docs/api/get.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ These functions offer convineant ways to move arrays and matrices from and to th
get.aggregate
get.anndata_to_GPU
get.anndata_to_CPU
get.X_to_GPU
get.X_to_CPU
```
10 changes: 10 additions & 0 deletions docs/api/scanpy_gpu.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,16 @@ Any transformation of the data matrix that is not a tool. Other than `tools`, pr
tl.leiden
```

### Gene scores, Cell cycle

```{eval-rst}
.. autosummary::
:toctree: generated/
tl.score_genes
tl.score_genes_cell_cycle
```

### Marker genes

```{eval-rst}
Expand Down
6 changes: 5 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"html_image",
"html_admonition",
]
myst_url_schemes = ("http", "https", "mailto")
myst_url_schemes = ("http", "https", "mailto", "ftp")
nb_output_stderr = "remove"
nb_execution_mode = "off"
nb_merge_streams = True
Expand Down Expand Up @@ -135,6 +135,10 @@
html_css_files = ["_static/css/override.css"]
html_title = "rapids-singlecell"

qualname_overrides = {
"numpy.bool_": "numpy.bool", # Since numpy 2, numpy.bool is the canonical dtype
}

nitpick_ignore = [
("py:class", "scipy.sparse.base.spmatrix"),
("py:meth", "pandas.DataFrame.iloc"),
Expand Down
1 change: 0 additions & 1 deletion docs/release-notes/0.10.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
* updates `gr.spatial_autocorr` to use a preallocation during the iterations {pr}`188` {smaller}`S Dicks`
* `_get_mean_var` for dense input now uses `cupy.ReductionKernel` to improve precision and speed {pr}`190` {smaller}`S Dicks`

#190
```{rubric} Bug fixes
```
* fixes a bug where the `pp.scale` would have issues with `int64` indexing {pr}`187` {smaller}`S Dicks`
Expand Down
15 changes: 15 additions & 0 deletions docs/release-notes/0.10.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### 0.10.4 {small}`2024-05-14`

```{rubric} Features
```

```{rubric} Performance
```

```{rubric} Bug fixes
```
* fixes the creation of the docker container on release {pr}`193` {smaller}`T Korten (HZDR/Helmholtz AI)`


```{rubric} Misc
```
11 changes: 11 additions & 0 deletions docs/release-notes/0.10.5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
### 0.10.5 {small}`2024-06-11`

```{rubric} Bug fixes
```
* fixes an issue with `tl.umap` and `init_pos` {pr}`197` {smaller}`S Dicks`
* fixes an issue with `pp.highly_variable_genes` for `flavor = 'seurat_v3'` with sparse `csc` {pr}`199` {smaller}`S Dicks`
* adds `AnyRandom` to `_utils` {pr}`200` {smaller}`S Dicks`

```{rubric} Misc
```
* updates installer for `rapids-24.06` {pr}`205` {smaller}`S Dicks`
9 changes: 9 additions & 0 deletions docs/release-notes/0.10.6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### 0.10.6 {small}`2024-06-25`

```{rubric} Bug fixes
```
* removes `.A` to be compatible with scipy 1.14.0 {pr}`214` {smaller}`S Dicks`

```{rubric} Misc
```
* updates tests to work without `scanpy.testing` {pr}`215` {smaller}`S Dicks`
21 changes: 21 additions & 0 deletions docs/release-notes/0.10.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
### 0.10.7 {small}`2024-07-23`

```{rubric} Features
```
* adds `decoupler_gpu.run_ulm` {pr}`224` {smaller}`S Dicks`

```{rubric} Performance
```
* adds `_sparse2dense` for better performance {pr}`220` {smaller}`S Dicks`
* refactors `regress_out` {pr}`222` {smaller}`S Dicks`
* refactors `decoupler_gpu` dataloading {pr}`224` {smaller}`S Dicks`
* updates `regress_out` for better memory use {pr}`227` {smaller}`S Dicks`
* avoid `.toarray()` in sparse PCA transform {pr}`228` {smaller}`S Dicks`


```{rubric} Bug fixes
```
* Removes support for older rapids with `tl.louvain` that cause issues {pr}`226` {smaller}`S Dicks`

```{rubric} Misc
```
21 changes: 21 additions & 0 deletions docs/release-notes/0.10.8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
### 0.10.8 {small}`2024-08-09`

```{rubric} Features
```
* adds `tl.score_genes` {pr}`235` {smaller}`S Dicks`
* adds `tl.score_genes_cell_cycle` {pr}`235` {smaller}`S Dicks`
* adds `get.X_to_GPU` and `get.X_to_CPU` {pr}`235` {smaller}`S Dicks`
* adds `dcg.run_aucell` {pr}`236` {smaller}`S Dicks`


```{rubric} Performance
```

```{rubric} Bug fixes
```

```{rubric} Misc
```
* updates tests to run on rapids-24.08 {pr}`241` {smaller}`S Dicks`
* updates docker to on rapids-24.08 {pr}`241` {smaller}`S Dicks`
* updates docker to run with cuda-12 {pr}`241` {smaller}`S Dicks`
17 changes: 17 additions & 0 deletions docs/release-notes/0.10.9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
### 0.10.8 {small}`the future`

```{rubric} Features
```
* add `key_added` parameter to `tl.pca`, `tl.tsne`, and `tl.umap` that allows to control where to put the output within the AnnData object {pr}`244` {smaller}`P Angerer`

```{rubric} Performance
```

```{rubric} Bug fixes
```

```{rubric} Misc
```
* refactor docstrings to work better in RTD {pr}`242` {smaller}`S Dicks`
* remove Conda from CI {pr}`247` {smaller}`S Dicks`
* add `cupy` as rapids dependency {pr}`254` {smaller}`S Dicks`
12 changes: 12 additions & 0 deletions docs/release-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@
# Release notes

## Version 0.10.0
```{include} /release-notes/0.10.9.md
```
```{include} /release-notes/0.10.8.md
```
```{include} /release-notes/0.10.7.md
```
```{include} /release-notes/0.10.6.md
```
```{include} /release-notes/0.10.5.md
```
```{include} /release-notes/0.10.4.md
```
```{include} /release-notes/0.10.3.md
```
```{include} /release-notes/0.10.2.md
Expand Down
2 changes: 1 addition & 1 deletion notebooks
Submodule notebooks updated 0 files
Loading

0 comments on commit 822a405

Please sign in to comment.