[Bioc-devel] 80% of man pages must have runnable examples (package with numerous Shiny apps)

L Rutter lind@@y@nnerutter @ending from gm@il@com
Wed Nov 21 17:29:17 CET 2018


Hi Lori and Kevin:

Thank you for your helpful responses! I was able to use "if
(interactive()) { ... }" format and return the appDir object for the
user. Thanks again!

Lindsay
On Mon, Nov 19, 2018 at 3:02 PM Kevin RUE <kevinrue67 using gmail.com> wrote:
>
> Hi Lindsay,
>
> Check out https://github.com/csoneson/iSEE/blob/master/R/iSEE-main.R function "iSEE" for an example of both the function return value, and the man page.
>
> First, I would suggest that your function _returns_ the "appDir" object to the user, and that you leave it to the user to call "shiny::runApp" with options appropriate to their system or preferences (e.g launch.browser=FALSE, port=1234, etc).
>
> Second, for the man page, you don't have to put the _entire_ @example block inside \dontrun{}. You can put everything that doesn't launch the Shiny app outside the \dontrun{} block and only put the one "shiny" line inside the \dontrun{}. The one line will represent less than 80% of the man page.
>
> However, even better, you can avoid the \dontrun{} option altogether and put the "shiny" statement within a "if (interactive()) { ... }" block.
>
> So adapting you existing code, I would have
> #' @examples
> #' # Example 1: Create an interactive litre plot for the logged data using
> #' # default background of hexagons.
> #'
> #' data(soybean_ir_sub)
> #' data(soybean_ir_sub_metrics)
> #' soybean_ir_sub_log <- soybean_ir_sub
> #' soybean_ir_sub_log[,-1] <- log(soybean_ir_sub[,-1]+1)
> #' if (interactive()){
> #' plotLitreApp(data = soybean_ir_sub_log, dataMetrics = soybean_ir_sub_metrics)
> #' }
> #'
> #' # Example 2: Repeat the same process, only now plot background data as
> #' # individual points. Note this may be too slow now that all points are drawn
> #' # in the background.
> #' if (interactive()){
> #' plotLitreApp(data = soybean_ir_sub_log, dataMetrics = soybean_ir_sub_metrics,
> #' option = "allPoints", pointColor = "red")
> #' }
>
> However, once more, I suggest that you return "appDir", and you would then have something like:
> #' app <- plotLitreApp(data = soybean_ir_sub_log, dataMetrics = soybean_ir_sub_metrics)
> #' if (interactive()){
> #'    shiny::runApp(app, [options defined by your user])
> #' }
>
> I hope this helps. Otherwise, let me know and I can chime in the review of your package
>
> Best wishes
> Kevin
>
> On Mon, Nov 19, 2018 at 7:00 PM Shepherd, Lori <Lori.Shepherd using roswellpark.org> wrote:
>>
>> Submit with the dontrun{} and temporarily ignore the ERROR -  when submitting please reference the explanation below.  Your reviewer could provide more information and will decide how to proceed -  generally examples will be run manually to check for accuracy and an exception can be made.
>>
>>
>> Lori Shepherd
>>
>> Bioconductor Core Team
>>
>> Roswell Park Cancer Institute
>>
>> Department of Biostatistics & Bioinformatics
>>
>> Elm & Carlton Streets
>>
>> Buffalo, New York 14263
>>
>> ________________________________
>> From: Bioc-devel <bioc-devel-bounces using r-project.org> on behalf of L Rutter <lindsayannerutter using gmail.com>
>> Sent: Monday, November 19, 2018 1:49:50 PM
>> To: bioc-devel using r-project.org
>> Subject: [Bioc-devel] 80% of man pages must have runnable examples (package with numerous Shiny apps)
>>
>> Hello all:
>>
>> I am planning to submit a package to Bioconductor and have one last
>> item from BiocCheck (error, warning, note) I have been unable to
>> resolve:
>>
>> ERROR: At least 80% of man pages documenting exported objects must
>> have runnable examples. The following pages do not: plotLitreApp.Rd,
>> plotPCPApp.Rd, plotSMApp.Rd, plotVolcanoApp.Rd
>>
>> I have 18 man pages (9 function-related, 8 data-related, and 1
>> package-related). Of these, 4 of the function-related man pages (the
>> ones listed in the ERROR) are Shiny applications of the following
>> format:
>>
>> appDir <- system.file("shiny-examples", "plotLitreApp", package = "bigPint")
>> shiny::runApp(appDir, display.mode = "normal")
>>
>> If I do not have \dontrun{} around these shiny app examples, then R
>> CMD check permanently halts on the "checking examples..." step. If I
>> do have \dontrun{} around these shiny app examples, then R CMD
>> BiocCheck gives me the error above. My question is: What is the
>> recommended procedure in such a situation where the package is being
>> prepared for Bioconductor submission?
>>
>> An example of one script causing the error can be found at:
>> https://github.com/lrutter/bigPint/blob/master/R/plotLitreApp.R
>>
>> Thank you for any advice!
>> Lindsay
>>
>> _______________________________________________
>> Bioc-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>>
>> This email message may contain legally privileged and/or confidential information.  If you are not the intended recipient(s), or the employee or agent responsible for the delivery of this message to the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or use of this email message is prohibited.  If you have received this message in error, please notify the sender immediately by e-mail and delete this email message from your computer. Thank you.
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel



More information about the Bioc-devel mailing list