Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
c266499
The user can now only specify which human array they are using (EPICv…
ErickNavarroD Nov 27, 2024
80bd189
Fixed order of arguments in the documentation
ErickNavarroD Dec 3, 2024
4379de9
Added a message when users load the package
ErickNavarroD Dec 3, 2024
9946fa5
Attached the ultrastable CpG object to the package, and added its doc…
ErickNavarroD Dec 4, 2024
1e98c04
Added the var_distribution argument and modified the code to include …
ErickNavarroD Dec 4, 2024
edde841
Small visual change
ErickNavarroD Dec 4, 2024
2e72498
Let users provide their own manifest and use the ultrastable option a…
ErickNavarroD Dec 5, 2024
4aba037
fixed bug in conditions checking the array argument
ErickNavarroD Dec 5, 2024
6ea801b
Fixed parenthesis bug
ErickNavarroD Dec 5, 2024
e9fa4e3
Computing the variability threshold based on ultrastable probes now s…
ErickNavarroD Dec 5, 2024
6354858
Increment version number to 1.0.0.9000
ErickNavarroD Dec 13, 2024
0fbcc57
Adding messages to keep track of the progress
ErickNavarroD Feb 11, 2025
d317d80
Increment version number to 1.0.0.9001
ErickNavarroD Feb 24, 2025
2d7d434
Fixed a bug that made doFuture parallelization strategies to crash wi…
ErickNavarroD Feb 24, 2025
8e3d8ce
Added DOI badge
ErickNavarroD Apr 8, 2025
eacdd75
Replaced as.data.frame with data.frame to prevent data frames with no…
ErickNavarroD Apr 8, 2025
cea8cf9
R project push
ErickNavarroD Nov 6, 2025
0bea2f9
Update Readme file
ErickNavarroD Nov 6, 2025
9432715
Change of terminology from VMR to VML. Change of the function name. O…
ErickNavarroD Nov 29, 2025
4d91891
Rename findVMRs.R file
ErickNavarroD Nov 29, 2025
969d176
Improve documentation
ErickNavarroD Nov 29, 2025
9296597
Update documentation
ErickNavarroD Nov 29, 2025
5bc88f7
Updated terminology and changed VMR to VML
ErickNavarroD Nov 29, 2025
f209b12
Updated terminology and changed VMR to VML
ErickNavarroD Nov 29, 2025
ac60f1c
Updated documentation
ErickNavarroD Nov 29, 2025
ce3911d
Update pipeline figure
ErickNavarroD Nov 29, 2025
46b26e7
Update summarizeVML documentation and terminology. Fixed a bug that w…
ErickNavarroD Dec 3, 2025
401c731
Update
ErickNavarroD Dec 3, 2025
f992e1e
Update findVML documentation and terminology
ErickNavarroD Dec 3, 2025
85c0f53
Update documentation and terminology to VML
ErickNavarroD Dec 3, 2025
70bf9f7
Update documentation terminology to VML
ErickNavarroD Dec 4, 2025
439a161
Vignette update. Now up to date with functions and the analysis with …
ErickNavarroD Dec 9, 2025
5a7653a
New update for v2: Terminology change (now VML), new default way of i…
ErickNavarroD Dec 9, 2025
56ad85f
Update test with the new function name
ErickNavarroD Dec 9, 2025
1885499
Update documentation
ErickNavarroD Dec 10, 2025
2f800a6
Adding package source to two functions that didnt have it
ErickNavarroD Dec 10, 2025
0f3c549
Styler modifications
ErickNavarroD Dec 10, 2025
847623f
Styler modifications
ErickNavarroD Dec 10, 2025
d0e0c0f
Styler modifications
ErickNavarroD Dec 10, 2025
2f9ca86
Update citation
ErickNavarroD Dec 10, 2025
3e29828
Update citation
ErickNavarroD Dec 10, 2025
f1954d3
Update citation
ErickNavarroD Dec 10, 2025
8e213a9
Add BugsReports field
ErickNavarroD Dec 11, 2025
6a00356
Add repostatus badge
ErickNavarroD Dec 11, 2025
eacc978
Update citation file
ErickNavarroD Dec 11, 2025
54dbc57
Update badges
ErickNavarroD Dec 11, 2025
52553e7
Add file
ErickNavarroD Dec 11, 2025
911df30
Update citation format
ErickNavarroD Dec 11, 2025
128a05b
Create contributing md
ErickNavarroD Dec 11, 2025
a441064
Update documentation style, add report bugs, fix a warning for a toke…
ErickNavarroD Dec 11, 2025
f0dcf85
Add examples
ErickNavarroD Dec 11, 2025
c69a73d
Add NEWS.md
ErickNavarroD Dec 12, 2025
1ebb365
Add stats import
ErickNavarroD Dec 12, 2025
ac5e714
Update examples
ErickNavarroD Dec 12, 2025
c578120
Remove array manifest data, which is now accessed through Illumina an…
ErickNavarroD Dec 12, 2025
a14879a
Add lifecycle badge
ErickNavarroD Dec 12, 2025
5c936fa
Remove array object
ErickNavarroD Dec 12, 2025
b7af972
Improved early error messages in functions that will make the functio…
ErickNavarroD Dec 15, 2025
b9e39d6
Add stops if the inputs are incorrect
ErickNavarroD Jan 8, 2026
95f2eae
Test the workflow in a single file
ErickNavarroD Jan 8, 2026
751252a
Reduce number of permutations
ErickNavarroD Jan 8, 2026
b76b967
Fixed bug caused by sapply and few VML were in the data set
ErickNavarroD Jan 10, 2026
98dea17
Corrected warning message when no VMRs were found in the data set
ErickNavarroD Jan 10, 2026
7cc8585
Fixed the colnames in the returned object when model_selection is BIC
ErickNavarroD Jan 10, 2026
fdab4aa
Colnames order is consistent when selecting AIC and BIC
ErickNavarroD Jan 10, 2026
2c0e16e
change order of the input check so that the most generic ones are the…
ErickNavarroD Jan 10, 2026
9560c2b
Changed input checks so that the most generic ones are the first ones…
ErickNavarroD Jan 10, 2026
362828c
Increased the number of tests to increase the code coverage
ErickNavarroD Jan 10, 2026
0bdde6e
Added coverage to readme
ErickNavarroD Jan 13, 2026
599b33d
Update syntaxis
ErickNavarroD Jan 13, 2026
f05d81b
Add RMD check CI
ErickNavarroD Jan 13, 2026
a96fa73
Fixed typo
ErickNavarroD Jan 13, 2026
02071d1
Added changes in RAMEN v2.0.0
ErickNavarroD Jan 13, 2026
9b4aac3
Replaced sapply with vapply or lapply to make it type-safe
ErickNavarroD Jan 13, 2026
f4b40dc
Bind variables that use data masking to avoid R CMD check notes
ErickNavarroD Jan 13, 2026
66a7de0
Increment version number to 2.0.0
ErickNavarroD Jan 13, 2026
bc5699e
Fixed header
ErickNavarroD Jan 13, 2026
dd2072d
Solved conflict
ErickNavarroD Jan 13, 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
106 changes: 106 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Contributing to RAMEN

Hi there! This outlines how to propose a change to RAMEN. First of all, thanks
for considering contributing to our package! It's people like you that make it
rewarding for us - the project maintainers - to work on RAMEN. 😊

For a detailed discussion on contributing to this and other tidyverse packages,
please see the [development contributing guide](https://rstd.io/tidy-contrib)
and our [code review principles](https://code-review.tidyverse.org/).

There are many ways you can contribute to this project (see the
[Open Source Guide](https://opensource.guide/how-to-contribute/)). Here are some
of them:

## Engage with the package

### Share the ideas

Think RAMEN is useful? Let others discover it, by telling them in person,
via BlueSky or a blog post.

Using RAMEN for a paper you are writing? Consider
[citing it](https://link.springer.com/article/10.1186/s13059-025-03864-4).

### Ask a question

Using RAMEN and got stuck? Browse the [documentation][website] to see if you
can find a solution. Still stuck? Post your question as an
[issue on GitHub][new_issue]. While we cannot offer user support,
we'll try to do our best to address it, as questions often lead to better
documentation or the discovery of bugs.

Want to ask a question in private? Contact the package maintainer by
[email][mailto:email].

### Propose an idea 💡

Have an idea for a new our_package feature? Take a look at the
[documentation][website] and [issue list][issues] to see if it isn't included
or suggested yet. If not, suggest your idea as an [issue on GitHub][new_issue].
While we can't promise to implement your idea, it helps to:

* Explain in detail how it would work.
* Keep the scope as narrow as possible.

See below if you want to contribute code for your idea as well.

## Improve the documentation

Noticed a typo on the website? Think a function could use a better example?
Good documentation makes all the difference, so your help to improve it is very welcome!

You can fix typos, spelling mistakes, or grammatical errors in the
documentation directly using the GitHub web interface, as long as the changes
are made in the _source_ file. This generally means you'll need to
edit [roxygen2 comments](https://roxygen2.r-lib.org/articles/roxygen2.html) in
an `.R`, not a `.Rd` file. You can find the `.R` file that generates the `.Rd`
by reading the comment in the first line.

## Bigger changes

If you want to make a bigger change, it's a good idea to first file an issue and
make sure someone from the team agrees that it’s needed.

### Report a bug

Using our_package and discovered a bug? That's annoying! Don't let others have
the same experience and report it as well in an [issue on GitHub][new_issue] so
we can fix it. If you’ve found a bug, please file an issue that illustrates the
bug with a minimal [reprex](https://www.tidyverse.org/help/#reprex) (this will
also help you write a unit test, if needed).
See our guide on [how to create a great issue](https://code-review.tidyverse.org/issues/)
for more advice. Please provide as well your operating system name and version (e.g. Mac OS 10.13.6),
and any details about your local setup that might be helpful in troubleshooting.

### Pull request process

We try to follow the [GitHub flow](https://guides.github.com/introduction/flow/) for development.

* Fork the package and clone onto your computer. If you haven't done this before, we recommend using `usethis::create_from_github("ErickNavarroD/RAMEN", fork = TRUE)`.

* Install all development dependencies with `devtools::install_dev_deps()`, and then make sure the package passes R CMD check by running `devtools::check()`.
If R CMD check doesn't pass cleanly, it's a good idea to ask for help before continuing.
* Create a Git branch for your pull request (PR). We recommend using `usethis::pr_init("brief-description-of-change")`.

* Make your changes, commit to git, and then create a PR by running `usethis::pr_push()`, and following the prompts in your browser.
The title of your PR should briefly describe the change.
The body of your PR should contain `Fixes #issue-number`.

* For user-facing changes, add a bullet to the top of `NEWS.md` (i.e. just below the first header). Follow the style described in <https://style.tidyverse.org/news.html>.

### Code style

* New code should follow the tidyverse [style guide](https://style.tidyverse.org).
You can use the [styler](https://CRAN.R-project.org/package=styler) package to apply these styles, but please don't restyle code that has nothing to do with your PR.

* We use [roxygen2](https://cran.r-project.org/package=roxygen2), with [Markdown syntax](https://cran.r-project.org/web/packages/roxygen2/vignettes/rd-formatting.html), for documentation.

* We use [testthat](https://cran.r-project.org/package=testthat) for unit tests.
Contributions with test cases included are easier to accept.

## Code of Conduct

Please note that this package is released with a [Contributor
Code of Conduct](https://ropensci.org/code-of-conduct/).
By contributing to this project, you agree to abide by its terms.
51 changes: 51 additions & 0 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: [main, master]
pull_request:

name: R-CMD-check.yaml

permissions: read-all

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

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

strategy:
fail-fast: false
matrix:
config:
- {os: macos-latest, r: 'release'}
- {os: windows-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'oldrel-1'}

env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes

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
build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'
62 changes: 62 additions & 0 deletions .github/workflows/test-coverage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: [main, master]
pull_request:

name: test-coverage.yaml

permissions: read-all

jobs:
test-coverage:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::covr, any::xml2
needs: coverage

- name: Test coverage
run: |
cov <- covr::package_coverage(
quiet = FALSE,
clean = FALSE,
install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package")
)
print(cov)
covr::to_cobertura(cov)
shell: Rscript {0}

- uses: codecov/codecov-action@v5
with:
# Fail if error if not on PR, or if on PR and token is given
fail_ci_if_error: ${{ github.event_name != 'pull_request' || secrets.CODECOV_TOKEN }}
files: ./cobertura.xml
plugins: noop
disable_search: true
token: ${{ secrets.CODECOV_TOKEN }}

- name: Show testthat output
if: always()
run: |
## --------------------------------------------------------------------
find '${{ runner.temp }}/package' -name 'testthat.Rout*' -exec cat '{}' \; || true
shell: bash

- name: Upload test results
if: failure()
uses: actions/upload-artifact@v4
with:
name: coverage-test-failures
path: ${{ runner.temp }}/package
36 changes: 0 additions & 36 deletions CITATION.cff

This file was deleted.

12 changes: 8 additions & 4 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Package: RAMEN
Title: RAMEN: Regional Association of Methylome variability with the Exposome and geNome
Version: 1.0.0
Version: 2.0.0
Authors@R:
person("Erick I.", "Navarro-Delgado", , "ericknadel98@hotmail.com", role = c("aut", "cre"),
comment = c(ORCID = "0000-0003-1040-3519"))
Description: R package that identifies which genetic (G), environmental (E), additive (G+E) or interaction (GxE) model better explains DNA methylation levels in Variable Methylated Regions using microarray data.
Description: R package that identifies which genetic (G), environmental (E), additive (G+E) or interaction (GxE) effect better explains DNA methylation levels in Variable Methylated Loci using microarray data.
License: GPL (>= 3)
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.3
RoxygenNote: 7.3.3
Suggests:
BiocStyle,
knitr,
Expand All @@ -23,6 +23,9 @@ Imports:
foreach,
GenomicRanges,
glmnet,
IlluminaHumanMethylation450kanno.ilmn12.hg19,
IlluminaHumanMethylationEPICanno.ilm10b4.hg19,
IlluminaHumanMethylationEPICv2anno.20a1.hg38,
IRanges,
iterators,
lifecycle,
Expand All @@ -34,6 +37,7 @@ Imports:
tibble
VignetteBuilder: knitr
Depends:
R (>= 2.10)
R (>= 4.2.0)
LazyData: true
URL: https://ericknavarrod.github.io/RAMEN/
BugReports: https://github.com/ErickNavarroD/RAMEN/issues
4 changes: 2 additions & 2 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

export("%>%")
export(findCisSNPs)
export(findVMRs)
export(findVML)
export(lmGE)
export(medCorVMR)
export(nullDistGE)
export(selectVariables)
export(summarizeVMRs)
export(summarizeVML)
importFrom(doRNG,"%dorng%")
importFrom(foreach,"%do%")
importFrom(foreach,"%dopar%")
Expand Down
35 changes: 35 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# RAMEN 2.0.0

In this version, we have made an important change in RAMEN terminology across all the code and documentation to more accurately reflect the biological concepts represented by the data. The term "Variably Methylated Regions (VMR)" used in RAMEN v1 has been replaced by "Variably Methylated Loci (VML)" in RAMEN v2, as not all VML are composed of 2 or more highly variable probes. VML are further composed of Variably Methylated Regions (previously named "canonical VMR" in RAMEN v1) and sparse Variably Methylated Probes (sVMPs; previously named "non-canonical VMR" in RAMENv1). To be clear, there are no changes in how these VML are identified, we only changed how we label these categories.

| Updated name in RAMEN v2 | Deprecated name in RAMEN v1 |
|---------------------------------------|---------------------------------|
| Variably Methylated Loci (VML) | Variably Methylated Region (VMR) |
| Variably Methylated Region (VMR) | canonical VMR (cVMR) |
| sparse Variably Methylated Probe (sVMP) | non-canonical VMR (ncVMR) |

: Terminology update

- To reflect the terminology change, the following functions had a name change: `findVML()` (previously named `findVMRs()` in RAMEN v1) and `summarizeVML()` (previously named `summarizeVMRs()` in RAMEN v1).

- `findVML()`:

- Output: list does not separate VMRs and sVMPs into two different list elements anymore. Now, a single element ("VML") is returned in the output list, which contains both VMRs and sVMPs, labelled accordingly under the *type* column; this VML element is now a data frame, and not a Genomic Ranges object to facilitate data wrangling and plotting. The function now automatically indexes the VML.

- The user does not need to provide the array manifest anymore if working with the Illumina 450k, EPICv1 or EPICv2 array. The `array_manifest` argument accepts now "IlluminaHumanMethylation450k", "IlluminaHumanMethylationEPICv1" and "IlluminaHumanMethylationEPICv2".

- There is a new method to identify VML using ultrastable probes (probes which DNA methylation is known to be stable independently of tissue and developmental stage) to discriminate Highly Variable Probes, which are then grouped into VML. This method is the default one now. For more information please see the `findVML()` documentation and the package vignette. The previously default method to identify Highly Variable Probes (top 10% of probes with the highest variance in the data set) is still available using the argument `var_distribution = "all"`.

- `nullDistGE()`: Prints messages to keep track of the progress. Fixed a bug that made doFuture parallelization strategies crash.

- All functions have examples in the documentation.

- Added tests to reach a code coverage of \>90% in all functions.

- Improved error catches to make functions stop early when the inputs are not in the right format. Fixed various bugs throughout the code (no user.

- Added news, citation and contributing files to the repository.

- Citation info is provided when loading the package.

- The package repository has now informative badges and Continuous Integration checks.
Loading
Loading