Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
1ed9279
Add R-CMD-check and Bioconductor-devel CI; bump to 0.99.0
BacZemin Aug 9, 2026
5de1312
Add runnable examples to every exported object; API tidy-up
BacZemin Aug 9, 2026
a185c97
Add unit tests for classify, posterior, methods, classes, utils and e…
BacZemin Aug 9, 2026
38a0104
Generate README from README.Rmd; add CITATION and community files
BacZemin Aug 9, 2026
10c1853
Restore GenomeInfoDb dependency; report seqlevels on no-overlap
BacZemin Aug 9, 2026
6a8fcc2
Fix CITATION for uninstalled-package validation; gate bioc-check
BacZemin Aug 9, 2026
0086011
Drop inst/CITATION until there is a DOI; add Date field
BacZemin Aug 9, 2026
6df980b
Skip the brms test on CI: runners install brms but not Eigen
BacZemin Aug 9, 2026
e7b8c3c
Rename posterior probability columns p_* -> prob_*
BacZemin Aug 9, 2026
fe7ae10
fix(mapping): count distinct region_ids, not ranges
BacZemin Aug 9, 2026
2642880
feat: four-level classification, sesame-native input, refit_bread()
BacZemin Aug 9, 2026
df561c4
docs(NEWS): breaking changes and new features for 0.99.0
BacZemin Aug 9, 2026
5f60905
docs: README, vignettes, pkgdown and DESCRIPTION for the four-level API
BacZemin Aug 9, 2026
4c3c3c0
docs(README): show that the packaged example certifies zero regions u…
BacZemin Aug 9, 2026
e3b5fe5
docs: correct the `n` column, quantify the beta linearisation, rebuil…
BacZemin Aug 10, 2026
154e56f
fix: honest degrees of freedom -- guard n <= p, add df_mode = "residual"
BacZemin Aug 10, 2026
99a66d4
docs: add hex sticker logo to README, pkgdown and vignettes
BacZemin Aug 11, 2026
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
5 changes: 5 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@
^_pkgdown\.yml$
^pkgdown$
^tools$
^data-raw$
^build_preview$
^CLAUDE\.md$
^README\.Rmd$
^\.git$
24 changes: 24 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Code of Conduct

BREAD is a Bioconductor package and adopts the
**[Bioconductor Code of Conduct](https://bioconductor.org/about/code-of-conduct/)**
in full.

In short: the Bioconductor community is dedicated to providing a welcoming,
harassment-free experience for everyone, regardless of gender identity and
expression, sexual orientation, disability, physical appearance, body size,
race, age, religion, or level of experience. We do not tolerate harassment of
community members in any form.

Please read the full text, including the list of expected and unacceptable
behaviours, at <https://bioconductor.org/about/code-of-conduct/>.

## Reporting

Report violations to the package maintainer (see `DESCRIPTION`), or — if the
report concerns the maintainer, or you would prefer to go outside the project —
to the Bioconductor Code of Conduct committee using the contact details and
reporting process described at
<https://bioconductor.org/about/code-of-conduct/>.

All reports are handled confidentially.
75 changes: 75 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Contributing to BREAD

Thanks for your interest in BREAD. This document covers how to report a
problem and how to work on the package.

## Reporting bugs and asking questions

- **Bugs and feature requests** → open a [GitHub issue](https://github.com/BacZemin/BREAD/issues).
Please include a [reprex](https://reprex.tidyverse.org/) and the output of
`sessionInfo()`.
- **Usage questions** → the
[Bioconductor support site](https://support.bioconductor.org) with the
`BREAD` tag reaches a wider audience than the issue tracker.

A good bug report for BREAD usually needs three things: the structure of your
`SummarizedExperiment` (`assayNames()`, `dim()`, `colData()`), the `features`
`GRanges` you passed, and the exact `fit_bread()` call.

## Development setup

```r
# clone, then from the package root:
install.packages(c("devtools", "roxygen2", "testthat"))
BiocManager::install(c("SummarizedExperiment", "GenomicRanges", "S4Vectors"))

devtools::load_all()
devtools::test()
```

Optional backends and vignette dependencies (`brms`, `knowYourCG`,
`sesameData`) live in `Suggests`; tests that need them skip cleanly when they
are absent.

## Conventions

- **Documentation is roxygen2.** Never edit `NAMESPACE` or anything in `man/`
by hand — run `devtools::document()` and commit the regenerated files.
- **Every exported object needs a runnable `@examples` block.** Bioconductor
requires this. The packaged example data
(`system.file("extdata", "vitc_ag06561.rds", package = "BREAD")`) is small
and fast enough that examples can fit a real model rather than fake one.
- **Tests are testthat 3rd edition.** Shared fixtures live in
`tests/testthat/helper-toy.R`.
- **No `library()` calls inside `R/`** — use `@importFrom`.
- **Style**: tidyverse style guide. Keep lines under 80 characters and
functions under 50 lines where practical; BiocCheck flags both.
- Prefer `vapply()` over `sapply()`, `seq_len()`/`seq_along()` over `1:n`, and
`TRUE`/`FALSE` over `T`/`F`.

## Before opening a pull request

```r
devtools::document()
devtools::test()
```

and a full check plus BiocCheck:

```sh
Rscript tools/run_check.R
Rscript tools/run_bioccheck.R
```

Both CI workflows (`R-CMD-check` and `bioc-check`) must be green. The
`bioc-check` workflow runs on the Bioconductor devel container and is the
authoritative gate.

Branch from `main` and use a descriptive branch name. Please do not bump the
version in a PR — that is handled at release time.

## Code of Conduct

This project follows the
[Bioconductor Code of Conduct](https://bioconductor.org/about/code-of-conduct/).
By participating you agree to abide by its terms.
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Bug report
description: Something in BREAD behaves incorrectly or errors unexpectedly
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for reporting. For **usage questions** ("how do I ...?"), please
use the [Bioconductor support site](https://support.bioconductor.org)
with the `BREAD` tag instead.

- type: textarea
id: description
attributes:
label: What happened?
description: What did you expect, and what happened instead?
validations:
required: true

- type: textarea
id: reprex
attributes:
label: Reproducible example
description: >
A self-contained [reprex](https://reprex.tidyverse.org/). The packaged
example data is a good basis if your own data cannot be shared.
value: |
```r
library(BREAD)
se <- readRDS(system.file("extdata", "vitc_ag06561.rds", package = "BREAD"))
reg <- readRDS(system.file("extdata", "vitc_regions.rds", package = "BREAD"))

# your code here
```
render: r
validations:
required: true

- type: textarea
id: data-shape
attributes:
label: Input structure
description: >
Output of `assayNames(se)`, `dim(se)`, `colData(se)`, and
`length(features)` / `names(mcols(features))`. Most BREAD issues are
input-shape issues, so this is usually the fastest route to a fix.
render: text

- type: textarea
id: sessioninfo
attributes:
label: sessionInfo()
render: text
validations:
required: true
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Usage question
url: https://support.bioconductor.org
about: >
For "how do I ...?" questions, please post on the Bioconductor support
site and tag it BREAD. Questions there reach more people and stay
searchable.
- name: Package documentation
url: https://baczemin.github.io/BREAD/
about: Reference index, vignettes, and the getting-started guide.
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Feature request
description: Suggest a capability or improvement for BREAD
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: What problem would this solve?
description: >
Describe the analysis you are trying to do and where BREAD currently
gets in the way. Concrete blocked workflows are more useful than
abstract feature names.
validations:
required: true

- type: textarea
id: proposal
attributes:
label: Proposed solution
description: What would the API look like? A sketched call is ideal.
render: r

- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Other packages or workarounds you have tried.

- type: checkboxes
id: roadmap
attributes:
label: Roadmap
options:
- label: >
I have checked NEWS.md and the open issues to see whether this is
already planned.
32 changes: 32 additions & 0 deletions .github/SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Getting help with BREAD

## Usage questions

Ask on the **[Bioconductor support site](https://support.bioconductor.org)**
and tag your post `BREAD`. Questions there are seen by the wider Bioconductor
community and stay searchable for the next person with the same question.

Good things to include:

- what you are trying to test (the contrast, the regions)
- `assayNames(se)`, `dim(se)`, and `colData(se)`
- the `features` object (`length()`, `mcols()` column names)
- your exact `fit_bread()` call
- `sessionInfo()`

## Bugs and feature requests

Open an issue at <https://github.com/BacZemin/BREAD/issues> with a
[reprex](https://reprex.tidyverse.org/). The packaged example data is a good
basis for a self-contained reproduction:

```r
se <- readRDS(system.file("extdata", "vitc_ag06561.rds", package = "BREAD"))
reg <- readRDS(system.file("extdata", "vitc_regions.rds", package = "BREAD"))
```

## Documentation

- Package website: <https://baczemin.github.io/BREAD/>
- `vignette("bread-intro", package = "BREAD")` — getting started
- `vignette("bread-vitc", package = "BREAD")` — real-data walkthrough
57 changes: 57 additions & 0 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# R CMD check on a clean runner.
# Adapted from https://github.com/r-lib/actions/tree/v2/examples
#
# Deliberately ubuntu-only to start. macOS and Windows are added to the
# matrix only once ubuntu is reliably green -- a three-platform matrix that
# goes red on day one is noise, not signal.
on:
push:
branches: [main, polish-for-release]
pull_request:
branches: [main]
workflow_dispatch:

name: R-CMD-check

permissions:
contents: read

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}

name: ${{ matrix.config.os }} (${{ matrix.config.r }})

strategy:
fail-fast: false
matrix:
config:
- {os: ubuntu-latest, r: 'release'}

env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
# brms/rstan are Suggests and are slow+flaky to build on runners; the
# tests that need them already skip_if_not_installed().
_R_CHECK_FORCE_SUGGESTS_: false

steps:
- uses: actions/checkout@v4

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

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check

- uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
args: 'c("--no-manual", "--as-cran")'
Loading
Loading