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
3 changes: 2 additions & 1 deletion .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
^CODE_OF_CONDUCT\.md$
^CONTRIBUTING\.md$
^LICENSE\.md$
^PUBLISHING\.md$
^publishing\.md$
^README\.md$
^cran-comments\.md$
^cellucid-logo\.svg$
1 change: 0 additions & 1 deletion .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ name: R-CMD-check
# If this workflow is green, you are generally in good shape for:
# - GitHub releases
# - CRAN submission (see publishing.md for the final `--as-cran` steps)
# - Bioconductor submission (also run the BiocCheck workflow)

on:
push:
Expand Down
87 changes: 0 additions & 87 deletions .github/workflows/bioccheck.yaml

This file was deleted.

13 changes: 11 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
# This workflow is designed for beginners:
# - Create a GitHub Release (or run manually)
# - Download the `.tar.gz` artifact from the workflow run
# - Upload that exact tarball to CRAN, or attach it in your Bioconductor submission
# - Upload that exact tarball to CRAN
#
# This does *not* auto-submit to CRAN/Bioconductor (those still require a human),
# This does *not* auto-submit to CRAN (that still requires a human),
# but it automates the parts that are easy to get wrong: reproducible building
# and pre-flight checks.

Expand Down Expand Up @@ -43,6 +43,15 @@ jobs:

- uses: r-lib/actions/setup-tinytex@v2

- name: Ensure pdflatex is available
run: |
if ! command -v pdflatex >/dev/null 2>&1; then
sudo apt-get update
sudo apt-get install -y texlive-latex-base texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
fi
pdflatex --version
shell: bash

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck, local::.
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cff-version: 1.2.0
message: "If you use this software, please cite it."
type: software
title: "cellucid (R): Export Single-Cell Data to the Cellucid Viewer Format"
version: 0.99.0 # CELLUCID_VERSION
version: 0.9.0 # CELLUCID_VERSION
authors:
- family-names: Inecik
given-names: Kemal
Expand Down
24 changes: 7 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Cellucid is split by responsibility:
|---|---|---|
| `cellucid` | Web app (UI + state + WebGL rendering) | are fixing UI bugs, rendering/performance, figure export, sessions, or community annotation frontend |
| `cellucid-python` | Python package + CLI (`prepare`, `serve`, `show_anndata`, hooks) + Sphinx docs | are fixing Python/CLI bugs, data prep/export, server endpoints, Jupyter hooks, or docs on ReadTheDocs |
| `cellucid-r` (this repo) | R package for exporting data to the Cellucid viewer format | are changing the R exporter (`cellucid_prepare()`), adding R-side tests/docs, or preparing for Bioconductor |
| `cellucid-r` (this repo) | R package for exporting data to the Cellucid viewer format | are changing the R exporter (`cellucid_prepare()`), adding R-side tests/docs, or preparing for CRAN |
| `cellucid-annotation` | GitHub repo template for community annotation | are changing the repo schema/validation/workflows |

If you’re not sure where a bug belongs, open an issue in the repo you’re currently using and include:
Expand Down Expand Up @@ -48,7 +48,7 @@ If the bug is “the viewer looks wrong”, also include:

Docs live in:
- `cellucid-r/man/` (generated `.Rd` files)
- `cellucid-r/vignettes/` (BiocStyle vignette)
- `cellucid-r/vignettes/` (package vignette)
- `cellucid-r/README.md`

If you edit `.Rd` files directly, be aware they are usually generated from roxygen comments in `cellucid-r/R/`.
Expand All @@ -60,7 +60,7 @@ Fast workflow:
1) Set up your R dev environment (see “Development setup”)
2) Make a small, focused change
3) Add/adjust tests (`testthat`)
4) Run `devtools::check()` (and `BiocCheck::BiocCheck()` if relevant)
4) Run `devtools::check()`
5) Submit a PR with a clear “what/why/how to verify”

---
Expand Down Expand Up @@ -91,19 +91,15 @@ In R:
install.packages(c("devtools", "roxygen2", "testthat"))
```

For vignette builds and Bioconductor-style docs:
For vignette builds:

```r
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install(c("BiocStyle", "knitr", "rmarkdown"))
install.packages(c("knitr", "rmarkdown"))
```

Optional (useful during release prep):

```r
BiocManager::install("BiocCheck")
install.packages(c("pkgdown", "covr"))
```

Expand Down Expand Up @@ -135,12 +131,6 @@ Run a full check (recommended before PRs):
devtools::check()
```

For Bioconductor submission readiness:

```r
BiocCheck::BiocCheck(".")
```

Guidelines:
- Add tests when behavior changes (especially edge cases like missing values, mismatched dimensions, sparse matrices).
- Prefer small synthetic inputs; avoid committing real datasets.
Expand Down Expand Up @@ -183,7 +173,7 @@ This package is intentionally:

- **minimal-dependency** (only `jsonlite` is a hard dependency)
- **format-first** (exports must match what the web app expects)
- **Bioconductor-friendly** (checks, vignette style, and package structure matter)
- **CRAN-ready** (checks, documentation, and package structure matter)

If you propose adding a new dependency:
- prefer `Suggests` over `Imports` unless strictly required
Expand Down Expand Up @@ -240,7 +230,7 @@ Fix:
### `R CMD check` fails on vignettes

Common causes:
- missing suggested packages (`BiocStyle`, `knitr`, `rmarkdown`)
- missing suggested packages (`knitr`, `rmarkdown`)
- missing Pandoc

Fix:
Expand Down
4 changes: 1 addition & 3 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: cellucid
Type: Package
Title: Export Single-Cell Data to the Cellucid Viewer Format
Version: 0.99.0
Version: 0.9.0
X-Cellucid-Version-Marker: CELLUCID_VERSION
Authors@R: c(
person(
Expand All @@ -21,13 +21,11 @@ Depends:
Imports:
jsonlite
Suggests:
BiocStyle,
knitr,
Matrix,
rmarkdown,
testthat (>= 3.1.0)
VignetteBuilder: knitr
biocViews: SingleCell, Visualization, DataRepresentation
Config/testthat/edition: 3
URL: https://github.com/theislab/cellucid-r,
https://theislab.github.io/cellucid-r/
Expand Down
4 changes: 2 additions & 2 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# cellucid 0.99.0 <!-- CELLUCID_VERSION -->
# cellucid 0.9.0 <!-- CELLUCID_VERSION -->

- Initial Bioconductor submission version.
- Initial CRAN submission version.
- Adds `cellucid_prepare()` / `prepare()` to export embeddings, metadata, gene expression, and connectivity to the Cellucid viewer format.
- Rejects duplicate gene IDs and filename-sanitization collisions (obs keys / gene IDs) to prevent silent overwrites in exports.
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,11 @@ cellucid_prepare(

## Links

- Web app: https://cellucid.com
- R package docs (installation + recipes): https://cellucid.readthedocs.io/en/latest/user_guide/r_package/index.html
- Seurat recipe: https://cellucid.readthedocs.io/en/latest/user_guide/r_package/e_integrations_recipes/01_seurat_recipe.html
- SingleCellExperiment recipe: https://cellucid.readthedocs.io/en/latest/user_guide/r_package/e_integrations_recipes/02_singlecellexperiment_recipe.html
- Source: https://github.com/theislab/cellucid-r
- Viewer: https://github.com/theislab/cellucid
- Citation: `citation("cellucid")` (or `CITATION.cff`)
- [Web app](https://cellucid.com)
- [Documentation](https://cellucid.readthedocs.io/en/latest/user_guide/r_package/index.html)
- Recipes: [Seurat](https://cellucid.readthedocs.io/en/latest/user_guide/r_package/e_integrations_recipes/01_seurat_recipe.html) · [SingleCellExperiment](https://cellucid.readthedocs.io/en/latest/user_guide/r_package/e_integrations_recipes/02_singlecellexperiment_recipe.html)
- Source: [cellucid-r](https://github.com/theislab/cellucid-r) · [cellucid](https://github.com/theislab/cellucid)
- Citation: `citation("cellucid")`

## License

Expand Down
11 changes: 11 additions & 0 deletions cran-comments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## R CMD check results

0 errors | 0 warnings | 0 notes

## Test environments

- GitHub Actions: ubuntu-latest, windows-latest, macos-latest (R release, R devel, R oldrel-1)

## Notes

This is a new submission.
20 changes: 19 additions & 1 deletion inst/CITATION
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
citHeader("To cite cellucid in publications use:")

package_version <- utils::packageDescription("cellucid")$Version
package_version <- tryCatch(
utils::packageDescription("cellucid")$Version,
error = function(e) NA_character_
)

if (is.na(package_version) || !nzchar(package_version)) {
desc_paths <- c("DESCRIPTION", file.path("..", "DESCRIPTION"))
desc_path <- desc_paths[file.exists(desc_paths)][1]
if (!is.na(desc_path) && nzchar(desc_path)) {
package_version <- tryCatch(
read.dcf(desc_path, fields = "Version")[1, 1],
error = function(e) NA_character_
)
}
}

if (is.na(package_version) || !nzchar(package_version)) {
package_version <- "unknown"
}

bibentry(
bibtype = "Manual",
Expand Down
2 changes: 1 addition & 1 deletion man/cellucid_prepare.Rd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% Generated manually for Bioconductor submission.
% Generated manually for CRAN submission.
\name{cellucid_prepare}
\alias{cellucid_prepare}
\alias{prepare}
Expand Down
Loading