Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SpectraQL package to support MassQL on Bioconductor's mass spectrometry objects #3525

Closed
10 tasks done
jorainer opened this issue Aug 21, 2024 · 20 comments
Closed
10 tasks done
Assignees
Labels
3a. accepted will be ingested into Bioconductor daily builder for distribution OK

Comments

@jorainer
Copy link

Update the following URL to point to the GitHub repository of
the package you wish to submit to Bioconductor

Confirm the following by editing each check box to '[x]'

  • I understand that by submitting my package to Bioconductor,
    the package source and all review commentary are visible to the
    general public.

  • I have read the Bioconductor Package Submission
    instructions. My package is consistent with the Bioconductor
    Package Guidelines.

  • I understand Bioconductor Package Naming Policy and acknowledge
    Bioconductor may retain use of package name.

  • I understand that a minimum requirement for package acceptance
    is to pass R CMD check and R CMD BiocCheck with no ERROR or WARNINGS.
    Passing these checks does not result in automatic acceptance. The
    package will then undergo a formal review and recommendations for
    acceptance regarding other Bioconductor standards will be addressed.

  • My package addresses statistical or bioinformatic issues related
    to the analysis and comprehension of high throughput genomic data.

  • I am committed to the long-term maintenance of my package. This
    includes monitoring the support site for issues that users may
    have, subscribing to the bioc-devel mailing list to stay aware
    of developments in the Bioconductor community, responding promptly
    to requests for updates from the Core team in response to changes in
    R or underlying software.

  • I am familiar with the Bioconductor code of conduct and
    agree to abide by it.

I am familiar with the essential aspects of Bioconductor software
management, including:

  • The 'devel' branch for new packages and features.
  • The stable 'release' branch, made available every six
    months, for bug fixes.
  • Bioconductor version control using Git
    (optionally via GitHub).

For questions/help about the submission process, including questions about
the output of the automatic reports generated by the SPB (Single Package
Builder), please use the #package-submission channel of our Community Slack.
Follow the link on the home page of the Bioconductor website to sign up.

@bioc-issue-bot
Copy link
Collaborator

Hi @jorainer

Thanks for submitting your package. We are taking a quick
look at it and you will hear back from us soon.

The DESCRIPTION file for this package is:

Package: SpectraQL
Title: MassQL support for Spectra
Version: 0.99.0
Description: The Mass Spec Query Language (MassQL) is a domain-specific
    language enabling to express a query and retrieve mass spectrometry (MS)
    data in a more natural and understandable way for MS users. It is inspired
    by SQL and is by design programming language agnostic. The SpectraQL
    package adds support for the MassQL query language to R, in particular
    to MS data represented by Spectra objects. Users can thus apply MassQL
    expressions to analyze and retrieve specific data from Spectra objects.
Authors@R: c(person(given = "Johannes", family = "Rainer",
          email = "Johannes.Rainer@eurac.edu",
          role = c("aut", "cre"),
          comment = c(ORCID = "0000-0002-6977-7147")),
	     person(given = "Andrea", family = "Vicini",
          email = "andrea.vicini@eurac.edu",
          role = "aut"),
   person(given = "Sebastian", family = "Gibb",
          email = "mail@sebastiangibb.de",
          role = "ctb",
          comment = c(ORCID = "0000-0001-7406-4443"))
		    )
Depends:
    R (>= 4.4.0),
    ProtGenerics (>= 1.25.1)
Imports:
    Spectra (>= 1.5.6),
    MsCoreUtils,
    methods
Suggests:
    testthat,
    msdata (>= 0.19.3),
    roxygen2,
    rmarkdown,
    knitr,
    BiocStyle,
    mzR
License: Artistic-2.0
LazyData: false
VignetteBuilder: knitr
BugReports: https://github.com/RforMassSpectrometry/SpectraQL/issues
URL: https://github.com/RforMassSpectrometry/SpectraQL
biocViews: Infrastructure, Proteomics, MassSpectrometry, Metabolomics
Roxygen: list(markdown=TRUE)
RoxygenNote: 7.3.2

@bioc-issue-bot bioc-issue-bot added the 1. awaiting moderation submitted and waiting clearance to access resources label Aug 21, 2024
@lshep lshep added the pre-check passed pre-review performed and ready to be added to git label Sep 3, 2024
@bioc-issue-bot
Copy link
Collaborator

Your package has been added to git.bioconductor.org to continue the
pre-review process. A build report will be posted shortly. Please
fix any ERROR and WARNING in the build report before a reviewer is
assigned or provide a justification on why you feel the ERROR or
WARNING should be granted an exception.

IMPORTANT: Please read this documentation for setting
up remotes to push to git.bioconductor.org. All changes should be
pushed to git.bioconductor.org moving forward. It is required to push a
version bump to git.bioconductor.org to trigger a new build report.

Bioconductor utilized your github ssh-keys for git.bioconductor.org
access. To manage keys and future access you may want to active your
Bioconductor Git Credentials Account

@bioc-issue-bot bioc-issue-bot added pre-review on bioconductor git and access to on demand build but not assigned reviewer until build report clean and removed 1. awaiting moderation submitted and waiting clearance to access resources pre-check passed pre-review performed and ready to be added to git labels Sep 3, 2024
@bioc-issue-bot
Copy link
Collaborator

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

On one or more platforms, the build results were: "ERROR, WARNINGS".
This may mean there is a problem with the package that you need to fix.
Or it may mean that there is a problem with the build system itself.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder:
Linux (Ubuntu 22.04.3 LTS): SpectraQL_0.99.0.tar.gz

Links above active for 21 days.

Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
git@git.bioconductor.org:packages/SpectraQL to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.

@lshep
Copy link
Contributor

lshep commented Sep 4, 2024

we are investigating an SSL issue on our builder; this is likely on our end to fix.

@bioc-issue-bot
Copy link
Collaborator

Received a valid push on git.bioconductor.org; starting a build for commit id: 9eb4fc63017ce73555df13b2050f887e4fa9fb5b

@bioc-issue-bot
Copy link
Collaborator

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

On one or more platforms, the build results were: "WARNINGS".
This may mean there is a problem with the package that you need to fix.
Or it may mean that there is a problem with the build system itself.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder:
Linux (Ubuntu 22.04.3 LTS): SpectraQL_0.99.1.tar.gz

Links above active for 21 days.

Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
git@git.bioconductor.org:packages/SpectraQL to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.

@bioc-issue-bot
Copy link
Collaborator

Received a valid push on git.bioconductor.org; starting a build for commit id: 8240f07b562e9b26a452d8b34078c63f4230f069

@bioc-issue-bot
Copy link
Collaborator

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

Congratulations! The package built without errors or warnings
on all platforms.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder:
Linux (Ubuntu 22.04.3 LTS): SpectraQL_0.99.2.tar.gz

Links above active for 21 days.

Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
git@git.bioconductor.org:packages/SpectraQL to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.

@bioc-issue-bot bioc-issue-bot added OK and removed WARNINGS labels Sep 5, 2024
@lshep lshep added 2. review in progress assign a reviewer and a more thorough review of package code and documentation taking place and removed pre-review on bioconductor git and access to on demand build but not assigned reviewer until build report clean labels Sep 11, 2024
@bioc-issue-bot
Copy link
Collaborator

A reviewer has been assigned to your package for an indepth review.
Please respond accordingly to any further comments from the reviewer.

@jianhong
Copy link

Package 'SpectraQL' Review

Thank you for submitting your package to Bioconductor. The package passed check and build. It is in pretty good shape. I am looking for a bone in an egg now. Please try to answer the comments line by line when you are ready for a second review.
Code: Note: please consider; Important: must be addressed.

R code

  • NOTE: Vectorize: for loops present, try to replace them by *apply funcitons.
    • In file R/massql-parser.R:
      • at line 171 found ' for (i in seq_len(l)) {'
  • To avoid the * NOTE: Avoid redundant 'stop' and 'warn*' in signal conditions in BioCheck,
    could you please change the word error to other word in
    - R/massql-parser.R (line 63, column 14)
  • NOTE: Functional programming: code repetition.
    • repetition in .filter, .what, and .where
      • in .filter
        • line 1:{
        • line 2: res <- sub(".?filter[[:space:]](.?)[[:space:]](where.*|$)",
        • line 3: "\1", x, ignore.case = TRUE)
        • line 4: res[res == x] <- NA_character_
        • line 5: res <- unlist(strsplit(res, split = "[[:space:]](and|AND)[[:space:]]"))
        • line 6: res[nchar(res) > 0 & !is.na(res)]
      • in .what
        • line 1:{
        • line 2: res <- sub(".?query[[:space:]](.?)[[:space:]](where.|filter.|$)",
        • line 3: "\1", x, ignore.case = TRUE)
        • line 4: res[res == x] <- NA_character_
        • line 5: res
      • in .where
        • line 1:{
        • line 2: res <- sub(".?where[[:space:]](.?)[[:space:]](filter.*|$)",
        • line 3: "\1", x, ignore.case = TRUE)
        • line 4: res[res == x] <- NA_character_
        • line 5: res <- unlist(strsplit(res, split = "[[:space:]](and|AND)[[:space:]]"))
        • line 6: res[nchar(res) > 0 & !is.na(res)]
    • repetition in .translate_condition_ms2nl, .translate_condition_ms2prec, .translate_condition_peak_mz, and .translate_filter_mz_value
      • in .translate_condition_ms2nl
        • line 1: function (...)
        • line 2: {
        • line 3: parms <- list(...)[[1L]]
        • line 4: nl <- numeric(0)
        • line 5: ppm <- 0
        • line 6: tolerance <- 0
        • line 7: if (any(names(parms) == "MS2NL"))
        • line 8: nl <- as.numeric(.parse_or(parms["MS2NL"]))
        • line 9: if (anyNA(nl))
        • line 10: stop("Non-numeric value/s for 'MS2NL'")
        • line 11: if (any(names(parms) == "TOLERANCEMZ"))
        • line 12: tolerance <- as.numeric(parms["TOLERANCEMZ"])
        • line 13: if (is.na(tolerance))
        • line 14: stop("Non-numeric value for 'TOLERANCEMZ'")
        • line 15: if (any(names(parms) == "TOLERANCEPPM"))
        • line 16: ppm <- as.numeric(parms["TOLERANCEPPM"])
        • line 17: if (is.na(ppm))
        • line 18: stop("Non-numeric value for 'TOLERANCEPPM'")
        • line 19: if (length(nl)) {
      • in .translate_condition_ms2prec
        • line 1: function (...)
        • line 2: {
        • line 3: parms <- list(...)[[1L]]
        • line 4: pmz <- numeric()
        • line 5: ppm <- 0
        • line 6: tolerance <- 0
        • line 7: if (any(names(parms) == "MS2PREC"))
        • line 8: pmz <- as.numeric(.parse_or(parms["MS2PREC"]))
        • line 9: if (anyNA(pmz))
        • line 10: stop("Missing or non-numeric value(s) for 'MS2PREC'")
        • line 11: if (any(names(parms) == "TOLERANCEMZ"))
        • line 12: tolerance <- as.numeric(parms["TOLERANCEMZ"])
        • line 13: if (is.na(tolerance))
        • line 14: stop("Non-numeric value for 'TOLERANCEMZ'")
        • line 15: if (any(names(parms) == "TOLERANCEPPM"))
        • line 16: ppm <- as.numeric(parms["TOLERANCEPPM"])
        • line 17: if (is.na(ppm))
        • line 18: stop("Non-numeric value for 'TOLERANCEPPM'")
        • line 19: if (length(pmz)) {
        • line 20: ProcessingStep(filterPrecursorMzValues, ARGS = list(mz = pmz,
      • in .translate_condition_peak_mz
        • line 1: function (..., msLevel = 2L, value = "MS2PROD")
        • line 2: {
        • line 3: parms <- list(...)[[1L]]
        • line 4: pmz <- numeric(0)
        • line 5: ppm <- 0
        • line 6: tolerance <- 0
        • line 7: if (any(names(parms) == value))
        • line 8: pmz <- as.numeric(.parse_or(parms[value]))
        • line 9: if (anyNA(pmz))
        • line 10: stop("Missing or non-numeric value(s) for '", value,
        • line 11: "'")
        • line 12: if (any(names(parms) == "TOLERANCEMZ"))
        • line 13: tolerance <- as.numeric(parms["TOLERANCEMZ"])
        • line 14: if (is.na(tolerance))
        • line 15: stop("Non-numeric value for 'TOLERANCEMZ'")
        • line 16: if (any(names(parms) == "TOLERANCEPPM"))
        • line 17: ppm <- as.numeric(parms["TOLERANCEPPM"])
        • line 18: if (is.na(ppm))
        • line 19: stop("Non-numeric value for 'TOLERANCEPPM'")
        • line 20: if (length(pmz)) {
      • in .translate_filter_mz_value
        • line 1: function (..., msLevel = 2L, value = "MS2MZ")
        • line 2: {
        • line 3: parms <- list(...)[[1L]]
        • line 4: mz <- numeric(0)
        • line 5: ppm <- 0
        • line 6: tolerance <- 0
        • line 7: if (any(names(parms) == value))
        • line 8: mz <- as.numeric(.parse_or(parms[value]))
        • line 9: if (anyNA(mz))
        • line 10: stop("Missing or non-numeric value(s) for '", value,
        • line 11: "'")
        • line 12: if (any(names(parms) == "TOLERANCEMZ"))
        • line 13: tolerance <- as.numeric(parms["TOLERANCEMZ"])
        • line 14: if (is.na(tolerance))
        • line 15: stop("Non-numeric value for 'TOLERANCEMZ'")
        • line 16: if (any(names(parms) == "TOLERANCEPPM"))
        • line 17: ppm <- as.numeric(parms["TOLERANCEPPM"])
        • line 18: if (is.na(ppm))
        • line 19: stop("Non-numeric value for 'TOLERANCEPPM'")
        • line 20: if (length(mz))
        • line 21: ProcessingStep(filterMzValues, ARGS = list(mz = mz,

Documentation

  • Note: Vignette installation section should be formatted as source code.
    • rmd file vignettes/SpectraQL.Rmd

@jorainer
Copy link
Author

Thanks for your review @jianhong ! Below I address your points - I will add each point as a separate comment to avoid having a single very long comment.

[ ] NOTE: Vectorize: for loops present, try to replace them by *apply funcitons.

I had a look at the mentioned for loop at line 171, but could not come up with a (safe) and more efficient way using *apply. I'm accessing two different variables mini and maxi within that loop, so I would anyway to loop over an index - and doing that using e.g. lapply (lapply(seq_len(l), function ... would IMHO not be more efficient - and also less readable. So, if you agree, I would like to keep the for loop in that particular case. Note that I usually use vapply whenever possible.

@jorainer
Copy link
Author

[ ] To avoid the * NOTE: Avoid redundant 'stop' and 'warn*' in signal conditions in BioCheck,

Thanks for the comment. It indeed would look ugly. I changed the wording from Syntax error to Wrong syntax.

@jorainer
Copy link
Author

jorainer commented Sep 27, 2024

code repetition:

repetition in .filter, .what, and .where

Thanks, that's a great suggestion! I've moved the respective code into a new .parse_query function (that is called by .what, .where etc.

The changes are in this commit: rformassspectrometry/SpectraQL@cf1dd9a

@jorainer
Copy link
Author

jorainer commented Sep 27, 2024

code repetition:

repetition in .translate_condition_ms2nl, .translate_condition_ms2prec, .translate_condition_peak_mz, and .translate_filter_mz_value

Thanks for spotting this! I've created two new helper functions to reduce the repeated code.

The changes are in this commit: rformassspectrometry/SpectraQL@49f4b1e

@jorainer
Copy link
Author

jorainer commented Sep 27, 2024

Note: Vignette installation section should be formatted as source code.

Also done.

Changes are in this commit: rformassspectrometry/SpectraQL@f4bbe03

@bioc-issue-bot
Copy link
Collaborator

Received a valid push on git.bioconductor.org; starting a build for commit id: f4bbe03f7eeb3db99545542940496c9cc53e1f5a

@jorainer
Copy link
Author

Changes have now all been pushed to BioC too. Thanks again for the review @jianhong ! Looking forward to the second round of review.

@bioc-issue-bot
Copy link
Collaborator

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

Congratulations! The package built without errors or warnings
on all platforms.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder:
Linux (Ubuntu 24.04.1 LTS): SpectraQL_0.99.3.tar.gz

Links above active for 21 days.

Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
git@git.bioconductor.org:packages/SpectraQL to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.

@jianhong jianhong added 3a. accepted will be ingested into Bioconductor daily builder for distribution and removed 2. review in progress assign a reviewer and a more thorough review of package code and documentation taking place labels Oct 1, 2024
@bioc-issue-bot
Copy link
Collaborator

Your package has been accepted. It will be added to the
Bioconductor nightly builds.

Thank you for contributing to Bioconductor!

Reviewers for Bioconductor packages are volunteers from the Bioconductor
community. If you are interested in becoming a Bioconductor package
reviewer, please see Reviewers Expectations.

@lshep
Copy link
Contributor

lshep commented Oct 1, 2024

The default branch of your GitHub repository has been added to Bioconductor's
git repository as branch devel.

To use the git.bioconductor.org repository, we need an 'ssh' key to associate with your github user name. If your GitHub account already has ssh public keys (https://github.com/jorainer.keys is not empty), then no further steps are required. Otherwise, do the following:

  1. Add an SSH key to your github account
  2. Submit your SSH key to Bioconductor

See further instructions at

https://bioconductor.org/developers/how-to/git/

for working with this repository. See especially

https://bioconductor.org/developers/how-to/git/new-package-workflow/
https://bioconductor.org/developers/how-to/git/sync-existing-repositories/

to keep your GitHub and Bioconductor repositories in sync.

Your package will be included in the next nigthly 'devel' build (check-out from git at about 6 pm Eastern; build completion around 2pm Eastern the next day) at

https://bioconductor.org/checkResults/

(Builds sometimes fail, so ensure that the date stamps on the main landing page are consistent with the addition of your package). Once the package builds successfully, you package will be available for download in the 'Devel' version of Bioconductor using BiocManager::install("SpectraQL"). The package 'landing page' will be created at

https://bioconductor.org/packages/SpectraQL

If you have any questions, please contact the bioc-devel mailing list (https://stat.ethz.ch/mailman/listinfo/bioc-devel); this issue will not be monitored further.

@lshep lshep closed this as completed Oct 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3a. accepted will be ingested into Bioconductor daily builder for distribution OK
Projects
None yet
Development

No branches or pull requests

4 participants