Contributions icon indicating copy to clipboard operation
Contributions copied to clipboard

Add PolySTest

Open veitveit opened this issue 1 year ago • 24 comments

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

  • Repository: https://github.com/computproteomics/PolySTest

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

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

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

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

  • [x] 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.

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

  • [x] 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.

  • [x] 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:

  • [x] The 'devel' branch for new packages and features.
  • [x] The stable 'release' branch, made available every six months, for bug fixes.
  • [x] 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.

veitveit avatar Mar 29 '24 09:03 veitveit

Hi @veitveit

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: PolySTest
Title: PolySTest: Detection of differentially regulated features. Combined 
      statistical testing for data with few replicates and missing values
Version: 0.99.0
Authors@R: 
    person("Veit", "Schwämmle", , "[email protected]", role = c("aut", "cre"),
 comment = c(ORCID = "0000-0002-9708-6722"))
Description: The complexity of high-throughput quantitative omics
   experiments often leads to low replicates numbers and 
   many missing values. We implemented a new test to simultaneously 
   consider missing values and quantitative changes, which we combined
   with well-performing statistical tests for high confidence
   detection of differentially regulated features. The package contains
   functions to run the test and to visualize the results.
License: GPL-2
Encoding: UTF-8
biocViews: MassSpectrometry, Proteomics, Software, DifferentialExpression
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.1
Imports:
    fdrtool (>= 1.2.15),
    limma (>= 3.44.3),
    matrixStats (>= 0.57.0),
    qvalue (>= 2.22.0),
    shiny (>= 1.5.0),
    SummarizedExperiment (>= 1.20.0),
    knitr (>= 1.33),
    plotly (>= 4.9.4),
    heatmaply (>= 1.1.1),
    circlize (>= 0.4.12),
    UpSetR (>= 1.4.0),
    gplots (>= 3.1.1),
    S4Vectors (>= 0.30.0),
    parallel (>= 4.1.0),
    grDevices (>= 4.1.0),
    graphics (>= 4.1.0),
    stats (>= 4.1.0),
    utils (>= 4.1.0)
Suggests: 
    testthat (>= 3.0.0)
VignetteBuilder: knitr
Config/testthat/edition: 3
Depends: 
    R (>= 4.3.0)

bioc-issue-bot avatar Mar 29 '24 09:03 bioc-issue-bot

  • [ ] Is it possible to move the Dockerfile and bitbucket-pipelines.yml and bioconda installation stuff to a different branch so that a clean R packages is submitted and distributed by Bioconductor

  • [ ] The citation file is currently malformed

> readCitationFile("CITATION")
Error in tools:::.parse_CITATION_file(file, meta$Encoding) : 
  non-ASCII input in a CITATION file without a declared encoding
  • [ ] Please include an inst/scripts that has a file that describes how the data in inst/extdata was generated. It can be text, psuedo-code, or code but should contain any relevant source and licensing information.

  • [ ] Rplots.pdf in the top level directory should be removed

lshep avatar Apr 04 '24 15:04 lshep

Thank you @lshep

I would prefer to keep docker file and bioconda files to avoid having to simultaneously maintain multiple branches. I moved everything to the inst folder. Would that be fine?

  • [x] The citation file should be fine now

  • [x] script file about data set has been added

  • [x] Rplots.pdf has been removed

veitveit avatar Apr 06 '24 10:04 veitveit

FWIW: I still get the following

> readCitationFile("CITATION")
Error in tools:::.parse_CITATION_file(file, meta$Encoding) : 
  non-ASCII input in a CITATION file without a declared encoding

tools::showNonASCII(readLines("CITATION")) 5: author="Veit Schwmmle, Christian E. Hagensen, Adelina Rogowska-Wrzesinska, Ole N. Jensen", 14: author="Veit Schwmmle",

lshep avatar May 17 '24 15:05 lshep

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 avatar May 17 '24 17:05 bioc-issue-bot

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): PolySTest_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 [email protected]:packages/PolySTest to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar May 17 '24 17:05 bioc-issue-bot

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

bioc-issue-bot avatar May 21 '24 15:05 bioc-issue-bot

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): PolySTest_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 [email protected]:packages/PolySTest to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar May 21 '24 16:05 bioc-issue-bot

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

bioc-issue-bot avatar May 28 '24 14:05 bioc-issue-bot

Package 'PolySTest' Review

Thank you for submitting your package to Bioconductor. The package passed check and build. However there are several things need to be fixed. 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.

The DESCRIPTION file

  • [ ] Important: R version should be no less than 4.4

The NAMESPACE file

  • [ ] Important: Selective imports using importFrom instead of import all with import.
    • in line 32 import(circlize)
    • in line 33 import(grDevices)
    • in line 35 import(knitr)
    • in line 36 import(limma)
    • in line 37 import(matrixStats)
    • in line 38 import(parallel)
    • in line 39 import(qvalue)
    • in line 41 import(utils)

General package development

  • [ ] NOTE: Provide 'URL', 'BugReports' field(s) in DESCRIPTION

R code

  • [ ] Important: No paste in message(), message, stop. Please move the paste/0 outside.
    • In file R/HelperFuncs.R:
      • at line 31 found ' message(paste("Set number of threads to", NumThreads))'
  • [ ] Important: warning, message, stop instead of cat and print outside of show methods.
    • In file R/HelperFuncs.R:
      • at line 726 found ' cat(knitr::kable(allComps), sep = "\n")'
      • at line 865 found ' cat('
  • [ ] NOTE: :: is not suggested in source code unless you can make sure all the packages are imported. Some people think it is better to keep ::. However, please be aware that you will need to manually double-check the imported items if you make any changes to the DESCRIPTION file during development. My suggestion is to remove one or two repetitions to trigger the dependency check.
  • [ ] NOTE: Vectorize: for loops present, try to replace them by *apply funcitons.
    • In file R/HelperFuncs.R:
      • at line 103 found ' for (i in 0:d) {'
      • at line 106 found ' for (i in 0:d) {'
      • at line 107 found ' for (j in 0:(d - i)) {'
      • at line 111 found ' for (i in seq_len(d)) {'
      • at line 164 found ' for (r in seq_len(NumReps)) {'
      • at line 241 found ' for (vs in seq_len(NumComps)) {'
      • at line 247 found ' for (q in qs) {'
      • at line 305 found ' for (vs in 2:NumCond) {'
      • at line 311 found ' for (q in qs) {'
      • at line 367 found ' for (i in seq_len(ncol(LogRatios))) {'
      • at line 463 found ' for (t in seq_len(NumTests)) {'
      • at line 471 found ' for (qlim in qrange) {'
      • at line 520 found ' for (i in seq_len(NumComps)) {'
      • at line 648 found ' for (i in seq_len(nrow(ones))) {'
      • at line 664 found ' for (i in seq_len(numCond)) {'
      • at line 668 found ' for (j in 2:length(condNames)) {'
      • at line 743 found ' for (i in seq_len(nrow(allComps))) {'
      • at line 748 found ' for (j in seq_len(nrow(allComps))) {'
      • at line 756 found ' for (i in seq_len(ncol(RR))) {'
      • at line 946 found ' for (t in seq_len(NumTests)) {'
    • In file R/rankprodbounds.R:
      • at line 72 found ' for (i in seq_len(k + 1)) {'
      • at line 73 found ' for (j in seq_len(maxj + 1)) {'
      • at line 88 found ' for (j in minj:maxj) {'
      • at line 101 found ' for (j in unique(allj)) { # updated: thanks to Vicenzo Lagani for pointing this out'
      • at line 176 found ' # checking that the parameters for (k-1,j-1) that are needed to compute the'
      • at line 177 found ' # parameters for (k,j) are indeed available; if not, they are themselves computed'
      • at line 195 found ' # checking that the parameters for (k-1,j) that are needed to compute the'
      • at line 196 found ' # parameters for (k,j) are indeed available; if not, they are themselves computed'
      • at line 259 found ' for (i in seq_len(nunique)) {'
    • In file R/StatTestPaired.R:
      • at line 100 found ' for (i in seq_len(nrow(allComps))) {'
      • at line 155 found ' for (vs in seq_len(NumComps)) {'
      • at line 254 found ' for (c in (seq_len(NumCond))) {'
      • at line 266 found ' for (i in seq_len(ncol(plvalues))) {'
    • In file R/StatTestUnpaired.R:
      • at line 75 found ' for (i in seq_len(nrow(allComps))) {'
      • at line 143 found ' for (vs in seq_len(NumComps)) {'
      • at line 254 found ' for (i in seq_len(NumComps)) {'
      • at line 275 found ' for (i in seq_len(ncol(plvalues))) {'
      • at line 401 found ' for (p in seq_len(NumRPPairs)) {'
    • In file R/Visualizations.R:
      • at line 89 found ' for (i in seq_len(NumComps)) {'
      • at line 90 found ' for (j in seq_len(NumTests)) {'
      • at line 176 found ' for (i in seq_len(NumComps)) {'
      • at line 177 found ' for (j in seq_len(NumTests)) {'
      • at line 309 found ' for (c in seq_len(NumCond)) {'
      • at line 346 found ' for (i in 2:nrow(MeanSet)) {'
      • at line 366 found ' for (t in seq_len(NumTests)) {'
      • at line 399 found ' for (j in which(tsign[, i])) {'
      • at line 423 found ' for (j in seq_len(nfeat)) {'
      • at line 617 found ' for (i in seq_len(NumComps)) {'
      • at line 635 found ' for (j in seq_len(NumTests - 1)) {'
      • at line 746 found ' for (c in pcols) {'
      • at line 750 found ' for (c in seq_len(ncol(tqvals))) {'
  • [ ] Important: Remove unused code.
    • In file R/HelperFuncs.R:
      • at line 457 found ' #parallel::clusterEvalQ(cl)'
    • In file R/StatTestPaired.R:
      • at line 371 found ' #parallel::clusterEvalQ(cl = cl)'
    • In file R/StatTestUnpaired.R:
      • at line 385 found ' #parallel::clusterEvalQ(cl = cl)'
      • at line 402 found ' # print(RPparOut[[p]])'
      • at line 494 found ' # print(head(PermFullData))'
      • at line 505 found ' #clusterEvalQ(cl = cl)'
    • In file R/Visualizations.R:
      • at line 344 found ' # abline(h=fclim)'
      • at line 367 found ' # print(tsign)'
      • at line 412 found ' # print(SubSet)'
      • at line 420 found ' # circos.text(x=mean(xlim), y=1.7,'
      • at line 421 found ' # labels=name, facing = dd, cex=0.6, adj = aa),'
      • at line 424 found ' # print((SubSetLR[j,i]/max(LogRatios,na.rm=T))*500+500)'
      • at line 502 found ' # print(deleted_cols)'
    • In file R/StatTestUnpaired.R:
      • at line 494 found ' # print(head(PermFullData))'
  • [ ] Important: Please consider to add drop=FALSE to avoid the reduction of dimension for matrices and arrays. Ignore this if using datatable.
    • In file R/HelperFuncs.R:
      • at line 67 found ' Stats <- rowMeans(Data[, seq_len(NumReps)], na.rm = TRUE) -'
      • at line 68 found ' rowMeans(Data[, seq(NumReps + 1, length.out = NumReps)],'
      • at line 71 found ' (sqrt(matrixStats::rowVars(Data[, seq_len(NumReps)],'
      • at line 242 found ' tData <- Data[, Reps == RRCateg[2, vs]]'
      • at line 243 found ' trefData <- Data[, Reps == RRCateg[1, vs]]'
      • at line 306 found ' tData <- Data[, Reps == vs]'
      • at line 307 found ' trefData <- Data[, Reps == 1]'
    • In file R/StatTestPaired.R:
      • at line 165 found ' tMAData <- MAData[, MAReps == vs]'
      • at line 295 found ' t.test(tMAData[pep, ])$p.value,'
    • In file R/StatTestUnpaired.R:
      • at line 152 found ' tData <- Data[, Reps == RRCateg[1, vs]]'
      • at line 153 found ' trefData <- Data[, Reps == RRCateg[2, vs]]'
      • at line 196 found ' rowMeans(Data[, Reps == RRCateg[1, vs]], na.rm = TRUE) -'
      • at line 197 found ' rowMeans(Data[, Reps == RRCateg[2, vs]], na.rm = TRUE)'
      • at line 388 found ' tRPMAData <- tData[, sample(seq_len(NumReps))] -'
    • In file R/Visualizations.R:
      • at line 310 found ' MeanSet[, c] <- rowMeans(tdat[, seq_len(NumReps) + (c - 1) *'
      • at line 315 found ' SDSet[, c] <- rowSds(tdat[, seq_len(NumReps) + (c - 1) * NumReps,'
  • [ ] NOTE: Functional programming: code repetition.
    • repetition in create_ratio_matrix, PolySTest_paired, PolySTest_unpaired, and rp_unpaired
      • in create_ratio_matrix
        • line 8: valComps <- matrix(NA, nrow = nrow(allComps), ncol = 2)
        • line 9: for (i in seq_len(nrow(allComps))) {
        • line 10: valComps[i, 1] <- as.numeric(which(conditions == allComps[i,
        • line 11: 1]))
        • line 12: valComps[i, 2] <- as.numeric(which(conditions == allComps[i,
        • line 13: 2]))
        • line 14: }
      • in PolySTest_paired
        • line 1: allComps, statTests = c("limma", "Miss_Test", "t_test", "rank_products",
        • line 2: "permutation_test"))
        • line 3:{
        • line 4: check_for_polystest(fulldata)
        • line 5: Data <- assay(fulldata, "quant")
        • line 6: NumReps <- metadata(fulldata)$NumReps
        • line 7: NumCond <- metadata(fulldata)$NumCond
        • line 15: Reps <- rep(seq_len(NumCond), NumReps)
        • line 16: conditions <- unique(colData(fulldata)$Condition)
        • line 17: NumComps <- nrow(allComps)
        • line 18: RRCateg <- matrix(NA, ncol = nrow(allComps), nrow = 2)
        • line 19: for (i in seq_len(nrow(allComps))) {
        • line 20: RRCateg[1, i] <- as.numeric(which(conditions == allComps[i,
        • line 21: 1]))
        • line 22: RRCateg[2, i] <- as.numeric(which(conditions == allComps[i,
        • line 23: 2]))
        • line 24: }
        • line 25: p_values <- q_values <- matrix(NA, nrow = nrow(MAData), ncol = length(tests) *
        • line 26: NumComps)
        • line 27: rownames(p_values) <- rownames(q_values) <- rownames(MAData)
        • line 28: colnames(p_values) <- paste0("p_values_", rep(tests, each = NumComps),
        • line 29: "_", rep(seq_len(NumComps), length(tests)))
        • line 30: colnames(q_values) <- paste0("q_values_", rep(tests, each = NumComps),
        • line 31: "_", rep(seq_len(NumComps), length(tests)))
        • line 32: Sds <- NULL
        • line 33: if (any("limma" %in% tests)) {
        • line 34: message("Running limma tests")
        • line 35: limma_out <- limma_paired(MAData, NumComps, NumReps)
        • line 36: p_values[, grep("p_values_limma", colnames(p_values))] <- limma_out$plvalues
        • line 37: q_values[, grep("q_values_limma", colnames(q_values))] <- limma_out$qlvalues
        • line 38: Sds <- limma_out$Sds
        • line 39: message("limma completed")
        • line 40: }
        • line 41: if (any("Miss_Test" %in% tests)) {
        • line 42: message("Running Miss test")
        • line 43: MissingStats <- MissingStatsDesign(Data, RRCateg, NumCond,
        • line 44: NumReps)
        • line 45: p_values[, grep("p_values_Miss_Test", colnames(p_values))] <- MissingStats$pNAvalues
        • line 46: q_values[, grep("q_values_Miss_Test", colnames(q_values))] <- MissingStats$qNAvalues
        • line 47: message("Miss test completed")
        • line 48: }
        • line 50: lratios <- NULL
        • line 51: if (any("rank_products" %in% tests)) {
        • line 52: message("Running rank products ...")
        • line 53: }
        • line 54: if (any("t_test" %in% tests)) {
        • line 55: message("Running t-tests ...")
        • line 56: }
        • line 57: if (any("permutation_test" %in% tests)) {
        • line 58: message("Running permutation tests ...")
        • line 59: }
        • line 60: pb <- txtProgressBar(0.9, NumCond)
        • line 61: for (vs in seq_len(NumComps)) {
        • line 62: if (!is.null(shiny::getDefaultReactiveDomain())) {
        • line 63: shiny::setProgress(0.1 + 0.3/NumComps * vs, detail = paste("tests for comparison",
        • line 64: vs, "of", NumComps))
        • line 65: }
        • line 66: tMAData <- MAData[, MAReps == vs]
        • line 67: if (any("t_test" %in% tests)) {
        • line 68: ttest_out <- ttest_paired(tMAData)
        • line 69: p_values[, grep("p_values_t_test", colnames(p_values))[vs]] <- ttest_out$ptvalues
        • line 70: q_values[, grep("q_values_t_test", colnames(q_values))[vs]] <- ttest_out$qtvalues
        • line 71: }
        • line 72: if (any("rank_products" %in% tests)) {
        • line 73: RPMAUp_pvalues <- RPStats(tMAData, NumReps)
        • line 74: RPMADown_pvalues <- RPStats(-tMAData, NumReps)
        • line 75: ttt <- rowMins(cbind(RPMAUp_pvalues, RPMADown_pvalues),
        • line 76: na.rm = TRUE) * 2
        • line 77: ttt[ttt > 1] <- 1
        • line 83: }
        • line 84: if (any("permutation_test" %in% tests)) {
        • line 85: perm_out <- permtest_paired(tMAData)
        • line 86: p_values[, grep("p_values_permutation_test", colnames(p_values))[vs]] <- perm_out$pPermutvalues
        • line 87: q_values[, grep("q_values_permutation_test", colnames(q_values))[vs]] <- perm_out$qPermutvalues
        • line 88: }
        • line 89: lratios <- cbind(lratios, rowMeans(MAData[, MAReps ==
        • line 94: close(pb)
        • line 95: fulldata <- prepare_output_data(fulldata, p_values, q_values,
        • line 96: lratios, tests, allComps)
        • line 97: return(fulldata)
      • in PolySTest_unpaired
        • line 1: allComps, statTests = c("limma", "Miss_Test", "t_test", "rank_products",
        • line 2: "permutation_test"))
        • line 3:{
        • line 4: check_for_polystest(fulldata)
        • line 5: Data <- assay(fulldata, "quant")
        • line 6: NumReps <- metadata(fulldata)$NumReps
        • line 7: NumCond <- metadata(fulldata)$NumCond
        • line 8: Reps <- rep(seq_len(NumCond), NumReps)
        • line 9: conditions <- unique(colData(fulldata)$Condition)
        • line 10: NumComps <- nrow(allComps)
        • line 11: RRCateg <- matrix(NA, ncol = nrow(allComps), nrow = 2)
        • line 12: for (i in seq_len(nrow(allComps))) {
        • line 13: RRCateg[1, i] <- as.numeric(which(conditions == allComps[i,
        • line 14: 1]))
        • line 15: RRCateg[2, i] <- as.numeric(which(conditions == allComps[i,
        • line 16: 2]))
        • line 17: }
        • line 23: }
        • line 24: p_values <- q_values <- matrix(NA, nrow = nrow(Data), ncol = length(tests) *
        • line 25: NumComps)
        • line 26: rownames(p_values) <- rownames(q_values) <- rownames(Data)
        • line 27: colnames(p_values) <- paste0("p_values_", rep(tests, each = NumComps),
        • line 28: "_", rep(seq_len(NumComps), length(tests)))
        • line 29: colnames(q_values) <- paste0("q_values_", rep(tests, each = NumComps),
        • line 30: "_", rep(seq_len(NumComps), length(tests)))
        • line 31: Sds <- NULL
        • line 32: if (any("limma" %in% tests)) {
        • line 33: message("Running limma tests")
        • line 34: lm_out <- limma_unpaired(Data, NumCond, NumReps, RRCateg)
        • line 35: p_values[, grep("p_values_limma", colnames(p_values))] <- lm_out$plvalues
        • line 36: q_values[, grep("q_values_limma", colnames(q_values))] <- lm_out$qlvalues
        • line 37: Sds <- lm_out$Sds
        • line 38: message("limma completed")
        • line 39: }
        • line 40: if (any("Miss_Test" %in% tests)) {
        • line 41: message("Running Miss test")
        • line 42: MissingStats <- MissingStatsDesign(Data, RRCateg, NumCond,
        • line 43: NumReps)
        • line 44: p_values[, grep("p_values_Miss_Test", colnames(p_values))] <- MissingStats$pNAvalues
        • line 45: q_values[, grep("q_values_Miss_Test", colnames(q_values))] <- MissingStats$qNAvalues
        • line 46: message("Miss test completed")
        • line 47: }
        • line 48: lratios <- NULL
        • line 49: if (any("rank_products" %in% tests)) {
        • line 50: message("Running rank products ...")
        • line 51: }
        • line 52: if (any("t_test" %in% tests)) {
        • line 53: message("Running t-tests ...")
        • line 54: }
        • line 55: if (any("permutation_test" %in% tests)) {
        • line 56: message("Running permutation tests ...")
        • line 57: }
        • line 58: pb <- txtProgressBar(0.9, NumComps)
        • line 59: for (vs in seq_len(NumComps)) {
        • line 60: if (!is.null(shiny::getDefaultReactiveDomain())) {
        • line 61: shiny::setProgress(0.1 + 0.3/(NumComps) * vs, detail = paste("tests for comparison",
        • line 62: vs, "of", NumComps))
        • line 63: }
        • line 64: tData <- Data[, Reps == RRCateg[1, vs]]
        • line 65: trefData <- Data[, Reps == RRCateg[2, vs]]
        • line 66: if (any("t_test" %in% tests)) {
        • line 67: ttest_out <- ttest_unpaired(tData, trefData)
        • line 68: p_values[, grep("p_values_t_test", colnames(p_values))[vs]] <- ttest_out$ptvalues
        • line 69: q_values[, grep("q_values_t_test", colnames(q_values))[vs]] <- ttest_out$qtvalues
        • line 70: }
        • line 71: if (any("rank_products" %in% tests)) {
        • line 75: }
        • line 76: if (any("permutation_test" %in% tests)) {
        • line 77: perm_out <- perm_unpaired(tData, trefData)
        • line 78: p_values[, grep("p_values_permutation_test", colnames(p_values))[vs]] <- perm_out$pPermutvalues
        • line 79: q_values[, grep("q_values_permutation_test", colnames(q_values))[vs]] <- perm_out$qPermutvalues
        • line 80: }
        • line 81: lratios <- cbind(lratios, rowMeans(Data[, Reps == RRCateg[1,
        • line 85: }
        • line 86: close(pb)
        • line 87: fulldata <- prepare_output_data(fulldata, p_values, q_values,
        • line 88: lratios, tests, allComps)
        • line 89: return(fulldata)
      • in rp_unpaired
        • line 22: trefData[, sample(seq_len(NumReps))]
        • line 23: RPMAUp_pvalues <- RPStats(tRPMAData, NumReps)
        • line 24: RPMADown_pvalues <- RPStats(-tRPMAData, NumReps)
        • line 25: ttt <- rowMins(cbind(RPMAUp_pvalues, RPMADown_pvalues),
        • line 26: na.rm = TRUE) * 2
        • line 27: ttt[ttt > 1] <- 1
    • repetition in FindFCandQlim, and FindFCandQlimAlternative
      • in FindFCandQlim
        • line 13: length = 100)
        • line 14: NumTests <- ncol(Qvalue)/(NumCond)
        • line 15: if (NumTests%%1 != 0) {
        • line 16: stop("Number of tests is not a multiple of the number of conditions")
        • line 17: }
        • line 18: if (NumTests != ncol(Qvalue)/(NumCond)) {
        • line 19: stop("Number of tests is not a multiple of the number of conditions")
        • line 20: }
      • in FindFCandQlimAlternative
        • line 5: Pvalue[is.na(Pvalue)] <- 1
        • line 6: NumTests <- ncol(Pvalue)/(NumCond)
        • line 7: if (NumTests%%1 != 0) {
        • line 8: stop("Number of tests is not a multiple of the number of conditions")
        • line 9: }
        • line 10: if (NumTests != ncol(Pvalue)/(NumCond)) {
        • line 11: stop("Number of tests is not a multiple of the number of conditions")
        • line 12: }
    • repetition in limma_paired, and limma_unpaired
      • in limma_paired
        • line 9: lm.bayesMA <- limma::eBayes(lm.fittedMA)
        • line 10: topTable(lm.bayesMA)
        • line 11: plvalues <- lm.bayesMA$p.value
        • line 12: qlvalues <- matrix(NA, nrow = nrow(plvalues), ncol = ncol(plvalues),
        • line 13: dimnames = dimnames(plvalues))
        • line 14: for (i in seq_len(ncol(plvalues))) {
        • line 15: tqs <- qvalue::qvalue(na.omit(plvalues[, i]))$qvalues
        • line 16: qlvalues[names(tqs), i] <- tqs
        • line 17: }
        • line 18: return(list(plvalues = plvalues, qlvalues = qlvalues, Sds = sqrt(lm.bayesMA$s2.post)))
      • in limma_unpaired
        • line 17: lm.bayes <- limma::eBayes(lm.contr)
        • line 18: topTable(lm.bayes)
        • line 19: plvalues <- lm.bayes$p.value
        • line 20: qlvalues <- matrix(NA, nrow = nrow(plvalues), ncol = ncol(plvalues),
        • line 21: dimnames = dimnames(plvalues))
        • line 22: for (i in seq_len(ncol(plvalues))) {
        • line 23: tqs <- qvalue::qvalue(na.omit(plvalues[, i]))$qvalues
        • line 24: qlvalues[names(tqs), i] <- tqs
        • line 25: }
        • line 26: return(list(plvalues = plvalues, qlvalues = qlvalues, Sds = sqrt(lm.bayes$s2.post)))
    • repetition in limma_unpaired, and MissingStatsDesign
      • in limma_unpaired
        • line 1: NumCond, NumReps, RRCateg)
        • line 2:{
        • line 3: Reps <- rep(seq_len(NumCond), NumReps)
        • line 4: NumComps <- ncol(RRCateg)
      • in MissingStatsDesign
        • line 1: RRCateg, NumCond, NumReps)
        • line 2:{
        • line 3: Reps <- rep(seq_len(NumCond), NumReps)
        • line 4: NumComps <- ncol(RRCateg)
    • repetition in MissingStats, and MissingStatsDesign
      • in MissingStats
        • line 11: tData <- Data[, Reps == vs]
        • line 12: trefData <- Data[, Reps == 1]
        • line 13: tCompDat <- cbind(tData, trefData)
        • line 14: qs <- quantile(tCompDat, probs = seq(0, 1, 0.01), na.rm = TRUE)
        • line 15: pvals <- statis <- matrix(NA, nrow(tCompDat), ncol = length(qs))
        • line 16: for (q in qs) {
        • line 17: tCompDat[tCompDat < q] <- NA
        • line 18: NAPDistr <- MissValPDistr(NumReps, sum(is.na(tCompDat))/(nrow(tCompDat) *
        • line 19: 2 * NumReps))
        • line 20: statis[, which(q == qs)] <- (rowSums(!is.na(tCompDat[,
        • line 21: seq_len(NumReps)])) - rowSums(!is.na(tCompDat[,
        • line 22: (NumReps + 1):(2 * NumReps)])))
        • line 23: pvals[, which(q == qs)] <- NAPDistr[abs(statis[,
        • line 24: which(q == qs)]) + 1]
        • line 25: }
        • line 26: pNAvalues[, vs - 1] <- rowMins(pvals) * (NumReps + 1)
        • line 27: qNAvalues[, vs - 1] <- p.adjust(pNAvalues[, vs - 1],
        • line 28: method = "BH")
        • line 29: }
        • line 30: pNAvalues[pNAvalues > 1] <- 1
        • line 31: return(list(pNAvalues = pNAvalues, qNAvalues = qNAvalues))
      • in MissingStatsDesign
        • line 12: tData <- Data[, Reps == RRCateg[2, vs]]
        • line 13: trefData <- Data[, Reps == RRCateg[1, vs]]
        • line 14: tCompDat <- cbind(tData, trefData)
        • line 15: qs <- quantile(tCompDat, probs = seq(0, 1, 0.01), na.rm = TRUE)
        • line 16: pvals <- statis <- matrix(NA, nrow(tCompDat), ncol = length(qs))
        • line 17: for (q in qs) {
        • line 18: tCompDat[tCompDat < q] <- NA
        • line 19: NAPDistr <- MissValPDistr(NumReps, sum(is.na(tCompDat))/(nrow(tCompDat) *
        • line 20: 2 * NumReps))
        • line 21: statis[, which(q == qs)] <- (rowSums(!is.na(tCompDat[,
        • line 22: seq_len(NumReps)])) - rowSums(!is.na(tCompDat[,
        • line 23: (NumReps + 1):(2 * NumReps)])))
        • line 24: pvals[, which(q == qs)] <- NAPDistr[abs(statis[,
        • line 25: which(q == qs)]) + 1]
        • line 26: }
        • line 27: pNAvalues[, vs] <- rowMins(pvals) * (NumReps + 1)
        • line 28: qNAvalues[, vs] <- p.adjust(pNAvalues[, vs], method = "BH")
        • line 30: }
        • line 31: close(pb)
        • line 32: pNAvalues[pNAvalues > 1] <- 1
        • line 33: return(list(pNAvalues = pNAvalues, qNAvalues = qNAvalues))
    • repetition in perm_unpaired, permtest_paired, rp_unpaired, ttest_unpaired, and rp_unpaired
      • in perm_unpaired
        • line 1: trefData)
        • line 2:{
        • line 3: if (ncol(tData) != ncol(trefData)) {
        • line 4: stop("The number of columns in the two datasets must be the same")
        • line 5: }
        • line 6: NumReps <- ncol(tData)
        • line 7: if (exists("NumPermCols")) {
        • line 8: NumPermCols <- NumPermCols
        • line 9: }
        • line 10: else {
        • line 11: NumPermCols <- 7
        • line 12: }
        • line 13: if (exists("NumTests")) {
        • line 14: NTests <- NumTests
        • line 15: }
        • line 16: else {
        • line 17: NTests <- 1000
        • line 18: }
        • line 21: na.rm = TRUE)
        • line 22: if (ncol(tData) * 2 < NumPermCols) {
        • line 23: AddDat <- matrix(sample(as.vector(unlist(tData)), (NumPermCols -
        • line 24: ncol(tData)) * nrow(tData), replace = TRUE), nrow = nrow(tData))
        • line 36: NumThreads <- get_numthreads()
        • line 37: cl <- makeCluster(NumThreads)
        • line 38: clusterExport(cl = cl, varlist = c("NumReps", "PermFullData",
        • line 39: "RPStats", "StatsForPermutTest"), envir = environment())
        • line 40: PermutOut <- parallel::parLapply(cl, seq_len(NTests), function(x) {
        • line 41: indat <- apply(PermFullData, 1, function(y) {
        • line 42: sample(y, NumReps * 2) * sample(c(1, -1), NumReps *
        • line 43: 2, replace = TRUE)
        • line 44: })
        • line 45: StatsForPermutTest(t(indat), FALSE)
        • line 46: })
        • line 47: stopCluster(cl)
        • line 48: PermutOut <- matrix(unlist(PermutOut), nrow = nrow(tData))
        • line 54: })
        • line 55: qPermutvalues <- rep(NA, length(pPermutvalues))
        • line 56: names(qPermutvalues) <- names(pPermutvalues)
        • line 57: tqs <- qvalue::qvalue(na.omit(pPermutvalues))$qvalues
        • line 58: qPermutvalues[names(tqs)] <- tqs
        • line 59: return(list(pPermutvalues = pPermutvalues, qPermutvalues = qPermutvalues))
      • in permtest_paired
        • line 1:{
        • line 2: NumReps <- ncol(tMAData)
        • line 3: if (exists("NumPermCols")) {
        • line 4: NumPermCols <- NumPermCols
        • line 5: }
        • line 6: else {
        • line 7: NumPermCols <- 7
        • line 8: }
        • line 9: if (exists("NumTests")) {
        • line 10: NTests <- NumTests
        • line 11: }
        • line 12: else {
        • line 13: NTests <- 1000
        • line 14: }
        • line 15: if (ncol(tMAData) < NumPermCols) {
        • line 16: AddDat <- matrix(sample(as.vector(tMAData), (NumPermCols -
        • line 17: ncol(tMAData)) * nrow(tMAData), replace = TRUE),
        • line 18: nrow = nrow(tMAData))
        • line 25: NumThreads <- get_numthreads()
        • line 26: cl <- parallel::makeCluster(NumThreads)
        • line 27: parallel::clusterExport(cl = cl, varlist = c("NumReps", "PermMAData",
        • line 28: "RPStats", "StatsForPermutTest"), envir = environment())
        • line 29: PermutOut <- parallel::parLapply(cl, seq_len(NTests), function(x) {
        • line 30: indat <- apply(PermMAData, 1, function(y) {
        • line 31: sample(y, NumReps) * sample(c(1, -1), NumReps, replace = TRUE)
        • line 32: })
        • line 33: StatsForPermutTest(t(indat), TRUE)
        • line 34: })
        • line 35: parallel::stopCluster(cl)
        • line 36: PermutOut <- matrix(unlist(PermutOut), nrow = nrow(tMAData))
        • line 39: })
        • line 40: qPermutvalues <- rep(NA, length(pPermutvalues))
        • line 41: names(qPermutvalues) <- names(pPermutvalues)
        • line 42: tqs <- p.adjust(na.omit(pPermutvalues), method = "BH")
        • line 43: qPermutvalues[names(tqs)] <- tqs
        • line 44: return(list(pPermutvalues = pPermutvalues, qPermutvalues = qPermutvalues))
      • in rp_unpaired
        • line 7: NumRPPairs <- 100
        • line 8: }
        • line 9: if (ncol(tData) != ncol(trefData)) {
        • line 10: stop("The number of columns in the two datasets must be the same")
        • line 11: }
        • line 12: NumReps <- ncol(tData)
      • in ttest_unpaired
        • line 1: trefData)
        • line 2:{
        • line 3: if (ncol(tData) != ncol(trefData)) {
        • line 4: stop("The number of columns in the two datasets must be the same")
        • line 5: }
      • in rp_unpaired
        • line 15: NumThreads <- get_numthreads()
        • line 16: cl <- parallel::makeCluster(NumThreads)
        • line 17: parallel::clusterExport(cl = cl, varlist = c("NumReps", "tData",
        • line 18: "trefData", "RPStats"), envir = environment())
    • repetition in plotExpression, and plotHeatmaply
      • in plotExpression
        • line 33: FCRegs <- filterFC(rdat, NumTests, NumComps, fclim)
        • line 34: SubSetQval <- Qvalue[sel_prots, , drop = FALSE]
        • line 35: SubSetLR <- LogRatios[sel_prots, , drop = FALSE]
        • line 36: SubSetLR <- SubSetLR[order(rowMins(SubSetQval[, seq_len(NumComps),
        • line 37: drop = FALSE], na.rm = TRUE)), , drop = FALSE]
        • line 41: tdat <- as.matrix(dat[rownames(SubSet), (rep(seq_len(NumReps),
        • line 42: NumCond) - 1) * NumCond + rep(seq_len(NumCond), each = NumReps),
        • line 43: drop = FALSE])
        • line 44: rownames(tdat) <- strtrim(rownames(tdat), 20)
      • in plotHeatmaply
        • line 18: NumReps <- metadata(fulldata)$NumReps
        • line 19: SubSetQval <- Qvalue[sel_prots, , drop = FALSE]
        • line 20: SubSetLR <- LogRatios[sel_prots, , drop = FALSE]
        • line 21: SubSetLR <- SubSetLR[order(rowMins(SubSetQval[, seq_len(NumComps),
        • line 22: drop = FALSE], na.rm = TRUE)), , drop = FALSE]
        • line 26: tdat <- dat[rownames(SubSetLR), (rep(seq_len(NumReps),
        • line 27: NumCond) - 1) * NumCond + rep(seq_len(NumCond),
        • line 28: each = NumReps), drop = FALSE]
        • line 29: rownames(tdat) <- strtrim(rownames(tdat), 30)
    • repetition in plotExpression, plotPvalueDistr, plotRegNumber, and plotVolcano
      • in plotExpression
        • line 5: check_for_polystest(fulldata)
        • line 6: rdat <- SummarizedExperiment::rowData(fulldata)
        • line 7: par(mfrow = c(1, 3))
        • line 8: testNames2 <- make.names(testNames)
        • line 9: testNames2 <- gsub("\.", "_", testNames2)
        • line 10: compNames <- check_stat_names(fulldata, compNames, testNames2)
        • line 11: NumComps <- length(compNames)
        • line 13: Qvalue <- as.matrix(rdat[, grep("^FDR_", colnames(rdat)),
        • line 14: drop = FALSE])
        • line 15: LogRatios <- as.matrix(rdat[, grep("^log_ratios_", colnames(rdat))],
        • line 16: drop = FALSE)
        • line 17: Qvalue <- Qvalue[, grep(paste(paste0("^FDR_", testNames2),
        • line 18: collapse = "|"), colnames(Qvalue)), drop = FALSE]
        • line 19: LogRatios <- LogRatios[, grep(paste(paste0("^log_ratios_",
        • line 20: compNames), collapse = "|"), colnames(LogRatios)), drop = FALSE]
        • line 21: Qvalue <- Qvalue[, grep(paste(paste0(compNames, "$"), collapse = "|"),
        • line 22: colnames(Qvalue)), drop = FALSE]
      • in plotPvalueDistr
        • line 6: check_for_polystest(fulldata)
        • line 7: testNames2 <- make.names(testNames)
        • line 8: testNames2 <- gsub("\.", "_", testNames2)
        • line 9: compNames <- check_stat_names(fulldata, compNames, testNames2)
        • line 10: message("Plotting p-values")
        • line 12: PValue <- as.matrix(rdat[, grep("^p_values_", colnames(rdat)),
        • line 13: drop = FALSE])
        • line 14: PValue <- PValue[, grep(paste(paste0("^p_values_", testNames2),
        • line 15: collapse = "|"), colnames(PValue)), drop = FALSE]
        • line 16: PValue <- PValue[, grep(paste(paste0(compNames, "$"), collapse = "|"),
        • line 17: colnames(PValue)), drop = FALSE]
        • line 18: NumTests <- length(testNames)
        • line 19: NumComps <- length(compNames)
      • in plotRegNumber
        • line 1: compNames = "all", testNames = c("PolySTest", "limma", "Miss Test",
        • line 2: "rank products", "permutation test", "t-test"), qlim = 0.05,
        • line 3: fclim = c(0, 0), TestCols = c("#33AAAA", "#33AA33", "#AA3333",
        • line 4: "#AA33AA", "#AAAA33", "#3333AA"), ...)
        • line 5:{
        • line 6: check_for_polystest(fulldata)
        • line 7: rdat <- SummarizedExperiment::rowData(fulldata)
        • line 8: testNames2 <- make.names(testNames)
        • line 9: testNames2 <- gsub("\.", "_", testNames2)
        • line 10: compNames <- check_stat_names(fulldata, compNames, testNames2)
        • line 11: QValue <- as.matrix(rdat[, grep("^FDR_", colnames(rdat)),
        • line 12: drop = FALSE])
        • line 13: LogRatios <- as.matrix(rdat[, grep("^log_ratios_", colnames(rdat)),
        • line 14: drop = FALSE])
        • line 15: QValue <- QValue[, grep(paste(paste0("^FDR_", testNames2),
        • line 16: collapse = "|"), colnames(QValue)), drop = FALSE]
        • line 17: LogRatios <- LogRatios[, grep(paste(paste0("^log_ratios_",
        • line 18: compNames), collapse = "|"), colnames(LogRatios)), drop = FALSE]
        • line 19: QValue <- QValue[, grep(paste(paste0(compNames, "$"), collapse = "|"),
        • line 20: colnames(QValue)), drop = FALSE]
        • line 21: NumTests <- length(testNames)
        • line 22: NumComps <- length(compNames)
      • in plotVolcano
        • line 1: compNames = "all", testNames = c("PolySTest", "limma", "Miss Test",
        • line 2: "rank products", "permutation test", "t-test"), sel_prots = "all",
        • line 3: qlim = 0.05, fclim = c(0, 0), testCols = c("#33AAAA", "#33AA33",
        • line 4: "#AA3333", "#AA33AA", "#AAAA33", "#3333AA"), ...)
        • line 5:{
        • line 6: check_for_polystest(fulldata)
        • line 7: rdat <- SummarizedExperiment::rowData(fulldata)
        • line 8: testNames2 <- make.names(testNames)
        • line 9: testNames2 <- gsub("\.", "_", testNames2)
        • line 10: compNames <- check_stat_names(fulldata, compNames, testNames2)
        • line 11: Qvalue <- as.matrix(rdat[, grep("^FDR_", colnames(rdat)),
        • line 12: drop = FALSE])
        • line 13: LogRatios <- as.matrix(rdat[, grep("^log_ratios_", colnames(rdat)),
        • line 14: drop = FALSE])
        • line 15: Qvalue <- Qvalue[, grep(paste(paste0("^FDR_", testNames2),
        • line 16: collapse = "|"), colnames(Qvalue)), drop = FALSE]
        • line 17: LogRatios <- LogRatios[, grep(paste(paste0("^log_ratios_",
        • line 18: compNames), collapse = "|"), colnames(LogRatios)), drop = FALSE]
        • line 19: Qvalue <- Qvalue[, grep(paste(paste0(compNames, "$"), collapse = "|"),
        • line 20: colnames(Qvalue)), drop = FALSE]
        • line 21: if (ncol(Qvalue) > 0) {
    • repetition in ttest_paired, and ttest_unpaired
      • in ttest_paired
        • line 6: names(ptvalues) <- rownames(tMAData)
        • line 7: tqs <- qvalue::qvalue(na.omit(ptvalues))$qvalues
        • line 8: qtvalues <- rep(NA, length(ptvalues))
        • line 9: names(qtvalues) <- names(ptvalues)
        • line 10: qtvalues[names(tqs)] <- tqs
        • line 11: return(list(ptvalues = ptvalues, qtvalues = qtvalues))
      • in ttest_unpaired
        • line 12: ptvalues <- tptvalues
        • line 13: tqs <- qvalue::qvalue(na.omit(ptvalues))$qvalues
        • line 14: qtvalues <- rep(NA, length(ptvalues))
        • line 15: names(qtvalues) <- names(ptvalues)
        • line 16: qtvalues[names(tqs)] <- tqs
        • line 17: return(list(ptvalues = ptvalues, qtvalues = qtvalues))

Documentation

  • [ ] Note: Vignette should use BiocStyle package for formatting.
    • rmd file vignettes/StatisticalTest.Rmd
  • [ ] Important: Vignette should have an Introduction section. Please add section title to introduction.
    • rmd file vignettes/StatisticalTest.Rmd
  • [ ] To avoid the '* NOTE: Consider adding runnable examples to man pages that document exported objects.' in BiocCheck, could you please add runnable examples to - prepare_output_data.Rd

jianhong avatar Jun 04 '24 14:06 jianhong

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

bioc-issue-bot avatar Jun 12 '24 19:06 bioc-issue-bot

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". 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): PolySTest_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 [email protected]:packages/PolySTest to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Jun 12 '24 19:06 bioc-issue-bot

Thank you for the thorough review. Below you find my comments and ticked parts.

Question: This package comes from a tool that has a version number large than 1. How can I continue from there without triggering an error?

The DESCRIPTION file

* [x]  Important: R version should be no less than 4.4

Done

The NAMESPACE file

* [x]  Important: Selective imports using `importFrom` instead of _import all_ with `import`.

Done

General package development

* [X]  NOTE: Provide 'URL', 'BugReports' field(s) in DESCRIPTION

Done

R code

* [X]  Important: No `paste` in `message()`, `message`, `stop`. Please move the `paste/0` outside.

Done

* [ ]  Important: `warning`, `message`, `stop` instead of `cat` and `print` outside of `show` methods.
  * In file R/HelperFuncs.R:
    
    * at line 726 found '    cat(knitr::kable(allComps), sep = "\n")'

The function shows an small table and I really want to use kable for that without having to make a separate function. This is why I kept this

* [ ]  NOTE: `::` is not suggested in source code unless you can make sure all the packages are imported. Some people think it is better to keep `::`. However, please be aware that you will need to manually double-check the imported items if you make any changes to the DESCRIPTION file during development. My suggestion is to remove one or two repetitions to trigger the dependency check.

I am not sure what I should do here, sorry.

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

Partly done. I am a bit conservative with this and prefer to keep for loops when there is no necessity for speeding up a certain calculation. This is why many of the for loops still are there.

* [X]  Important: Remove unused code.

Done

* [X]  Important: Please consider to add `drop=FALSE` to avoid the reduction of dimension for matrices and arrays. Ignore this if using datatable.

Done where it was necessary.

* [ ]  NOTE: Functional programming: code repetition.

Partly done where it seemed useful and not breaking the "narrative"

Documentation

* [X]  Note: Vignette should use `BiocStyle` package for formatting.

Done

* [X]  Important: Vignette should have an _Introduction_ section. Please add section title to introduction.

Done

* []  To avoid the '* NOTE: Consider adding runnable examples to man pages that document exported objects.' in BiocCheck, could you please add runnable examples to
  - prepare_output_data.Rd

As this function has too many inputs to provide a reasonable documentation, I made it a hidden function

veitveit avatar Jun 12 '24 19:06 veitveit

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

bioc-issue-bot avatar Jun 13 '24 06:06 bioc-issue-bot

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): PolySTest_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 [email protected]:packages/PolySTest to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Jun 13 '24 07:06 bioc-issue-bot

Package 'PolySTest' Review

Thank you for submitting your package to Bioconductor. The package passed check and build. 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

  • [ ] Important: no <<-. If you have trouble in this, just go back to for loop.
    • In file R/HelperFuncs.R:
      • at line 477 found ' Qvalue[, (t - 1) * NumCond + seq_len(NumCond)] <<- tvals'
      • at line 505 found ' localBestRegs <<- distr_mean'
      • at line 506 found ' localBestComb <<- c(fc, qlim)'
    • In file R/StatTestPaired.R:
      • at line 155 found ' colnames(p_values))] <<- res$pvals'
      • at line 157 found ' colnames(q_values))] <<- res$qvals'
      • at line 184 found ' colnames(p_values))[vs]] <<- res$pvals'
      • at line 186 found ' colnames(q_values))[vs]] <<- res$qvals'
    • In file R/StatTestUnpaired.R:
      • at line 138 found ' colnames(p_values))] <<- res$pvals'
      • at line 140 found ' colnames(q_values))] <<- res$qvals'
      • at line 167 found ' colnames(p_values))[vs]] <<- res$pvals'
      • at line 169 found ' colnames(q_values))[vs]] <<- res$qvals'
      • at line 367 found ' tpRPvalues[names(RPparOut[[p]]), p] <<- RPparOut[[p]]'
  • [ ] Important: No paste in message(), message, stop. Please move the paste/0 outside.
    • In file R/StatTestPaired.R:
      • at line 152 found ' message(paste("Running", test, "test"))'
      • at line 159 found ' message(paste(test, "completed"))'
    • In file R/StatTestUnpaired.R:
      • at line 135 found ' message(paste("Running", test, "tests"))'
      • at line 142 found ' message(paste(test, "completed"))'
  • [ ] Important: 1:n is not suggested in source code. Use seq_along, seq.int, seq_len instead.
    • In file R/HelperFuncs.R:
      • at line 102 found ' D <- vapply(0:d, function(i) sum(binTerms[1:(d-i+1)] * binTerms[(i+1):(d+1)]), numeric(1))'
    • In file R/StatTestUnpaired.R:
      • at line 234 found ' colnames(design)[RRCateg[2, 1:NumComps]],'
      • at line 236 found ' colnames(design)[RRCateg[1, 1:NumComps]],'
  • [ ] Important: Add content to the empty file R/global.R

jianhong avatar Jun 18 '24 14:06 jianhong

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

bioc-issue-bot avatar Jun 21 '24 09:06 bioc-issue-bot

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". 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: macOS 12.7.1 Monterey: PolySTest_0.99.4.tar.gz Linux (Ubuntu 22.04.3 LTS): PolySTest_0.99.4.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 [email protected]:packages/PolySTest to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Jun 21 '24 09:06 bioc-issue-bot

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

bioc-issue-bot avatar Jun 21 '24 10:06 bioc-issue-bot

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". 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): PolySTest_0.99.5.tar.gz macOS 12.7.1 Monterey: PolySTest_0.99.5.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 [email protected]:packages/PolySTest to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Jun 21 '24 10:06 bioc-issue-bot

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

bioc-issue-bot avatar Jun 21 '24 10:06 bioc-issue-bot

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): PolySTest_0.99.6.tar.gz macOS 12.7.1 Monterey: PolySTest_0.99.6.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 [email protected]:packages/PolySTest to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Jun 21 '24 10:06 bioc-issue-bot

Thank you again for the review @jianhong

I should have managed to solve all raised points with this new commit

veitveit avatar Jun 21 '24 11:06 veitveit

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.

bioc-issue-bot avatar Jul 08 '24 18:07 bioc-issue-bot

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/veitveit.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("PolySTest"). The package 'landing page' will be created at

https://bioconductor.org/packages/PolySTest

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 avatar Jul 16 '24 13:07 lshep