diff --git a/.gitignore b/.gitignore index bf6f5183..55d5eb60 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,10 @@ /Rpackage/iMRMC.Rcheck /Rpackage/iMRMC_1.2.1.tar.gz /Rpackage/iMRMC/man +/Rpackage/iMRMC/input.imrmc +/Rpackage/iMRMC/tests/testthat/Rplots.pdf +/iMRMC.Rproj +/Rpackage/iMRMC_1.2.2.tar.gz +/Rpackage/iMRMC_1.2.2.zip +/Rpackage/iMRMC_1.2.3.tar.gz +/Rpackage/iMRMC_1.2.3.zip diff --git a/README.md b/README.md index c9ba4aed..8303ce03 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

README for iMRMC and iRoeMetz

-Visit the release Page to download the programs. +Visit the release Page to download the software or access the repository [HERE](https://github.com/DIDSR/iMRMC). The documentation for both packages can be found here. @@ -15,6 +15,11 @@ Desc: The primary objective of the iMRMC application is to assist investigators * The core iMRMC application is a stand-alone, precompiled, license-free Java applications and the source code. It can be used in GUI mode or on the command line. * There is also an R package that utilizes the core Java application. Examples for using the programs can be found in the R help files. +Here are some ways to cite our work: +* Gallas, Brandon D., Andriy Bandos, Frank Samuelson, and Robert F. Wagner. “A Framework for Random-Effects ROC Analysis: Biases with the Bootstrap and Other Variance Estimators.” Commun Stat A-Theory 38, no. 15 (2009): 2586–2603. https://doi.org/10.1080/03610920802610084. +* Gallas, Brandon D. “One-Shot Estimate of MRMC Variance: AUC.” Acad Radiol 13, no. 3 (2006): 353–62. https://doi.org/10.1016/j.acra.2005.11.030. +* Gallas, Brandon D. IMRMC v4.0: Application for Analyzing and Sizing MRMC Reader Studies. Silver Spring, MD, 2017. https://github.com/DIDSR/iMRMC/releases, https://cran.r-project.org/web/packages/iMRMC/index.html. +
iRoeMetz
Desc: The iRoeMetz application can be used to simulate the reader scores for MRMC experiments via Monte Carlo methods given variance components of the ROC scores. The application also estimates the variance components of AUC and can calculate the variance components directly with numerical integration. The simulated experiments can be saved and used in MRMC variance analysis programs, such as iMRMC. The iRoeMetz application is a stand-alone, precompiled, license-free Java applications and the source code. @@ -23,4 +28,8 @@ Desc: The iRoeMetz application can be used to simulate the reader scores for MRM Desc: The R package iMRMC executes the iMRMC program which writes the results to the local files system, it reads the analysis results from the local file system, packs the analysis results into a list object, deletes the data and analysis results from the local file system, and returns the list object. +Here is one way to cite our work: +* Gallas, Brandon D., and Stephen L. Hillis. “Generalized Roe and Metz ROC Model: Analytic Link between Simulated Decision Scores and Empirical AUC Variances and Covariances.” J Med Img 1, no. 3 (2014): 031006. https://doi.org/doi:10.1117/1.JMI.1.3.031006. + [![Github All Releases](https://img.shields.io/github/downloads/DIDSR/iMRMC/total)]() + diff --git a/Rpackage/iMRMC/.Rbuildignore b/Rpackage/iMRMC/.Rbuildignore index 18d79179..05c4563b 100644 --- a/Rpackage/iMRMC/.Rbuildignore +++ b/Rpackage/iMRMC/.Rbuildignore @@ -6,3 +6,5 @@ ^imrmcDir$ ^README\.md$ ^futureVignettes$ +^README-submission-process\.md$ +^cran-check\.md$ diff --git a/Rpackage/iMRMC/DESCRIPTION b/Rpackage/iMRMC/DESCRIPTION index c0be2e97..af04252c 100644 --- a/Rpackage/iMRMC/DESCRIPTION +++ b/Rpackage/iMRMC/DESCRIPTION @@ -1,7 +1,7 @@ Package: iMRMC Type: Package Title: Multi-Reader, Multi-Case Analysis Methods (ROC, Agreement, and Other Metrics) -Version: 1.2.1 +Version: 1.2.3 Author: Brandon Gallas Maintainer: Brandon Gallas Description: @@ -23,7 +23,7 @@ License: CC0 Encoding: UTF-8 SystemRequirements: Java JDK 1.7 or higher LazyData: true -Depends: R (>= 2.10) +Depends: R (>= 3.5.0) RoxygenNote: 7.0.2 Imports: stats Suggests: testthat diff --git a/Rpackage/iMRMC/NEWS.md b/Rpackage/iMRMC/NEWS.md index 23f142d8..e50bbdd9 100644 --- a/Rpackage/iMRMC/NEWS.md +++ b/Rpackage/iMRMC/NEWS.md @@ -1 +1,3 @@ -Please refer to https://github.com/DIDSR/iMRMC/blob/master/UPDATES_Rpackage_iMRMC.md +# iMRMC + +Information on updates are managed here: https://github.com/DIDSR/iMRMC/blob/master/UPDATES_Rpackage_iMRMC.md \ No newline at end of file diff --git a/Rpackage/iMRMC/R/iMRMC.R b/Rpackage/iMRMC/R/iMRMC.R index 9852efae..fd8bce0e 100644 --- a/Rpackage/iMRMC/R/iMRMC.R +++ b/Rpackage/iMRMC/R/iMRMC.R @@ -116,31 +116,55 @@ doIMRMC <- function( iMRMCjarFullPath = NULL, stripDatesForTests = FALSE){ - if (is.null(workDir)) { - workDir <- normalizePath(tempdir()) + # If workDir is not specified, it will be the R temp directory. + # If workDir is specified, create it. + if (is.null(workDir)) + workDir <- normalizePath(tempdir(), winslash = "/") + else + dir.create(workDir, showWarnings = FALSE) + + # The inputFile will hold the data for the java program + inputFile <- file.path(workDir, "input.imrmc") + + # Check that data is provided + if (is.null(data) & is.null(fileName)) { + stop("You have not provided an input data frame or an input file.") + } + # Check that data is not provided twice. + if (!is.null(data) & !is.null(fileName)) { + stop("You cannot provide an input data frame AND an input file.") + } + + # If fileName is specified make sure it exists. + # Copy the fileName to the inputFile in the workDir. + if (!is.null(fileName)) { + if (!file.exists(fileName)) { + print(paste("fileName = ", fileName)) + stop("The full-path fileName provided does not exist.") + } + if (fileName == inputFile) { + print(paste("fileName = ", fileName)) + stop("fileName equals the name of the temp inputFile. This is not allowed.") + } + file.copy(fileName, inputFile) } - if (is.null(data)) { - if (is.null(fileName)) { - stop("ERROR: You have not provided an input data frame or an input file.") - } else { - flagWriteFile <- FALSE - } - } else { - if (!is.null(fileName)) { - stop("ERROR: You cannot provide and input data frame AND an input file.") - } - - flagWriteFile <- TRUE - fileName <- file.path(workDir, "input.imrmc") + # Check the input data and write it to the inputFile in the workDir + if (!is.null(data)) { - # Write data frame to iMRMC input file - writeLines("BEGIN DATA:", con = fileName) - utils::write.table(data, fileName, + # Check that the input data has key columns: readerID, caseID, modalityID, score + if (length(setdiff(c("readerID", "caseID", "modalityID", "score"), names(data)))) { + stop("The data frame does not include the key columns: readerID, caseID, modalityID, score.") + } + + # Write data frame to the inputFile + writeLines("BEGIN DATA:", con = inputFile) + utils::write.table(data[ , c("readerID", "caseID", "modalityID", "score")], inputFile, quote = FALSE, row.names = FALSE, col.names = FALSE, append = TRUE, sep = ", ") } + if (is.null(iMRMCjarFullPath)) { iMRMCjar <- "iMRMC-v4.0.3.jar" pkgPath <- path.package("iMRMC", quiet = FALSE) @@ -155,30 +179,39 @@ doIMRMC <- function( # Run iMRMC desc <- tryCatch( - + system2( "java", - args = c("-jar", - iMRMCjarFullPath, - fileName, - file.path(workDir, "imrmcDir")), - stdout = FALSE, stderr = TRUE), - + args = c( + "-jar", + iMRMCjarFullPath, + inputFile, + file.path(workDir, "imrmcDir") + ), + stdout = TRUE, stderr = TRUE + ), + warning = function(w) { cat("do_IMRMC WARNING\n") warning(w) }, + error = function(e) { cat("\ndoIMRMC ERROR\n") cat("One possible reason is that you don't have java.\n") cat("This software requires Java JDK 1.7 or higher.\n") stop(e) } - + ) + if (!file.exists(file.path(workDir, "imrmcDir", "AUCperReader.csv"))) { + cat(desc, sep = "\n") + stop() + } + # Retrieve the iMRMC results - perReader <- utils::read.csv(file.path(workDir, "imrmcDir", "AUCperReader.csv")) + perReader <- utils::read.csv(file.path(workDir, "imrmcDir", "AUCperReader.csv")) Ustat <- utils::read.csv(file.path(workDir, "imrmcDir", "statAnalysis.csv")) MLEstat <- utils::read.csv(file.path(workDir, "imrmcDir", "statAnalysisMLE.csv")) ROCraw <- utils::read.csv(file.path(workDir, "imrmcDir", "ROCcurves.csv"), @@ -211,13 +244,9 @@ doIMRMC <- function( } # Delete the content written to disk - if (workDir == normalizePath(tempdir())){ + if (workDir == normalizePath(tempdir(), winslash = "/")) { unlink(file.path(workDir, "imrmcDir"), recursive = TRUE) - - if (flagWriteFile) { - unlink(fileName) - } - + unlink(inputFile) } varDecomp <- list( diff --git a/Rpackage/iMRMC/R/limitsOfAgreement.R b/Rpackage/iMRMC/R/limitsOfAgreement.R index 634446e0..a25f366b 100644 --- a/Rpackage/iMRMC/R/limitsOfAgreement.R +++ b/Rpackage/iMRMC/R/limitsOfAgreement.R @@ -62,7 +62,7 @@ laWRBM <- function( result2 <- data.frame( meanDiff = meanDiff, var.MeanDiff = var.MeanDiff, var.1obs = var.1obs, ci95meanDiff.bot = ci95meanDiff.bot, ci95meanDiff.top = ci95meanDiff.top, - la.bot = la.bot, la.top = la.top ) + la.bot = la.bot, la.top = la.top, stringsAsFactors = TRUE) return(result2) @@ -156,7 +156,7 @@ laBRBM <- function( result2 <- data.frame( meanDiff = meanDiff, var.MeanDiff = var.MeanDiff, var.1obs = var.Ar1cminusBr2c, ci95meanDiff.bot = ci95meanDiff.bot, ci95meanDiff.top = ci95meanDiff.top, - la.bot = la.bot, la.top = la.top ) + la.bot = la.bot, la.top = la.top, stringsAsFactors = TRUE ) return(result2) diff --git a/Rpackage/iMRMC/R/simMRMC.R b/Rpackage/iMRMC/R/simMRMC.R index c15f783e..04da4a4b 100644 --- a/Rpackage/iMRMC/R/simMRMC.R +++ b/Rpackage/iMRMC/R/simMRMC.R @@ -125,7 +125,8 @@ simMRMC <- function(simMRMC.config) { readerID = readerID, caseID = caseID, modalityID = modalityID, - score = L_mu + L_cases + L_readers + L_reader.case + score = L_mu + L_cases + L_readers + L_reader.case, + stringsAsFactors = TRUE ) } @@ -256,7 +257,8 @@ sim.gRoeMetz <- function(config) { readerID = rep("-1", nC.neg + nC.pos), caseID = c(as.character(caseIDs.neg), as.character(caseIDs.pos)), modalityID = rep("truth", nC.neg + nC.pos), - score = c(rep(0, nC.neg), rep(1, nC.pos)) + score = c(rep(0, nC.neg), rep(1, nC.pos)), + stringsAsFactors = TRUE ) # Simulate the modality independent random effects, negative cases diff --git a/Rpackage/iMRMC/R/uStats.R b/Rpackage/iMRMC/R/uStats.R index 64ca2000..ca4c5a02 100644 --- a/Rpackage/iMRMC/R/uStats.R +++ b/Rpackage/iMRMC/R/uStats.R @@ -134,6 +134,13 @@ uStat11.jointD <- function( keyColumns = c("readerID", "caseID", "modalityID", "score") ) { + if (class(modalitiesToCompare) != "character") { + stop(paste( + "class(modalitiesToCompare) =", class(modalitiesToCompare), + "... The class should be character.") + ) + } + if (kernelFlag == 1) { if (length(modalitiesToCompare) != 2) { @@ -182,7 +189,7 @@ uStat11.jointD <- function( sumiD.A <- colSums(design.A) sumiD.B <- colSums(design.B) - meanPerR <- data.frame(sumiS.A / sumiD.A, sumiS.B / sumiD.B) + meanPerR <- data.frame(sumiS.A / sumiD.A, sumiS.B / sumiD.B, stringsAsFactors = TRUE) names(meanPerR) <- c(desc[1], desc[2]) # Declare the constituent parts of the variance decomposition @@ -192,7 +199,8 @@ uStat11.jointD <- function( c1r0 = c(0, 0, 0), c0r1 = c(0, 0, 0), c1r1 = c(0, 0, 0), - row.names = c("AB", "CD", "ABminusCD") + row.names = c("AB", "CD", "ABminusCD"), + stringsAsFactors = TRUE ) denom.biased <- numer.biased @@ -291,9 +299,9 @@ uStat11.jointD <- function( var.AminusB <- var.A + var.B - 2 * coeff[3, ] %*% moments[3, ] # Turn these matrices into data frames - moments <- data.frame(moments) + moments <- data.frame(moments, stringsAsFactors = TRUE) names(moments) <- names(numer.biased) - coeff <- data.frame(coeff) + coeff <- data.frame(coeff, stringsAsFactors = TRUE) names(coeff) <- names(numer.biased) mean <- c(mean.A, mean.B, mean.A - mean.B) @@ -303,7 +311,7 @@ uStat11.jointD <- function( var.1obs <- moments$c1r1 - moments$c0r0 var.1obs[3] <- var.1obs[1] + var.1obs[2] - 2 * var.1obs[3] names(var.1obs) <- desc - nCperR <- data.frame(sumiD.A, sumiD.B) + nCperR <- data.frame(sumiD.A, sumiD.B, stringsAsFactors = TRUE) names(nCperR) <- desc[1:2] #### Pack Results #### @@ -339,6 +347,13 @@ uStat11.conditionalD <- function( keyColumns = c("readerID", "caseID", "modalityID", "score") ) { + if (class(modalitiesToCompare) != "character") { + stop(paste( + "class(modalitiesToCompare) =", class(modalitiesToCompare), + "... The class should be character.") + ) + } + # Initialize kernel and design matrices #### if (kernelFlag == 1) { @@ -390,7 +405,7 @@ uStat11.conditionalD <- function( sumiS.A <- colSums(kernel.A) sumiS.B <- colSums(kernel.B) - meanPerR <- data.frame(sumiS.A / sumiD.A, sumiS.B / sumiD.B) + meanPerR <- data.frame(sumiS.A / sumiD.A, sumiS.B / sumiD.B, stringsAsFactors = TRUE) names(meanPerR) <- c(desc[1], desc[2]) # Reader weights for the reader-averged point estimate @@ -586,14 +601,16 @@ uStat11.conditionalD <- function( c0r0 = c(m.c0r0.AA, m.c0r0.BB, m.c0r0.AB), c0r1 = c(m.c0r1.AA, m.c0r1.BB, m.c0r1.AB), c1r0 = c(m.c1r0.AA, m.c1r0.BB, m.c1r0.AB), - c1r1 = c(m.c1r1.AA, m.c1r1.BB, m.c1r1.AB) + c1r1 = c(m.c1r1.AA, m.c1r1.BB, m.c1r1.AB), + stringsAsFactors = TRUE ) coeff <- data.frame( c0r0 = c(c.c0r0.AA, c.c0r0.BB, c.c0r0.AB), c0r1 = c(c.c0r1.AA, c.c0r1.BB, c.c0r1.AB), c1r0 = c(c.c1r0.AA, c.c1r0.BB, c.c1r0.AB), - c1r1 = c(c.c1r1.AA, c.c1r1.BB, c.c1r1.AB) + c1r1 = c(c.c1r1.AA, c.c1r1.BB, c.c1r1.AB), + stringsAsFactors = TRUE ) mean <- c(mean.A, mean.B, mean.A - mean.B) @@ -603,7 +620,7 @@ uStat11.conditionalD <- function( var.1obs <- moments$c1r1 - moments$c0r0 var.1obs[3] <- var.1obs[1] + var.1obs[2] - 2 * var.1obs[3] names(var.1obs) <- desc - nCperR <- data.frame(sumiD.A, sumiD.B) + nCperR <- data.frame(sumiD.A, sumiD.B, stringsAsFactors = TRUE) names(nCperR) <- desc[1:2] result <- list( @@ -650,7 +667,8 @@ uStat11.identity <- function( df <- data.frame(readerID = factor(df.input[[keyColumns[1]]]), caseID = factor(df.input[[keyColumns[[2]]]]), modalityID = factor(df.input[[keyColumns[[3]]]]), - score = df.input[[keyColumns[[4]]]] + score = df.input[[keyColumns[[4]]]], + stringsAsFactors = TRUE ) # Parse out data frames for each modality @@ -708,7 +726,8 @@ uStat11.diff <- function( df <- data.frame(readerID = factor(df.input[[keyColumns[1]]]), caseID = factor(df.input[[keyColumns[[2]]]]), modalityID = factor(df.input[[keyColumns[[3]]]]), - score = df.input[[keyColumns[[4]]]] + score = df.input[[keyColumns[[4]]]], + stringsAsFactors = TRUE ) # Parse out data frames for each modality diff --git a/Rpackage/iMRMC/R/utils.R b/Rpackage/iMRMC/R/utils.R index 922afd14..fbfae266 100644 --- a/Rpackage/iMRMC/R/utils.R +++ b/Rpackage/iMRMC/R/utils.R @@ -86,26 +86,30 @@ createIMRMCdf <- function( readerID = data0[ , readerID], caseID = data0[ , caseID], modalityID = data0[ , modalityID], - score = data0[ , score] + score = data0[ , score], + stringsAsFactors = TRUE ) data1 <- dFrame[dFrame[ , truth] == truePositiveFactor, ] data1 <- data.frame( readerID = data1[ , readerID], caseID = data1[ , caseID], modalityID = data1[ , modalityID], - score = data1[ , score] + score = data1[ , score], + stringsAsFactors = TRUE ) truth0 <- data.frame( readerID = "truth", caseID = droplevels(unique(data0$caseID)), modalityID = "truth", - score = 0 + score = 0, + stringsAsFactors = TRUE ) truth1 <- data.frame( readerID = "truth", caseID = droplevels(unique(data1$caseID)), modalityID = "truth", - score = 1 + score = 1, + stringsAsFactors = TRUE ) IMRMCdf <- droplevels(rbind(truth0, truth1, data0, data1)) IMRMCdf <- IMRMCdf[!is.na(IMRMCdf$score), ] @@ -344,7 +348,8 @@ extractPairedComparisonsBRBM <- function( readerID = data0[ , readerID], caseID = data0[ , caseID], modalityID = data0[ , modalityID], - score = data0[ , score] + score = data0[ , score], + stringsAsFactors = TRUE ) # Verify that the key columns exist @@ -384,7 +389,7 @@ extractPairedComparisonsBRBM <- function( } - return(data.frame(x = x, y = y)) + return(data.frame(x = x, y = y, stringsAsFactors = TRUE)) } @@ -426,7 +431,8 @@ extractPairedComparisonsWRBM <- function( readerID = data0[ , readerID], caseID = data0[ , caseID], modalityID = data0[ , modalityID], - score = data0[ , score] + score = data0[ , score], + stringsAsFactors = TRUE ) # Pool reader counts into a contingency table @@ -464,7 +470,7 @@ extractPairedComparisonsWRBM <- function( } - return(data.frame(x = x, y = y)) + return(data.frame(x = x, y = y, stringsAsFactors = TRUE)) } @@ -496,7 +502,7 @@ createGroups <- function(items, nG) { desc <- NULL for (i in 1:nG) desc <- c(desc, rep(paste("group", i, sep = ""), nPerG[i])) - readerGroups <- data.frame(items = items, desc = desc) + readerGroups <- data.frame(items = items, desc = desc, stringsAsFactors = TRUE) return(readerGroups) @@ -583,7 +589,8 @@ successDFtoROCdf <- function(df) { readerID = df$readerID, caseID = df$caseID, modalityID = df$modalityID, - score = df$score + score = df$score, + stringsAsFactors = TRUE ) # Create 5 fake signal-absent observations per reader nC0 <- 5 @@ -592,7 +599,8 @@ successDFtoROCdf <- function(df) { readerID = rep(levels(df$readerID), rep(nC0, nlevels(df$readerID))), caseID = rep(paste("fakeCase", 1:nC0, sep = ""), nC0), modalityID = rep("modalityA", nC0 * nlevels(df$readerID)), - score = rep(0.5, nC0 * nlevels(df$readerID)) + score = rep(0.5, nC0 * nlevels(df$readerID)), + stringsAsFactors = TRUE ), df.AUC ) @@ -602,7 +610,8 @@ successDFtoROCdf <- function(df) { readerID = rep("-1", nlevels(df$caseID)), caseID = levels(df$caseID), modalityID = rep("truth", nlevels(df$caseID)), - score = rep(1, nlevels(df$caseID)) + score = rep(1, nlevels(df$caseID)), + stringsAsFactors = TRUE ), df.AUC ) @@ -612,7 +621,8 @@ successDFtoROCdf <- function(df) { readerID = rep("-1", nC0), caseID = paste("fakeCase", 1:nC0, sep = ""), modalityID = rep("truth", nC0), - score = rep(0, nC0) + score = rep(0, nC0), + stringsAsFactors = TRUE ), df.AUC ) diff --git a/Rpackage/iMRMC/cran-check.md b/Rpackage/iMRMC/cran-check.md new file mode 100644 index 00000000..2ac8f9d8 --- /dev/null +++ b/Rpackage/iMRMC/cran-check.md @@ -0,0 +1,93 @@ +# General submission notes + +Download and install the current r-devel distribution. +* https://cran.r-project.org/bin/windows/base/rdevel.html +* Check version with "version" command in the console + +Tools->Global Options +* Change the R version to "[64-bit] C:\Program Files\R\R-devel" + +Build->Configure Build Tools +* Add "--as-cran" to "Check Package - R CMD check addtional options:" + +Fix errors, warnings, and notes + +Build source package + +Upload to https://cran.r-project.org/submit.html + +# Notes Submission 12/12/2020 + +## Prepare with +* devtools::spell_check() +* rhub::check_rhub() +* devtools::check_win_devel() + +## Submit with +``` +> devtools::release() +Have you checked for spelling errors (with `spell_check()`)? +1: Uhhhh... Maybe? +2: Of course +3: I forget + +Selection: 2 +Have you run `R CMD check` locally? +1: Absolutely +2: I forget +3: Nope + +Selection: 1 +── Running additional devtools checks for iMRMC ──────────────────────────────── +Checking version number has three components... OK +Checking dependencies don't rely on dev versions... OK +Checking NEWS.md is not ignored... OK +Checking NEWS.Rd does not exist... OK +Checking DESCRIPTION doesn't have Remotes field... OK +──────────────────────────────────────────────────────────────────────────────── +Were devtool's checks successful? +1: Definitely +2: I forget +3: Not yet + +Selection: 1 +Have you checked on R-hub (with `check_rhub()`)? +1: Of course +2: Nope +3: Not yet + +Selection: install.packages("rhub") +Enter an item from the menu, or 0 to exit +Selection: 1 +Have you checked on win-builder (with `check_win_devel()`)? +1: Definitely +2: Uhhhh... Maybe? +3: I forget + +Selection: 1 +Have you updated `NEWS.md` file? +1: Of course +2: Not yet +3: Uhhhh... Maybe? + +Selection: 1 +Have you updated `DESCRIPTION`? +1: Not yet +2: Absolutely +3: Nope + +Selection: 2 +Have you updated `cran-comments.md?` +1: I forget +2: Absolutely +3: No + +Selection: 2 +Is your email address Brandon.Gallas@fda.hhs.gov? +1: No +2: Yeah +3: Not yet + +Selection: 2 +Building +``` \ No newline at end of file diff --git a/Rpackage/iMRMC/cran-comments.md b/Rpackage/iMRMC/cran-comments.md index a2969d98..c9650392 100644 --- a/Rpackage/iMRMC/cran-comments.md +++ b/Rpackage/iMRMC/cran-comments.md @@ -1,3 +1,14 @@ +# Submission 20 Jan. 2020 + +iMRMC was recently archived because CRAN checks identified problems when an OS does not include correct java version. We solved this: +* Implemented error control on function that calls java. + The checks from R-devel now run without errors, warnings, or notes. + +## NOTE from check_win_devel() +There is one note about mis-spelled words. All are either names, acronyms that are defined, or the word "modalities", which is in most dictionaries. + +# Submission 12 Dec. 2017 + ## Test environments * devtools::build_win() on 12/12/2017 * Fedora 24, kernel 4.10.17, R 3.5.0.73808 (11/30/2017) diff --git a/Rpackage/iMRMC/data/roeMetzConfigs.rda b/Rpackage/iMRMC/data/roeMetzConfigs.rda index 01024362..b90371ec 100644 Binary files a/Rpackage/iMRMC/data/roeMetzConfigs.rda and b/Rpackage/iMRMC/data/roeMetzConfigs.rda differ diff --git a/Rpackage/iMRMC/futureVignettes/validate_laBRBM.R b/Rpackage/iMRMC/futureVignettes/validate_laBRBM.R index a803442f..aaf141b0 100644 --- a/Rpackage/iMRMC/futureVignettes/validate_laBRBM.R +++ b/Rpackage/iMRMC/futureVignettes/validate_laBRBM.R @@ -60,7 +60,8 @@ for (i in 1:nMC) { Ar2c1minusBr1c1 = Ar2c1 - Br1c1, # BRBM symmetric - Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1) + Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1), + stringsAsFactors = TRUE ) ) @@ -76,21 +77,21 @@ for (i in 1:nMC) { #### Summarize MC simulation #### # Take the mean and the variance of the observations, including WRBM differences -df.sim1obs.mcMean <- data.frame(t(colMeans(df.sim1obs))) +df.sim1obs.mcMean <- data.frame(t(colMeans(df.sim1obs)), stringsAsFactors = TRUE) names(df.sim1obs.mcMean) <- paste(names(df.sim1obs.mcMean), ".", "mcMean", sep = "") -df.sim1obs.mcVar <- data.frame(t(diag(cov(df.sim1obs)))) +df.sim1obs.mcVar <- data.frame(t(diag(cov(df.sim1obs))), stringsAsFactors = TRUE) names(df.sim1obs.mcVar) <- paste(names(df.sim1obs.mcVar), ".", "mcVar", sep = "") # Estimate the variance of the limits of aggreement from an MRMC data set -df.laBRBM.mcMean <- data.frame(t(colMeans(df.laBRBM, na.rm = TRUE))) +df.laBRBM.mcMean <- data.frame(t(colMeans(df.laBRBM, na.rm = TRUE)), stringsAsFactors = TRUE) names(df.laBRBM.mcMean) <- paste(names(df.laBRBM.mcMean), ".", "mcMean", sep = "") -df.laBRBM.mcVar <- data.frame(t(diag(cov(df.laBRBM, use = "complete")))) +df.laBRBM.mcVar <- data.frame(t(diag(cov(df.laBRBM, use = "complete"))), stringsAsFactors = TRUE) names(df.laBRBM.mcVar) <- paste(names(df.laBRBM.mcVar), ".", "mcVar", sep = "") #### Print Results #### # Print the number of MC trials and the experimental size of each MC trial print("") -desc <- data.frame(nMC = nMC, nR = simRoeMetz.config$nR, nC = simRoeMetz.config$nC.pos) +desc <- data.frame(nMC = nMC, nR = simRoeMetz.config$nR, nC = simRoeMetz.config$nC.pos, stringsAsFactors = TRUE) print(paste("nMC = ", nMC)) # Print the time to complete this MC simulation @@ -119,6 +120,7 @@ print(data.frame( MC.ci95meanDiff.bot = sort(df.laBRBM$meanDiff)[0.025*nMC], MC.ci95meanDiff.top = sort(df.laBRBM$meanDiff)[0.975*nMC], MC.la.bot = sort(df.sim1obs$Ar1c1minusBr2c1)[0.025*nMC], - MC.la.top = sort(df.sim1obs$Ar1c1minusBr2c1)[0.975*nMC] + MC.la.top = sort(df.sim1obs$Ar1c1minusBr2c1)[0.975*nMC], + stringsAsFactors = TRUE )) diff --git a/Rpackage/iMRMC/futureVignettes/validate_laBRWM.R b/Rpackage/iMRMC/futureVignettes/validate_laBRWM.R index fe4f5eae..21b03a20 100644 --- a/Rpackage/iMRMC/futureVignettes/validate_laBRWM.R +++ b/Rpackage/iMRMC/futureVignettes/validate_laBRWM.R @@ -60,7 +60,9 @@ for (i in 1:nMC) { Ar2c1minusBr1c1 = Ar2c1 - Br1c1, # BRBM symmetric - Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1) + Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1), + + stringsAsFactors = TRUE ) ) @@ -75,21 +77,21 @@ for (i in 1:nMC) { #### Summarize MC simulation #### # Take the mean and the variance of the observations, including WRBM differences -df.sim1obs.mcMean <- data.frame(t(colMeans(df.sim1obs))) +df.sim1obs.mcMean <- data.frame(t(colMeans(df.sim1obs)), stringsAsFactors = TRUE) names(df.sim1obs.mcMean) <- paste(names(df.sim1obs.mcMean), ".", "mcMean", sep = "") -df.sim1obs.mcVar <- data.frame(t(diag(cov(df.sim1obs)))) +df.sim1obs.mcVar <- data.frame(t(diag(cov(df.sim1obs))), stringsAsFactors = TRUE) names(df.sim1obs.mcVar) <- paste(names(df.sim1obs.mcVar), ".", "mcVar", sep = "") # Estimate the variance of the limits of aggreement from an MRMC data set -df.laBRWM.mcMean <- data.frame(t(colMeans(df.laBRWM))) +df.laBRWM.mcMean <- data.frame(t(colMeans(df.laBRWM)), stringsAsFactors = TRUE) names(df.laBRWM.mcMean) <- paste(names(df.laBRWM.mcMean), ".", "mcMean", sep = "") -df.laBRWM.mcVar <- data.frame(t(diag(cov(df.laBRWM)))) +df.laBRWM.mcVar <- data.frame(t(diag(cov(df.laBRWM))), stringsAsFactors = TRUE) names(df.laBRWM.mcVar) <- paste(names(df.laBRWM.mcVar), ".", "mcVar", sep = "") #### Print Results #### # Print the number of MC trials and the experimental size of each MC trial print("") -desc <- data.frame(nMC = nMC, nR = simRoeMetz.config$nR, nC = simRoeMetz.config$nC.pos) +desc <- data.frame(nMC = nMC, nR = simRoeMetz.config$nR, nC = simRoeMetz.config$nC.pos, stringsAsFactors = TRUE) print(paste("nMC = ", nMC)) print("") @@ -114,7 +116,8 @@ print(data.frame( MC.ci95meanDiff.bot = sort(df.laBRWM$meanDiff)[0.025*nMC], MC.ci95meanDiff.top = sort(df.laBRWM$meanDiff)[0.975*nMC], MC.la.bot = sort(df.sim1obs$Ar1c1minusAr2c1)[0.025*nMC], - MC.la.top = sort(df.sim1obs$Ar1c1minusAr2c1)[0.975*nMC] + MC.la.top = sort(df.sim1obs$Ar1c1minusAr2c1)[0.975*nMC], + stringsAsFactors = TRUE )) # Print the time to complete this MC simulation diff --git a/Rpackage/iMRMC/futureVignettes/validate_laWRBM.R b/Rpackage/iMRMC/futureVignettes/validate_laWRBM.R index 49453f28..0073d3fa 100644 --- a/Rpackage/iMRMC/futureVignettes/validate_laWRBM.R +++ b/Rpackage/iMRMC/futureVignettes/validate_laWRBM.R @@ -60,7 +60,8 @@ for (i in 1:nMC) { Ar2c1minusBr1c1 = Ar2c1 - Br1c1, # BRBM symmetric - Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1) + Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1), + stringsAsFactors = TRUE ) ) @@ -75,21 +76,21 @@ for (i in 1:nMC) { #### Summarize MC simulation #### # Take the mean and the variance of the observations, including WRBM differences -df.sim1obs.mcMean <- data.frame(t(colMeans(df.sim1obs))) +df.sim1obs.mcMean <- data.frame(t(colMeans(df.sim1obs)), stringsAsFactors = TRUE) names(df.sim1obs.mcMean) <- paste(names(df.sim1obs.mcMean), ".", "mcMean", sep = "") -df.sim1obs.mcVar <- data.frame(t(diag(cov(df.sim1obs)))) +df.sim1obs.mcVar <- data.frame(t(diag(cov(df.sim1obs))), stringsAsFactors = TRUE) names(df.sim1obs.mcVar) <- paste(names(df.sim1obs.mcVar), ".", "mcVar", sep = "") # Estimate the variance of the limits of aggreement from an MRMC data set -df.laWRBM.mcMean <- data.frame(t(colMeans(df.laWRBM))) +df.laWRBM.mcMean <- data.frame(t(colMeans(df.laWRBM)), stringsAsFactors = TRUE) names(df.laWRBM.mcMean) <- paste(names(df.laWRBM.mcMean), ".", "mcMean", sep = "") -df.laWRBM.mcVar <- data.frame(t(diag(cov(df.laWRBM)))) +df.laWRBM.mcVar <- data.frame(t(diag(cov(df.laWRBM))), stringsAsFactors = TRUE) names(df.laWRBM.mcVar) <- paste(names(df.laWRBM.mcVar), ".", "mcVar", sep = "") #### Print Results #### # Print the number of MC trials and the experimental size of each MC trial print("") -desc <- data.frame(nMC = nMC, nR = simRoeMetz.config$nR, nC = simRoeMetz.config$nC.pos) +desc <- data.frame(nMC = nMC, nR = simRoeMetz.config$nR, nC = simRoeMetz.config$nC.pos, stringsAsFactors = TRUE) print(paste("nMC = ", nMC)) print("") diff --git a/Rpackage/iMRMC/futureVignettes/validate_uStat11.R b/Rpackage/iMRMC/futureVignettes/validate_uStat11.R index a3892817..d8baafca 100644 --- a/Rpackage/iMRMC/futureVignettes/validate_uStat11.R +++ b/Rpackage/iMRMC/futureVignettes/validate_uStat11.R @@ -9,7 +9,7 @@ simRoeMetz.config$nC.neg <- 20 simRoeMetz.config$nC.pos <- 20 startTime <- proc.time()[1] -nMC <- 10000 +nMC <- 100 df.simMean <- data.frame() for (i in 1:nMC) { @@ -35,7 +35,8 @@ for (i in 1:nMC) { mean.ABminusCD = result$mean[3], var.AB = result$var[1], var.CD = result$var[2], - var.ABminusCD = result$var[3] + var.ABminusCD = result$var[3], + stringsAsFactors = TRUE ) ) diff --git a/Rpackage/iMRMC/futureVignettes/validate_uStat11_splitPlot.R b/Rpackage/iMRMC/futureVignettes/validate_uStat11_splitPlot.R index 9230dcd8..98aca789 100644 --- a/Rpackage/iMRMC/futureVignettes/validate_uStat11_splitPlot.R +++ b/Rpackage/iMRMC/futureVignettes/validate_uStat11_splitPlot.R @@ -89,7 +89,8 @@ for (i in 1:nMC) { Ar1c1minusBr2c1 = Ar1c1 - Br2c1, Ar2c1minusBr1c1 = Ar2c1 - Br1c1, - Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1) + Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1), + stringsAsFactors = TRUE ) ) @@ -123,7 +124,8 @@ for (i in 1:nMC) { # # Ar1c1minusBr2c1 = Ar1c1 - Br2c1, # Ar2c1minusBr1c1 = Ar2c1 - Br1c1, - # Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1) + # Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1), + # stringsAsFactors = TRUE # ) # ) @@ -136,7 +138,8 @@ for (i in 1:nMC) { df.uStat11.diff <- rbind( df.uStat11.diff, data.frame( - var.Ar1cminusBr1c = result11.diff$var.1obs[1] + var.Ar1cminusBr1c = result11.diff$var.1obs[1], + stringsAsFactors = TRUE ) ) @@ -181,7 +184,8 @@ for (i in 1:nMC) { var.Ar1cminusBr2c = var.Ar1cminusBr2c, - var.Ar1cminusBr2c.symmetric = var.Ar1cminusBr2c.symmetric + var.Ar1cminusBr2c.symmetric = var.Ar1cminusBr2c.symmetric, + stringsAsFactors = TRUE ) ) diff --git a/Rpackage/iMRMC/futureVignettes/validate_uStat11b.R b/Rpackage/iMRMC/futureVignettes/validate_uStat11b.R index c9e8bb1f..23b321f4 100644 --- a/Rpackage/iMRMC/futureVignettes/validate_uStat11b.R +++ b/Rpackage/iMRMC/futureVignettes/validate_uStat11b.R @@ -57,7 +57,8 @@ for (i in 1:nMC) { Ar1c1minusBr2c1 = Ar1c1 - Br2c1, Ar2c1minusBr1c1 = Ar2c1 - Br1c1, - Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1) + Ar1c1minusBr2c1.symmetric = 0.5 * (Ar1c1 - Br2c1 + Ar2c1 - Br1c1), + stringsAsFactors = TRUE ) ) @@ -70,7 +71,7 @@ for (i in 1:nMC) { df.uStat11.diff <- rbind( df.uStat11.diff, data.frame( - var.Ar1cminusBr1c = result11diff$var.1obs[1] + var.Ar1cminusBr1c = result11diff$var.1obs[1], stringsAsFactors = TRUE ) ) @@ -82,7 +83,7 @@ for (i in 1:nMC) { # df.uStat21 <- rbind( # df.uStat21, # data.frame( - # var.Ar1cminusBr2c.symmetric = result21$var.1obs[1] + # var.Ar1cminusBr2c.symmetric = result21$var.1obs[1], stringsAsFactors = TRUE # ) # ) @@ -127,7 +128,8 @@ for (i in 1:nMC) { var.Ar1cminusBr2c = var.Ar1cminusBr2c, - var.Ar1cminusBr2c.symmetric = var.Ar1cminusBr2c.symmetric + var.Ar1cminusBr2c.symmetric = var.Ar1cminusBr2c.symmetric, + stringsAsFactors = TRUE ) ) diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/H0gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H0gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/H0gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H0gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/H1gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H1gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/H1gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H1gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/H2gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H2gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/H2gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H2gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/H3gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H3gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/H3gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/H3gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/L0gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L0gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/L0gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L0gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/L1gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L1gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/L1gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L1gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/L2gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L2gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/L2gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L2gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/JMIconfigurations/L3gen0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L3gen0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/JMIconfigurations/L3gen0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/JMIconfigurations/L3gen0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/HH0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/HH0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/HH0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/HH0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/HH1p50_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/HH1p50_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/HH1p50_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/HH1p50_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/HH2p50_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/HH2p50_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/HH2p50_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/HH2p50_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/HL0p75_050n0_050n1_5r.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/HL0p75_050n0_050n1_5r.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/HL0p75_050n0_050n1_5r.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/HL0p75_050n0_050n1_5r.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/HL1p50_050n0_050n1_5r.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/HL1p50_050n0_050n1_5r.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/HL1p50_050n0_050n1_5r.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/HL1p50_050n0_050n1_5r.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/HL2p50_050n0_050n1_5r.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/HL2p50_050n0_050n1_5r.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/HL2p50_050n0_050n1_5r.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/HL2p50_050n0_050n1_5r.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/LH0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/LH0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/LH0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/LH0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/LH1p50_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/LH1p50_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/LH1p50_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/LH1p50_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/LH2p50_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/LH2p50_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/LH2p50_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/LH2p50_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/LL0p75_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/LL0p75_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/LL0p75_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/LL0p75_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/LL1p50_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/LL1p50_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/LL1p50_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/LL1p50_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/RMconfigurations/LL2p50_050n0_050n1_5nr.irm b/Rpackage/iMRMC/inst/data-raw/RMconfigurations/LL2p50_050n0_050n1_5nr.irm similarity index 100% rename from Rpackage/iMRMC/data-raw/RMconfigurations/LL2p50_050n0_050n1_5nr.irm rename to Rpackage/iMRMC/inst/data-raw/RMconfigurations/LL2p50_050n0_050n1_5nr.irm diff --git a/Rpackage/iMRMC/data-raw/createDFroeMetzConfigs.R b/Rpackage/iMRMC/inst/data-raw/createDFroeMetzConfigs.R similarity index 94% rename from Rpackage/iMRMC/data-raw/createDFroeMetzConfigs.R rename to Rpackage/iMRMC/inst/data-raw/createDFroeMetzConfigs.R index aabe4559..c85726e2 100644 --- a/Rpackage/iMRMC/data-raw/createDFroeMetzConfigs.R +++ b/Rpackage/iMRMC/inst/data-raw/createDFroeMetzConfigs.R @@ -1,64 +1,64 @@ -library(iMRMC) - -dirName <- file.path("inst", "data-raw", "RMconfigurations") -fileNames <- list.files(dirName) - -roeMetzConfigs <- data.frame() -for (i in 1:length(fileNames)) { - - fileName.i <- fileNames[[i]] - - df <- read.csv(file.path(dirName, fileName.i), header = FALSE) - temp <- matrix(unlist(strsplit(as.character(df$V1), ":")), - nrow = nrow(df), ncol = 2, byrow = TRUE) - parameters <- as.numeric(temp[ ,2]) - names(parameters) <- temp[ ,1] - - config <- data.frame(sim.gRoeMetz.config()) - - config$modalityID.A <- "testA" - config$modalityID.B <- "testB" - - config$nR <- parameters["nr"] - config$nC.neg <- parameters["n0"] - config$nC.pos <- parameters["n1"] - - config$mu.neg <- 0 - config$var_r.neg <- parameters["R0"] - config$var_c.neg <- parameters["C0"] - config$var_rc.neg <- parameters["RC0"] - - config$mu.pos <- 0 - config$var_r.pos <- parameters["R1"] - config$var_c.pos <- parameters["C1"] - config$var_rc.pos <- parameters["RC1"] - - config$mu.Aneg <- 0 - config$var_r.Aneg <- parameters["AR0"] - config$var_c.Aneg <- parameters["AC0"] - config$var_rc.Aneg <- parameters["ARC0"] - - config$mu.Apos <- parameters["uA"] - config$var_r.Apos <- parameters["AR1"] - config$var_c.Apos <- parameters["AC1"] - config$var_rc.Apos <- parameters["ARC1"] - - config$mu.Bneg <- 0 - config$var_r.Bneg <- parameters["BR0"] - config$var_c.Bneg <- parameters["BC0"] - config$var_rc.Bneg <- parameters["BRC0"] - - config$mu.Bpos <- parameters["uB"] - config$var_r.Bpos <- parameters["BR1"] - config$var_c.Bpos <- parameters["BC1"] - config$var_rc.Bpos <- parameters["BRC1"] - - roeMetzConfigs <- rbind(roeMetzConfigs, config) - -} - -temp <- matrix(unlist(strsplit(fileNames, ".", fixed = TRUE)), - nrow = length(fileNames), ncol = 2, byrow = TRUE) -rownames(roeMetzConfigs) <- temp[ , 1] - -usethis::use_data(roeMetzConfigs, overwrite = TRUE) +library(iMRMC) + +dirName <- file.path("inst", "data-raw", "RMconfigurations") +fileNames <- list.files(dirName) + +roeMetzConfigs <- data.frame() +for (i in 1:length(fileNames)) { + + fileName.i <- fileNames[[i]] + + df <- read.csv(file.path(dirName, fileName.i), header = FALSE) + temp <- matrix(unlist(strsplit(as.character(df$V1), ":")), + nrow = nrow(df), ncol = 2, byrow = TRUE) + parameters <- as.numeric(temp[ ,2]) + names(parameters) <- temp[ ,1] + + config <- data.frame(sim.gRoeMetz.config(), stringsAsFactors = TRUE) + + config$modalityID.A <- "testA" + config$modalityID.B <- "testB" + + config$nR <- parameters["nr"] + config$nC.neg <- parameters["n0"] + config$nC.pos <- parameters["n1"] + + config$mu.neg <- 0 + config$var_r.neg <- parameters["R0"] + config$var_c.neg <- parameters["C0"] + config$var_rc.neg <- parameters["RC0"] + + config$mu.pos <- 0 + config$var_r.pos <- parameters["R1"] + config$var_c.pos <- parameters["C1"] + config$var_rc.pos <- parameters["RC1"] + + config$mu.Aneg <- 0 + config$var_r.Aneg <- parameters["AR0"] + config$var_c.Aneg <- parameters["AC0"] + config$var_rc.Aneg <- parameters["ARC0"] + + config$mu.Apos <- parameters["uA"] + config$var_r.Apos <- parameters["AR1"] + config$var_c.Apos <- parameters["AC1"] + config$var_rc.Apos <- parameters["ARC1"] + + config$mu.Bneg <- 0 + config$var_r.Bneg <- parameters["BR0"] + config$var_c.Bneg <- parameters["BC0"] + config$var_rc.Bneg <- parameters["BRC0"] + + config$mu.Bpos <- parameters["uB"] + config$var_r.Bpos <- parameters["BR1"] + config$var_c.Bpos <- parameters["BC1"] + config$var_rc.Bpos <- parameters["BRC1"] + + roeMetzConfigs <- rbind(roeMetzConfigs, config) + +} + +temp <- matrix(unlist(strsplit(fileNames, ".", fixed = TRUE)), + nrow = length(fileNames), ncol = 2, byrow = TRUE) +rownames(roeMetzConfigs) <- temp[ , 1] + +usethis::use_data(roeMetzConfigs, overwrite = TRUE) diff --git a/Rpackage/iMRMC/tests/testthat/test_createANDundoIMRMCdf.R b/Rpackage/iMRMC/tests/testthat/test_createANDundoIMRMCdf.R index 13193854..4af26cad 100644 --- a/Rpackage/iMRMC/tests/testthat/test_createANDundoIMRMCdf.R +++ b/Rpackage/iMRMC/tests/testthat/test_createANDundoIMRMCdf.R @@ -47,6 +47,7 @@ result <- tryCatch( if (!names(result)[1] == "error") { # Recover the expected results + # Run "test_doIMRMC.R" with flagSave<-TRUE if it is necessary to recreate the expected results saveResult <- 0 fileName <- "test_doIMRMC.Rdata" if (!file.exists(fileName)) { diff --git a/Rpackage/iMRMC/tests/testthat/test_doIMRMC.Rdata b/Rpackage/iMRMC/tests/testthat/test_doIMRMC.Rdata index 9194838d..b801e1a4 100644 Binary files a/Rpackage/iMRMC/tests/testthat/test_doIMRMC.Rdata and b/Rpackage/iMRMC/tests/testthat/test_doIMRMC.Rdata differ diff --git a/Rpackage/iMRMC/tests/testthat/test_doIMRMCfromFile.R b/Rpackage/iMRMC/tests/testthat/test_doIMRMCfromFile.R index f0222be4..0171f244 100644 --- a/Rpackage/iMRMC/tests/testthat/test_doIMRMCfromFile.R +++ b/Rpackage/iMRMC/tests/testthat/test_doIMRMCfromFile.R @@ -33,6 +33,7 @@ result <- tryCatch( if (!names(result)[1] == "error") { # Recover the expected results + # Run "test_doIMRMC.R" with flagSave<-TRUE if it is necessary to recreate the expected results fileName <- "test_doIMRMC.Rdata" if (!file.exists(fileName)) { fileName <- file.path("tests", "testthat", fileName) diff --git a/Rpackage/iMRMC/tests/testthat/test_simRoeMetz.R b/Rpackage/iMRMC/tests/testthat/test_simRoeMetz.R index 12e369ad..44e227c5 100644 --- a/Rpackage/iMRMC/tests/testthat/test_simRoeMetz.R +++ b/Rpackage/iMRMC/tests/testthat/test_simRoeMetz.R @@ -27,6 +27,8 @@ cat("modality A mean shift, pos = ", mean(df.MRMC.Apos$score), "\n") cat("modality B mean shift, neg = ", mean(df.MRMC.Bneg$score), "\n") cat("modality B mean shift, pos = ", mean(df.MRMC.Bpos$score), "\n") +str(result) + #### TEST #### # Save the result to a file for future comparisons diff --git a/Rpackage/testCertificate.txt b/Rpackage/testCertificate.txt deleted file mode 100644 index c40b7212..00000000 --- a/Rpackage/testCertificate.txt +++ /dev/null @@ -1 +0,0 @@ -Push worked. Now test pull. Pull failed again. diff --git a/UPDATES_Rpackage_iMRMC.md b/UPDATES_Rpackage_iMRMC.md index a4254a42..135f4105 100644 --- a/UPDATES_Rpackage_iMRMC.md +++ b/UPDATES_Rpackage_iMRMC.md @@ -3,10 +3,22 @@

Version Under Development

... +

iMRMC_1.2.3

+*05/05/20* + +Improve error reporting to help end users identify incorrect format of iMRMC input data/file. + +

iMRMC_1.2.2

+*03/24/20* + +Update all calls to data.frame and read.table +* CRAN identified new potential issues. data.frame() and read.table() will use a stringsAsFactors = FALSE default. This change is planned to become the new default for the upcoming R 4.0.0. +

iMRMC_1.2.1

*01/20/20* Update iMRMC.R +* CRAN identified new errors from this function * This function calls a java app for the iMRMC engine using system2. This fails if a user does not have the correct version of java. system2 errors are not always managed as errors, some happen silently. diff --git a/bin/mrmc/chart/ROCCurvePlot$AverageSelectListener.class b/bin/mrmc/chart/ROCCurvePlot$AverageSelectListener.class index 37404042..1573c03c 100644 Binary files a/bin/mrmc/chart/ROCCurvePlot$AverageSelectListener.class and b/bin/mrmc/chart/ROCCurvePlot$AverageSelectListener.class differ diff --git a/bin/mrmc/chart/ROCCurvePlot$ReadersSelectListener.class b/bin/mrmc/chart/ROCCurvePlot$ReadersSelectListener.class index a3045df1..a9f4e0e7 100644 Binary files a/bin/mrmc/chart/ROCCurvePlot$ReadersSelectListener.class and b/bin/mrmc/chart/ROCCurvePlot$ReadersSelectListener.class differ diff --git a/bin/mrmc/chart/ROCCurvePlot$SeriesSelectListener.class b/bin/mrmc/chart/ROCCurvePlot$SeriesSelectListener.class index 1acb4670..52a8b699 100644 Binary files a/bin/mrmc/chart/ROCCurvePlot$SeriesSelectListener.class and b/bin/mrmc/chart/ROCCurvePlot$SeriesSelectListener.class differ diff --git a/bin/mrmc/chart/ROCCurvePlot$exportROCresult.class b/bin/mrmc/chart/ROCCurvePlot$exportROCresult.class index 6c6c8779..73734060 100644 Binary files a/bin/mrmc/chart/ROCCurvePlot$exportROCresult.class and b/bin/mrmc/chart/ROCCurvePlot$exportROCresult.class differ diff --git a/bin/mrmc/chart/ROCCurvePlot.class b/bin/mrmc/chart/ROCCurvePlot.class index ae68dc54..b7bd8181 100644 Binary files a/bin/mrmc/chart/ROCCurvePlot.class and b/bin/mrmc/chart/ROCCurvePlot.class differ diff --git a/bin/mrmc/chart/StudyDesignPlot$caseexportButtonListener.class b/bin/mrmc/chart/StudyDesignPlot$caseexportButtonListener.class index c96de668..fedaef9d 100644 Binary files a/bin/mrmc/chart/StudyDesignPlot$caseexportButtonListener.class and b/bin/mrmc/chart/StudyDesignPlot$caseexportButtonListener.class differ diff --git a/bin/mrmc/chart/StudyDesignPlot$indexrelationButtonListener.class b/bin/mrmc/chart/StudyDesignPlot$indexrelationButtonListener.class index ae0ed749..1f133956 100644 Binary files a/bin/mrmc/chart/StudyDesignPlot$indexrelationButtonListener.class and b/bin/mrmc/chart/StudyDesignPlot$indexrelationButtonListener.class differ diff --git a/bin/mrmc/chart/StudyDesignPlot$readerexportButtonListener.class b/bin/mrmc/chart/StudyDesignPlot$readerexportButtonListener.class index 0702b017..a8ed780c 100644 Binary files a/bin/mrmc/chart/StudyDesignPlot$readerexportButtonListener.class and b/bin/mrmc/chart/StudyDesignPlot$readerexportButtonListener.class differ diff --git a/bin/mrmc/chart/StudyDesignPlot.class b/bin/mrmc/chart/StudyDesignPlot.class index cd36b475..520dc270 100644 Binary files a/bin/mrmc/chart/StudyDesignPlot.class and b/bin/mrmc/chart/StudyDesignPlot.class differ diff --git a/bin/mrmc/core/CovMRMC.class b/bin/mrmc/core/CovMRMC.class index b98ed0f7..e0d51987 100644 Binary files a/bin/mrmc/core/CovMRMC.class and b/bin/mrmc/core/CovMRMC.class differ diff --git a/bin/mrmc/core/DBRecord.class b/bin/mrmc/core/DBRecord.class index 94eee313..fa9bdce4 100644 Binary files a/bin/mrmc/core/DBRecord.class and b/bin/mrmc/core/DBRecord.class differ diff --git a/bin/mrmc/core/InputFile.class b/bin/mrmc/core/InputFile.class index ad98d103..4e981909 100644 Binary files a/bin/mrmc/core/InputFile.class and b/bin/mrmc/core/InputFile.class differ diff --git a/bin/mrmc/core/MRMC.class b/bin/mrmc/core/MRMC.class index f3800801..b870fc1a 100644 Binary files a/bin/mrmc/core/MRMC.class and b/bin/mrmc/core/MRMC.class differ diff --git a/bin/mrmc/core/Matrix.class b/bin/mrmc/core/Matrix.class index 86b47523..bdd9fa3f 100644 Binary files a/bin/mrmc/core/Matrix.class and b/bin/mrmc/core/Matrix.class differ diff --git a/bin/mrmc/core/StatTest.class b/bin/mrmc/core/StatTest.class index 0b6d7731..befbd3dc 100644 Binary files a/bin/mrmc/core/StatTest.class and b/bin/mrmc/core/StatTest.class differ diff --git a/bin/mrmc/core/commandStartFunction.class b/bin/mrmc/core/commandStartFunction.class index e4370bb1..9d736f92 100644 Binary files a/bin/mrmc/core/commandStartFunction.class and b/bin/mrmc/core/commandStartFunction.class differ diff --git a/bin/mrmc/gui/GUImenubar$menuAboutListener.class b/bin/mrmc/gui/GUImenubar$menuAboutListener.class index 610e593b..5bbacf1e 100644 Binary files a/bin/mrmc/gui/GUImenubar$menuAboutListener.class and b/bin/mrmc/gui/GUImenubar$menuAboutListener.class differ diff --git a/bin/mrmc/gui/GUImenubar$menuIssueListener.class b/bin/mrmc/gui/GUImenubar$menuIssueListener.class index c5b7d2f4..463f6838 100644 Binary files a/bin/mrmc/gui/GUImenubar$menuIssueListener.class and b/bin/mrmc/gui/GUImenubar$menuIssueListener.class differ diff --git a/bin/mrmc/gui/GUImenubar$menuManualListener.class b/bin/mrmc/gui/GUImenubar$menuManualListener.class index 0d94e036..bd5925b0 100644 Binary files a/bin/mrmc/gui/GUImenubar$menuManualListener.class and b/bin/mrmc/gui/GUImenubar$menuManualListener.class differ diff --git a/bin/mrmc/gui/GUImenubar$menuRefListener.class b/bin/mrmc/gui/GUImenubar$menuRefListener.class index 4f7d66d6..6b4b2435 100644 Binary files a/bin/mrmc/gui/GUImenubar$menuRefListener.class and b/bin/mrmc/gui/GUImenubar$menuRefListener.class differ diff --git a/bin/mrmc/gui/GUImenubar.class b/bin/mrmc/gui/GUImenubar.class index 6541b913..cb0551a1 100644 Binary files a/bin/mrmc/gui/GUImenubar.class and b/bin/mrmc/gui/GUImenubar.class differ diff --git a/bin/mrmc/gui/GUInterface$MLESelListener.class b/bin/mrmc/gui/GUInterface$MLESelListener.class index e3fa725e..87055397 100644 Binary files a/bin/mrmc/gui/GUInterface$MLESelListener.class and b/bin/mrmc/gui/GUInterface$MLESelListener.class differ diff --git a/bin/mrmc/gui/GUInterface$ResetListener.class b/bin/mrmc/gui/GUInterface$ResetListener.class index 1134361d..a248895f 100644 Binary files a/bin/mrmc/gui/GUInterface$ResetListener.class and b/bin/mrmc/gui/GUInterface$ResetListener.class differ diff --git a/bin/mrmc/gui/GUInterface$SaveAllStatListener.class b/bin/mrmc/gui/GUInterface$SaveAllStatListener.class index 33d65692..76771721 100644 Binary files a/bin/mrmc/gui/GUInterface$SaveAllStatListener.class and b/bin/mrmc/gui/GUInterface$SaveAllStatListener.class differ diff --git a/bin/mrmc/gui/GUInterface$SaveGUISizeListener.class b/bin/mrmc/gui/GUInterface$SaveGUISizeListener.class index c3e949d0..7d5d0497 100644 Binary files a/bin/mrmc/gui/GUInterface$SaveGUISizeListener.class and b/bin/mrmc/gui/GUInterface$SaveGUISizeListener.class differ diff --git a/bin/mrmc/gui/GUInterface$SaveStatAnalysisButtonListener.class b/bin/mrmc/gui/GUInterface$SaveStatAnalysisButtonListener.class index a9868bd2..f1219b44 100644 Binary files a/bin/mrmc/gui/GUInterface$SaveStatAnalysisButtonListener.class and b/bin/mrmc/gui/GUInterface$SaveStatAnalysisButtonListener.class differ diff --git a/bin/mrmc/gui/GUInterface$SummarySelListener.class b/bin/mrmc/gui/GUInterface$SummarySelListener.class index d76ec388..740ccea6 100644 Binary files a/bin/mrmc/gui/GUInterface$SummarySelListener.class and b/bin/mrmc/gui/GUInterface$SummarySelListener.class differ diff --git a/bin/mrmc/gui/GUInterface$dbActionListener.class b/bin/mrmc/gui/GUInterface$dbActionListener.class index e921be23..cd745c24 100644 Binary files a/bin/mrmc/gui/GUInterface$dbActionListener.class and b/bin/mrmc/gui/GUInterface$dbActionListener.class differ diff --git a/bin/mrmc/gui/GUInterface$descButtonListener.class b/bin/mrmc/gui/GUInterface$descButtonListener.class index 8d9cc891..abb9db8c 100644 Binary files a/bin/mrmc/gui/GUInterface$descButtonListener.class and b/bin/mrmc/gui/GUInterface$descButtonListener.class differ diff --git a/bin/mrmc/gui/GUInterface$inputModListener.class b/bin/mrmc/gui/GUInterface$inputModListener.class index 6b3d3622..f674e4fa 100644 Binary files a/bin/mrmc/gui/GUInterface$inputModListener.class and b/bin/mrmc/gui/GUInterface$inputModListener.class differ diff --git a/bin/mrmc/gui/GUInterface.class b/bin/mrmc/gui/GUInterface.class index 2adfe2bb..5a58aecd 100644 Binary files a/bin/mrmc/gui/GUInterface.class and b/bin/mrmc/gui/GUInterface.class differ diff --git a/bin/mrmc/gui/InputFileCard$ModalitySelectListener.class b/bin/mrmc/gui/InputFileCard$ModalitySelectListener.class index 4fa39801..6cc6c6d9 100644 Binary files a/bin/mrmc/gui/InputFileCard$ModalitySelectListener.class and b/bin/mrmc/gui/InputFileCard$ModalitySelectListener.class differ diff --git a/bin/mrmc/gui/InputFileCard$ROCButtonListener.class b/bin/mrmc/gui/InputFileCard$ROCButtonListener.class index 98b8ea36..defa4b99 100644 Binary files a/bin/mrmc/gui/InputFileCard$ROCButtonListener.class and b/bin/mrmc/gui/InputFileCard$ROCButtonListener.class differ diff --git a/bin/mrmc/gui/InputFileCard$ReadersCasesButtonListener.class b/bin/mrmc/gui/InputFileCard$ReadersCasesButtonListener.class index 2efadfb3..74240ab1 100644 Binary files a/bin/mrmc/gui/InputFileCard$ReadersCasesButtonListener.class and b/bin/mrmc/gui/InputFileCard$ReadersCasesButtonListener.class differ diff --git a/bin/mrmc/gui/InputFileCard$UseMLEListener.class b/bin/mrmc/gui/InputFileCard$UseMLEListener.class index aed3530c..3a966bdc 100644 Binary files a/bin/mrmc/gui/InputFileCard$UseMLEListener.class and b/bin/mrmc/gui/InputFileCard$UseMLEListener.class differ diff --git a/bin/mrmc/gui/InputFileCard$brwsButtonListener.class b/bin/mrmc/gui/InputFileCard$brwsButtonListener.class index 62343a92..ee43e78b 100644 Binary files a/bin/mrmc/gui/InputFileCard$brwsButtonListener.class and b/bin/mrmc/gui/InputFileCard$brwsButtonListener.class differ diff --git a/bin/mrmc/gui/InputFileCard$designButtonListener.class b/bin/mrmc/gui/InputFileCard$designButtonListener.class index 08fd234b..8f469f78 100644 Binary files a/bin/mrmc/gui/InputFileCard$designButtonListener.class and b/bin/mrmc/gui/InputFileCard$designButtonListener.class differ diff --git a/bin/mrmc/gui/InputFileCard$exportreaderresult.class b/bin/mrmc/gui/InputFileCard$exportreaderresult.class index e067cbb6..89b99b8d 100644 Binary files a/bin/mrmc/gui/InputFileCard$exportreaderresult.class and b/bin/mrmc/gui/InputFileCard$exportreaderresult.class differ diff --git a/bin/mrmc/gui/InputFileCard$showAUCsButtonListener.class b/bin/mrmc/gui/InputFileCard$showAUCsButtonListener.class index 3068efb7..3e1d8b8d 100644 Binary files a/bin/mrmc/gui/InputFileCard$showAUCsButtonListener.class and b/bin/mrmc/gui/InputFileCard$showAUCsButtonListener.class differ diff --git a/bin/mrmc/gui/InputFileCard$varAnalysisListener.class b/bin/mrmc/gui/InputFileCard$varAnalysisListener.class index 6bd2e05e..17eb2283 100644 Binary files a/bin/mrmc/gui/InputFileCard$varAnalysisListener.class and b/bin/mrmc/gui/InputFileCard$varAnalysisListener.class differ diff --git a/bin/mrmc/gui/InputFileCard.class b/bin/mrmc/gui/InputFileCard.class index 6d64690d..16c030a5 100644 Binary files a/bin/mrmc/gui/InputFileCard.class and b/bin/mrmc/gui/InputFileCard.class differ diff --git a/bin/mrmc/gui/ManualCard$VarAnalysisBtnListener.class b/bin/mrmc/gui/ManualCard$VarAnalysisBtnListener.class index 8b4ada5e..812d8522 100644 Binary files a/bin/mrmc/gui/ManualCard$VarAnalysisBtnListener.class and b/bin/mrmc/gui/ManualCard$VarAnalysisBtnListener.class differ diff --git a/bin/mrmc/gui/ManualCard$comSelListener.class b/bin/mrmc/gui/ManualCard$comSelListener.class index 7c9b1e54..28227fdc 100644 Binary files a/bin/mrmc/gui/ManualCard$comSelListener.class and b/bin/mrmc/gui/ManualCard$comSelListener.class differ diff --git a/bin/mrmc/gui/ManualCard$modSelListener.class b/bin/mrmc/gui/ManualCard$modSelListener.class index db1ddcb8..7f4848be 100644 Binary files a/bin/mrmc/gui/ManualCard$modSelListener.class and b/bin/mrmc/gui/ManualCard$modSelListener.class differ diff --git a/bin/mrmc/gui/ManualCard.class b/bin/mrmc/gui/ManualCard.class index 2ca2b6cc..2d2f1a5d 100644 Binary files a/bin/mrmc/gui/ManualCard.class and b/bin/mrmc/gui/ManualCard.class differ diff --git a/bin/mrmc/gui/RowHeaderRenderer.class b/bin/mrmc/gui/RowHeaderRenderer.class index f2a4b8e7..2786cc0f 100644 Binary files a/bin/mrmc/gui/RowHeaderRenderer.class and b/bin/mrmc/gui/RowHeaderRenderer.class differ diff --git a/bin/mrmc/gui/SizePanel$NumSplitPlotsListener.class b/bin/mrmc/gui/SizePanel$NumSplitPlotsListener.class index d971514b..397035c6 100644 Binary files a/bin/mrmc/gui/SizePanel$NumSplitPlotsListener.class and b/bin/mrmc/gui/SizePanel$NumSplitPlotsListener.class differ diff --git a/bin/mrmc/gui/SizePanel$PairedDListener.class b/bin/mrmc/gui/SizePanel$PairedDListener.class index aa38646a..ac3f2535 100644 Binary files a/bin/mrmc/gui/SizePanel$PairedDListener.class and b/bin/mrmc/gui/SizePanel$PairedDListener.class differ diff --git a/bin/mrmc/gui/SizePanel$PairedNListener.class b/bin/mrmc/gui/SizePanel$PairedNListener.class index 9c9ea5d5..472e6a9d 100644 Binary files a/bin/mrmc/gui/SizePanel$PairedNListener.class and b/bin/mrmc/gui/SizePanel$PairedNListener.class differ diff --git a/bin/mrmc/gui/SizePanel$PairedRListener.class b/bin/mrmc/gui/SizePanel$PairedRListener.class index 1963087a..04777135 100644 Binary files a/bin/mrmc/gui/SizePanel$PairedRListener.class and b/bin/mrmc/gui/SizePanel$PairedRListener.class differ diff --git a/bin/mrmc/gui/SizePanel$SizeHillisButtonListener.class b/bin/mrmc/gui/SizePanel$SizeHillisButtonListener.class index d305a790..e92c08cf 100644 Binary files a/bin/mrmc/gui/SizePanel$SizeHillisButtonListener.class and b/bin/mrmc/gui/SizePanel$SizeHillisButtonListener.class differ diff --git a/bin/mrmc/gui/SizePanel$SizeMLEListener.class b/bin/mrmc/gui/SizePanel$SizeMLEListener.class index 7a04c1e7..3b5fbcfb 100644 Binary files a/bin/mrmc/gui/SizePanel$SizeMLEListener.class and b/bin/mrmc/gui/SizePanel$SizeMLEListener.class differ diff --git a/bin/mrmc/gui/SizePanel$fullyTrialListener.class b/bin/mrmc/gui/SizePanel$fullyTrialListener.class index 811edc32..fec51edd 100644 Binary files a/bin/mrmc/gui/SizePanel$fullyTrialListener.class and b/bin/mrmc/gui/SizePanel$fullyTrialListener.class differ diff --git a/bin/mrmc/gui/SizePanel$sizeTrialListener.class b/bin/mrmc/gui/SizePanel$sizeTrialListener.class index 970084e5..0be809f3 100644 Binary files a/bin/mrmc/gui/SizePanel$sizeTrialListener.class and b/bin/mrmc/gui/SizePanel$sizeTrialListener.class differ diff --git a/bin/mrmc/gui/SizePanel.class b/bin/mrmc/gui/SizePanel.class index d9475681..7d8329f1 100644 Binary files a/bin/mrmc/gui/SizePanel.class and b/bin/mrmc/gui/SizePanel.class differ diff --git a/bin/mrmc/gui/StatPanel$DecimalFormatRenderer.class b/bin/mrmc/gui/StatPanel$DecimalFormatRenderer.class index e9a98941..5beb119d 100644 Binary files a/bin/mrmc/gui/StatPanel$DecimalFormatRenderer.class and b/bin/mrmc/gui/StatPanel$DecimalFormatRenderer.class differ diff --git a/bin/mrmc/gui/StatPanel$StatHillisButtonListener.class b/bin/mrmc/gui/StatPanel$StatHillisButtonListener.class index 970f1b50..200e2e7a 100644 Binary files a/bin/mrmc/gui/StatPanel$StatHillisButtonListener.class and b/bin/mrmc/gui/StatPanel$StatHillisButtonListener.class differ diff --git a/bin/mrmc/gui/StatPanel$showVarComponent.class b/bin/mrmc/gui/StatPanel$showVarComponent.class index ace2e782..3499696e 100644 Binary files a/bin/mrmc/gui/StatPanel$showVarComponent.class and b/bin/mrmc/gui/StatPanel$showVarComponent.class differ diff --git a/bin/mrmc/gui/StatPanel.class b/bin/mrmc/gui/StatPanel.class index f7069648..d21bc4de 100644 Binary files a/bin/mrmc/gui/StatPanel.class and b/bin/mrmc/gui/StatPanel.class differ diff --git a/bin/roemetz/core/SimRoeMetz.class b/bin/roemetz/core/SimRoeMetz.class index 64ba7ac6..95bb678c 100644 Binary files a/bin/roemetz/core/SimRoeMetz.class and b/bin/roemetz/core/SimRoeMetz.class differ diff --git a/bin/roemetz/core/validateFunction.class b/bin/roemetz/core/validateFunction.class index 215d4dea..020e22c2 100644 Binary files a/bin/roemetz/core/validateFunction.class and b/bin/roemetz/core/validateFunction.class differ diff --git a/bin/roemetz/gui/RMGUInterface$CalculateCofV.class b/bin/roemetz/gui/RMGUInterface$CalculateCofV.class index db3ed348..d3bc4b2b 100644 Binary files a/bin/roemetz/gui/RMGUInterface$CalculateCofV.class and b/bin/roemetz/gui/RMGUInterface$CalculateCofV.class differ diff --git a/bin/roemetz/gui/RMGUInterface$ClearBtnListener.class b/bin/roemetz/gui/RMGUInterface$ClearBtnListener.class index 182a6aa7..b3c3ffb2 100644 Binary files a/bin/roemetz/gui/RMGUInterface$ClearBtnListener.class and b/bin/roemetz/gui/RMGUInterface$ClearBtnListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener$1.class b/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener$1.class index f3d5aa87..71f2fefe 100644 Binary files a/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener$1.class and b/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener$1.class differ diff --git a/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener.class b/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener.class index 2d552d47..26338c61 100644 Binary files a/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener.class and b/bin/roemetz/gui/RMGUInterface$DoNumericalIntegrationBtnListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$1.class b/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$1.class index 36768df6..6fb86a10 100644 Binary files a/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$1.class and b/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$1.class differ diff --git a/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$ModSimListener.class b/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$ModSimListener.class index be814472..945071ee 100644 Binary files a/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$ModSimListener.class and b/bin/roemetz/gui/RMGUInterface$DoSimBtnListener$ModSimListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$DoSimBtnListener.class b/bin/roemetz/gui/RMGUInterface$DoSimBtnListener.class index 109b20a9..fae08d11 100644 Binary files a/bin/roemetz/gui/RMGUInterface$DoSimBtnListener.class and b/bin/roemetz/gui/RMGUInterface$DoSimBtnListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$PopFromFileListener.class b/bin/roemetz/gui/RMGUInterface$PopFromFileListener.class index fcb74a33..2d456899 100644 Binary files a/bin/roemetz/gui/RMGUInterface$PopFromFileListener.class and b/bin/roemetz/gui/RMGUInterface$PopFromFileListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$SaveFieldsListener.class b/bin/roemetz/gui/RMGUInterface$SaveFieldsListener.class index 1ba22da3..aef1776c 100644 Binary files a/bin/roemetz/gui/RMGUInterface$SaveFieldsListener.class and b/bin/roemetz/gui/RMGUInterface$SaveFieldsListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$SaveSimulationListener.class b/bin/roemetz/gui/RMGUInterface$SaveSimulationListener.class index 0b278198..444ac1c4 100644 Binary files a/bin/roemetz/gui/RMGUInterface$SaveSimulationListener.class and b/bin/roemetz/gui/RMGUInterface$SaveSimulationListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$SeedInputListener.class b/bin/roemetz/gui/RMGUInterface$SeedInputListener.class index 5c45c7a5..8864ef1d 100644 Binary files a/bin/roemetz/gui/RMGUInterface$SeedInputListener.class and b/bin/roemetz/gui/RMGUInterface$SeedInputListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$SimExperiments_thread.class b/bin/roemetz/gui/RMGUInterface$SimExperiments_thread.class index 6848d6e0..691294e6 100644 Binary files a/bin/roemetz/gui/RMGUInterface$SimExperiments_thread.class and b/bin/roemetz/gui/RMGUInterface$SimExperiments_thread.class differ diff --git a/bin/roemetz/gui/RMGUInterface$UseMLEListener.class b/bin/roemetz/gui/RMGUInterface$UseMLEListener.class index a2b8e9bc..1bf89203 100644 Binary files a/bin/roemetz/gui/RMGUInterface$UseMLEListener.class and b/bin/roemetz/gui/RMGUInterface$UseMLEListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface$analysisExportListener.class b/bin/roemetz/gui/RMGUInterface$analysisExportListener.class index c55eb08a..d4d69d39 100644 Binary files a/bin/roemetz/gui/RMGUInterface$analysisExportListener.class and b/bin/roemetz/gui/RMGUInterface$analysisExportListener.class differ diff --git a/bin/roemetz/gui/RMGUInterface.class b/bin/roemetz/gui/RMGUInterface.class index 30091431..0df41400 100644 Binary files a/bin/roemetz/gui/RMGUInterface.class and b/bin/roemetz/gui/RMGUInterface.class differ diff --git a/src/mrmc/chart/ROCCurvePlot.java b/src/mrmc/chart/ROCCurvePlot.java index 2390c4e1..e10c56d1 100644 --- a/src/mrmc/chart/ROCCurvePlot.java +++ b/src/mrmc/chart/ROCCurvePlot.java @@ -43,6 +43,7 @@ * curve is determined, creating a "pooled average" * * @author Rohan Pathare + * @author Qi Gong */ public class ROCCurvePlot extends JFrame { diff --git a/src/mrmc/chart/StudyDesignPlot.java b/src/mrmc/chart/StudyDesignPlot.java index 0c9af19d..ef422fd5 100644 --- a/src/mrmc/chart/StudyDesignPlot.java +++ b/src/mrmc/chart/StudyDesignPlot.java @@ -39,6 +39,7 @@ * combination at a given modality * * @author Rohan Pathare + * @author Qi Gong */ public class StudyDesignPlot extends JFrame { diff --git a/src/mrmc/core/CovMRMC.java b/src/mrmc/core/CovMRMC.java index 8c7c2bed..d0c234de 100644 --- a/src/mrmc/core/CovMRMC.java +++ b/src/mrmc/core/CovMRMC.java @@ -23,6 +23,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class CovMRMC { diff --git a/src/mrmc/core/DBRecord.java b/src/mrmc/core/DBRecord.java index 7a9dff03..9cb1f69b 100644 --- a/src/mrmc/core/DBRecord.java +++ b/src/mrmc/core/DBRecord.java @@ -46,6 +46,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class DBRecord { diff --git a/src/mrmc/core/MRMC.java b/src/mrmc/core/MRMC.java index a97833cb..de408dc6 100644 --- a/src/mrmc/core/MRMC.java +++ b/src/mrmc/core/MRMC.java @@ -15,6 +15,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class MRMC extends JApplet { /** diff --git a/src/mrmc/core/Matrix.java b/src/mrmc/core/Matrix.java index fa1328a6..e92c46c8 100644 --- a/src/mrmc/core/Matrix.java +++ b/src/mrmc/core/Matrix.java @@ -8,6 +8,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class Matrix { diff --git a/src/mrmc/core/StatTest.java b/src/mrmc/core/StatTest.java index abf8acea..83535168 100644 --- a/src/mrmc/core/StatTest.java +++ b/src/mrmc/core/StatTest.java @@ -20,6 +20,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class StatTest { diff --git a/src/mrmc/core/commandStartFunction.java b/src/mrmc/core/commandStartFunction.java index 257cf602..a569a77a 100644 --- a/src/mrmc/core/commandStartFunction.java +++ b/src/mrmc/core/commandStartFunction.java @@ -13,7 +13,10 @@ import roemetz.gui.RMGUInterface.DoNumericalIntegrationBtnListener; import roemetz.gui.RMGUInterface.DoSimBtnListener; import roemetz.gui.RMGUInterface.analysisExportListener; - +/** + * Class to allow iMRMC software to be run in command line + * @author Qi Gong + */ public class commandStartFunction { private GUInterface GUI; private InputFile InputFile1; diff --git a/src/mrmc/gui/GUImenubar.java b/src/mrmc/gui/GUImenubar.java index 7574bde2..77e7656f 100644 --- a/src/mrmc/gui/GUImenubar.java +++ b/src/mrmc/gui/GUImenubar.java @@ -17,6 +17,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class GUImenubar { private MRMC lst; diff --git a/src/mrmc/gui/GUInterface.java b/src/mrmc/gui/GUInterface.java index 24252541..eeb231e6 100644 --- a/src/mrmc/gui/GUInterface.java +++ b/src/mrmc/gui/GUInterface.java @@ -85,6 +85,7 @@ Click the Variance Analysis Button ({@link InputFileCard.varAnalysisListener}) * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ @SuppressWarnings("unused") public class GUInterface { diff --git a/src/mrmc/gui/InputFileCard.java b/src/mrmc/gui/InputFileCard.java index 1f6102b0..559f02d5 100644 --- a/src/mrmc/gui/InputFileCard.java +++ b/src/mrmc/gui/InputFileCard.java @@ -53,6 +53,7 @@ * @author Xin He, Ph.D * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class InputFileCard { private GUInterface GUI; diff --git a/src/mrmc/gui/ManualCard.java b/src/mrmc/gui/ManualCard.java index 9d9dd5b1..6456a35b 100644 --- a/src/mrmc/gui/ManualCard.java +++ b/src/mrmc/gui/ManualCard.java @@ -11,6 +11,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class ManualCard { private GUInterface gui; diff --git a/src/mrmc/gui/RowHeaderRenderer.java b/src/mrmc/gui/RowHeaderRenderer.java index 89a9c0a7..116eacab 100644 --- a/src/mrmc/gui/RowHeaderRenderer.java +++ b/src/mrmc/gui/RowHeaderRenderer.java @@ -15,6 +15,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong * * @version 1.0 11/09/98 */ diff --git a/src/mrmc/gui/SizePanel.java b/src/mrmc/gui/SizePanel.java index ad0cfa82..5ba2f30d 100644 --- a/src/mrmc/gui/SizePanel.java +++ b/src/mrmc/gui/SizePanel.java @@ -23,6 +23,7 @@ * @author Xin He, Ph.D, * @author Brandon D. Gallas, Ph.D * @author Rohan Pathare + * @author Qi Gong */ public class SizePanel { public static String viewresultnew; // added for saving the results diff --git a/src/mrmc/gui/StatPanel.java b/src/mrmc/gui/StatPanel.java index c7aaa112..2c84616b 100644 --- a/src/mrmc/gui/StatPanel.java +++ b/src/mrmc/gui/StatPanel.java @@ -36,6 +36,7 @@ * Controls and shows the statistical analysis * * @author BDG + * @author Qi Gong * */ public class StatPanel { diff --git a/src/roemetz/core/SimRoeMetz.java b/src/roemetz/core/SimRoeMetz.java index fc99b799..6c8735de 100644 --- a/src/roemetz/core/SimRoeMetz.java +++ b/src/roemetz/core/SimRoeMetz.java @@ -28,6 +28,7 @@ * sim_roemetz.pro (Brandon D. Gallas, PhD) * * @author Rohan Pathare + * @author Qi Gong */ public class SimRoeMetz { diff --git a/src/roemetz/core/validateFunction.java b/src/roemetz/core/validateFunction.java index e4fc1225..8750e50d 100644 --- a/src/roemetz/core/validateFunction.java +++ b/src/roemetz/core/validateFunction.java @@ -7,7 +7,11 @@ import mrmc.chart.exportToFile; import roemetz.gui.RMGUInterface; import roemetz.gui.RMGUInterface.analysisExportListener; - +/** + * Class to do numerical calculation and simulation + * @author Brandon D. Gallas, Ph.D + * @author Qi Gong + */ public class validateFunction { public static File inputFile = null; public static void validateFunction(RMGUInterface RMGUInterface1, String inputFileFullName) { diff --git a/src/roemetz/gui/RMGUInterface.java b/src/roemetz/gui/RMGUInterface.java index 650034f2..d14bd295 100644 --- a/src/roemetz/gui/RMGUInterface.java +++ b/src/roemetz/gui/RMGUInterface.java @@ -62,6 +62,7 @@ * Change the numCores in class DoSimBtnListener to 1 * * @author Rohan Pathare + * @author Qi Gong */ public class RMGUInterface {