SlideShare a Scribd company logo
1 of 72
Developing R Graphical User Interfaces


Setia Pramana
Medical Epidemiology and Biostatistics Department
Karolinska Institutet, Stockholm, Sweden
Outlines


• Motivations
• R GUI
  • IsoGeneGUI
  • neaGUI
• How to develop an R GUI?
  • Independent GUI
  • Embedded GUI (RcmdrPlugin.BiclustGUI)
• Summary
                                            4/2/2013   2
R Pros and Con


 Free open source and widely used.
 Can be integrated with other languages
  (C/C++, Java).
 R can interact with many data sources and
  other statistical packages (SAS, Stata, SPSS,
  and Minitab).
 For the high performance computing task 
  multiple cores, either on a single machine or
  across a network.
                                             4/2/2013   3
R: A Command line interface (CLI)


 Users type commands to perform a statistical
  analysis.
 Is preferred for advanced users  allows
  direct control, more accurate, flexible and the
  analysis is reproducible.




                                                4/2/2013   4
R: A Command line interface (CLI)


 Requires good knowledge of the language 
  difficult for beginners or less frequent users.
 R provides tools for building GUIs  RGUI




                                                4/2/2013   5
Graphical User Interface (GUI)


 A tool to provide an event-driven user
  interface.
 An extra layer between the user and the
  program
 Based on menus, dialog boxes, icons and
  controls.
 Window, icon, menu, and pointing device
  (WIMP) paradigm

                                            4/2/2013   6
R GUI Projects


 Integrated development environment
  (IDE)/Script Editors aimed to provide feature-
  rich environments to edit R scripts and code:
  Rstudio (www.rstudio.com), and architect
  (www.Openanalytics.eu)
 Web based application: the Rweb (Banfield,
  1999), R.Net (www.u.arizona.edu/~ryckman/Net.php), or
  gWidgetsWWW (Verzani, 2012).


                                                     4/2/2013   7
R GUI Projects


 Python: OpenMeta-Analyst (Wallace et al, 2012)
 Java: JGR (Java GUI for R), Deducer (Fellows,
  2012), and Glotaran (Snellenburg, 2012).
 Php: R-php (http://dssm.unipa.it/R-php/)
 Other extensions connect R to graphical
  toolboxes for developing menus and dialog
  boxes: Tcltk, Gtk.
 Today, we focus on Tcltk

                                              4/2/2013   8
R GUI Tcl/Tk


 Most commonly used: easy, no additional
  software needed and ready to be used in R
  (tcltk package)
 R-Tcl/Tk interface from the tcltk package
  (Dalgaard, 2001 and Welch, 2000).
 The tcltk package allows the use of the Tk
  (toolkit) graphical user interface elements
  within R by embedding Tk commands into the
  R language.
                                              4/2/2013   9
R GUI Tcl/Tk


 R GUIs developed by using tcl/tk or RGtk:
  • LimmaGUI (Wettenhall and Smyth, 2004),
  • LMMNorm (Haldermans, 2010),
  • IsoGeneGUI (Pramana et al. , 2010, 2012)
  • NeaGUI (Pramana et.al, 2013)
  • Rcommander (Fox, 2005)
  • RcmdrPlugin.biclustGUI (Pramana, 2011)


                                               4/2/2013   10
R GUI Tcl/Tk


 R GUIs developed by using tcl/tk or RGtk:   Independent
                                              GUI
  • LimmaGUI (Wettenhall and Smyth, 2004),
  • LMMNorm (Haldermans, 2010),
  • IsoGeneGUI (Pramana et al. , 2010, 2012)
  • NeaGUI (Pramana et.al, 2013)
  • Rcommander (Fox, 2005)
  • RcmdrPlugin.biclustGUI (Pramana, 2011)


                                               4/2/2013   11
R GUI Tcl/Tk


 R GUIs developed by using tcl/tk or RGtk:
  • LimmaGUI (Wettenhall and Smyth, 2004),
  • LMMNorm (Haldermans, 2010),
  • IsoGeneGUI (Pramana et al. , 2010, 2011)
  • NeaGUI (Pramana et.al, 2013)
                                              Embeded GUI
  • Rcommander (Fox, 2005)
  • RcmdrPlugin.biclustGUI (Pramana, 2011)


                                               4/2/2013   12
IsoGeneGUI


 To perform dose response microarray
  analysis in early drug development.
 Identify genes with a monotonic trend in the
  expression levels with respect to the
  increasing doses
 CLI based: IsoGene package (Pramana,2010)




                                             4/2/2013   13
IsoGeneGUI




             Main window of IsoGeneGUI
                                         4/2/2013   14
IsoGeneGUI: Isotonic Regression Plot

Command line:
IsoPlot(dose, express , type="ordinal", add.curve=TRUE)




                                                          4/2/2013   15
IsoGeneGUI: Isotonic Regression Plot

Command line:
IsoPlot(dose, express , type="ordinal", add.curve=TRUE)




                                                          4/2/2013   16
IsoGeneGUI: Significant Analysis Microarray

qqstat <- Isoqqstat(x, y, fudge="pooled",
         niter=50)
allfdr <- Isoallfdr(qqstat, , stat = "E2")
IsoSAMPlot(qqstat, allfdr, FDR = 0.1,
          stat = "E2")
SAM.Res <- IsoTestSAM(x, y,
        fudge="pooled", niter=50,
        FDR=0.05, stat="E2")




                                             4/2/2013   17
IsoGeneGUI: Significant Analysis Microarray

qqstat <- Isoqqstat(x, y, fudge="pooled",
         niter=50)
allfdr <- Isoallfdr(qqstat, , stat = "E2")
IsoSAMPlot(qqstat, allfdr, FDR = 0.1,
          stat = "E2")
SAM.Res <- IsoTestSAM(x, y,
        fudge="pooled", niter=50,
        FDR=0.05, stat="E2")




                                             4/2/2013   18
IsoGeneGUI Manual Guide

 IsoGeneGUI
   help: htlm




                          4/2/2013   19
IsoGeneGUI Manual Guide

 IsoGeneGUI
   help: htlm




                          4/2/2013   20
IsoGeneGUI Manual Guide

 IsoGeneGUI
   help: htlm




 Vignette:
  http://www.bioconductor.org/packages/2.11/bioc/vignettes/IsoGe
  neGUI/inst/doc/IsoGeneGUI.pdf
 Users’ manual:
  http://www.ibiostat.be/software/IsoGeneGUI/files/IsoGeneGUI%
  20users'%20manual.pdf

                                                             4/2/2013   21
neaGUI

 To help interpretation of
  differentially expressed (DE)
  genes in context of
  biological processes,
  pathways and networks.
 Perform network enrichment
  analysis.
 Input: DE genes
 Output: enriched pathways
  statistics based on gene
  interaction networks.
                                  4/2/2013   22
neaGUI Output




                4/2/2013   23
neaGUI Output




                4/2/2013   24
RGUI, How to Build One?

 Choose one of RGUI categories, and tools to be used
  (tcltk, java, etc.) which suit with the package
  purpose.
 Make sketches of the window box and consider:
   • Input
   • Options
   • Output
 Can all functions be run in a single window (e.g.
  neaGUI)? Or a main window with menu
  (IsoGeneGUI) and separate dialog boxes are
  needed?                                          4/2/2013   25
Create Main Window

tt <- tktoplevel()
tkwm.title(tt,"My New GUI")
topMenu <- tkmenu(tt)
tkconfigure (tt,menu=topMenu)
fileMenu <- tkmenu(topMenu,tearoff=FALSE)
openMenu <- tkmenu(topMenu,tearoff=FALSE)
tkadd(openMenu,"command",label="xls file",
     command= getXls)
tkadd(openMenu,"command",label="text file”)




                                              4/2/2013   26
Create Main Window

tt <- tktoplevel()
tkwm.title(tt,"My New GUI")
topMenu <- tkmenu(tt)
tkconfigure (tt,menu=topMenu)
fileMenu <- tkmenu(topMenu,tearoff=FALSE)
openMenu <- tkmenu(topMenu,tearoff=FALSE)
tkadd(openMenu,"command",label="xls file",
     command= getXls)
tkadd(openMenu,"command",label="text file”) () {
                            getXls <- function
                             fileName <- tclvalue(tkgetOpenFile(filetypes=
                                   gettext(' {"Excel Files" {".xls"}} {"All Files"
                            {"*"}}')))
                            data <- get( fileName) }




                                                                                     4/2/2013   27
Create Main Window

tt <- tktoplevel()
tkwm.title(tt,"My New GUI")
topMenu <- tkmenu(tt)
tkconfigure (tt,menu=topMenu)
fileMenu <- tkmenu(topMenu,tearoff=FALSE)
openMenu <- tkmenu(topMenu,tearoff=FALSE)
tkadd(openMenu,"command",label="xls file",
     command= getXls)
tkadd(openMenu,"command",label="text file")
tkadd(fileMenu,"cascade",label="Open data",
               menu=openMenu)
tkadd(fileMenu,"cascade",label="Edit data")

tkadd(fileMenu,"command",label="Quit",command=function() tkdestroy(tt))
tkadd(topMenu,"cascade",label="File",menu=fileMenu)
tkadd(topMenu,"cascade",label="Help")
tkfocus(tt)
                                                                          4/2/2013   28
Create a Dialog Box

 Create the window
require(tcltk)
tt<-tktoplevel()
tkwm.title(tt,"Input Window")

 Edit Box
Name <- tclVar("")
entry.Name <-tkentry(tt,width="20",
       textvariable=Name)
tkgrid(tklabel(tt,text="Name:"), entry.Name)



                                               4/2/2013   29
Create a Dialog Box

 Radio button
rb1 <- tkradiobutton(tt)
rb2 <- tkradiobutton(tt)
rbValue <- tclVar("Male")
tkconfigure(rb1,variable=rbValue,
          value="Male")
tkconfigure(rb2,variable=rbValue,
          value="Female")
tkgrid(tklabel(tt,text="Sex:"))
tkgrid(tklabel(tt,text="Male"),rb1)
tkgrid(tklabel(tt,text="Female"),rb2)


                                        4/2/2013   30
Create a Dialog Box

 List box with scroll bar
scr <- tkscrollbar(tt, repeatinterval=5,
     command=function(...) tkyview(tl,...))
tl<-tklistbox(tt,height=4,selectmode="single",
      background="white")
tkgrid(tklabel(tt,text="City:"), tl, scr)
city <- c("Brussels","Jakarta", "London",
     "Stockholm")
for (i in (1:4)) tkinsert(tl,"end",city [i])
tkselection.set(tl,1)
tkgrid.configure(scr,rowspan=4,sticky="nsw")


                                                 4/2/2013   31
Create a Dialog Box

 OK button
OK.but <-tkbutton(tt,text="   OK   ",
    command=OnOK)
tkgrid(OK.but)
tkgrid.configure(OK.but)
tkfocus(tt)




                                        4/2/2013   32
Run the function (OK button)




                               4/2/2013   33
Run the function (OK button)


OnOK <- function() {
  NameVal <- tclvalue(Name)
  rbVal <- as.character(tclvalue
         (rbValue))
  if (rbVal=="Male") pref = "Mr."
  if (rbVal=="Female") pref = "Mrs.“
  cityChoice <- city [as.numeric(tkcurselection(tl))+1]
  tkdestroy(tt)
  msg <- paste("Good morning ",pref , NameVal , "from", cityChoice,
         sep=" ")
  tkmessageBox(message=msg)
}
                                                                      4/2/2013   34
Embeded R GUI: Rcmdr Plugin

 GUIs that are embedded/attached into another
  GUI, i.e., R Commander (Rcmdr)
 Rcmdr was originally developed as a basic-
  statistics graphical user interface (“GUI”) to R.
 Rcmdr needs extension for specific statistical
  analysis
 More than 20 Rcmdr plugins today


                                                      4/2/2013   35
Rcmdr Plugin Advantages

 Does not need to develop GUI for common
  procedures: Open, save and manipulate data.
 Can use standard statistical analysis.
 In term of programming: easier (standard tcltk
  commands are provided)
 Users know how to work in command line



                                                   4/2/2013   36
R Commander (Rcmdr)

 Developed by John Fox from McMaster
  University, Canada.
 Not only providing GUIs but also rendering users
  to R commands
 Advantages:
   • Ease of use. Beginners will have less problem to start to
     use Rcmdr.
   • Coverage. Offers wide range of basic statistics analysis
     and data management.

                                                            4/2/2013   37
R Commander (Rcmdr)

 Advantages:
  • Cross-platform functionality. Primarily under
    Windows, but also available in Linux and Macintosh
    OS/X.
  • Extensibility: one can develop “plug-in" packages for
    new methods/analysis.
  • Protects the novices from errors. Limited options
    related to the current context will minimize the errors
    made by users.
  • Exposes users to R commands.
                                                          4/2/2013   38
R Commander

Main Window:
 Script Window
 Output Window
 Messages




                  4/2/2013   39
RcmdrPlugin.biclustGUI

 An extension for the Rcmdr for biclustering
  analysis.
            Standard Rcmdr Menu




                                                4/2/2013   40
RcmdrPlugin.biclustGUI

 An extension for the Rcmdr for biclustering
  analysis.
          Rcmdr with biclustering plugin
            Standard Rcmdr Menu




                                                4/2/2013   41
Create a Dialog Box

initializeDialog(title =
               gettextRcmdr("Biclustering-CC"))
specFrame <- tkframe(top, borderwidth=5)
tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("CC Specification:")))

deltaVal <- tclVar(“ ")
deltaField <- ttkentry(specFrame, width = "5",textvariable = deltaVal )
tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("Delta:")), deltaField)

alphaVal <- tclVar("2")
alphaField <- ttkentry(specFrame, width = "5",textvariable = alphaVal )
tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("Alpha:")), alphaField)

                                                                          4/2/2013   42
Create a Dialog Box


numberVal <- tclVar("100")
numberField <- ttkentry(specFrame,
          width = "5”, textvariable = numberVal)
tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("Maximal Numbers : ")),
numberField)

OKbutton <- buttonRcmdr(specFrame , text = gettextRcmdr("Show Result"),
   width = "12", command = onOK, default = "active", borderwidth = 3)

tkgrid(OKbutton,Plotbutton ,exitButton ,helpButton)
tkgrid(specFrame)
dialogSuffix()

                                                                          4/2/2013   43
Submitting the job (OK button)

onOK <- function() {
  .activeDataSet <- ActiveDataSet()
  delta <- paste(tclvalue(deltaVal ))
  alpha <- paste(tclvalue(alphaVal ))
  number <- if (tclvalue( numberVal) == "") "100“
            else paste(tclvalue(numberVal))
  doItAndPrint(paste("CCbics <-biclust(as.matrix(",.activeDataSet,"),
          method=BCCC(), delta=", delta, ", alpha= ", alpha, ", number=
          ",number ,")" , sep="") )
   doItAndPrint("CCbics ")
   tkfocus(CommanderWindow())
}

                                                                          4/2/2013   44
doItAndPrint(paste("CCbics <-biclust(as.matrix(",.activeDataSet,"),
method=BCCC(), delta=", delta, ", alpha= ", alpha, ", number= ",number ,")" ,
sep="") )

doItAndPrint("CCbics ")




                                                                                4/2/2013   45
Output




         4/2/2013   46
RcmdrPlugin.biclustGUI




                         4/2/2013   47
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.




                                                      4/2/2013   48
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu   biclustMenu   topMenu   ““ ““ ““ ““




                                                                 4/2/2013   49
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
   Define
 menu/item line in menus.txt defines the top-level biclustGUI
  The first
  menu:

Menu   biclustMenu   topMenu   ““ ““ ““ ““




                                                                 4/2/2013   50
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
           Name of
 The first line in menus.txt defines the top-level biclustGUI
          new menu
  menu:

Menu   biclustMenu   topMenu   ““ ““ ““ ““




                                                                 4/2/2013   51
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
                      Parent of
 The first line in menus.txt defines the top-level biclustGUI
                      the menu
  menu:

Menu   biclustMenu   topMenu   ““ ““ ““ ““




                                                                 4/2/2013   52
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu     biclustMenu   topMenu   ““ ““ ““ ““


 The second line in menus.txt defines a menu item under biclust
  menu:

item biclustMenu command "Biclustering Plaid " PlaidWin   ""   "packageAvailable
('RcmdrPlugin.BiclustGUI')"


                                                                           4/2/2013   53
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu     biclustMenu   topMenu   ““ ““ ““ ““

  Define
menu item
  The second     line in menus.txt defines a menu item under biclust
   menu:

item biclustMenu command "Biclustering Plaid " PlaidWin   ""   "packageAvailable
('RcmdrPlugin.BiclustGUI')"


                                                                           4/2/2013   54
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu     biclustMenu   topMenu   ““ ““ ““ ““

         Menu item
 The   second line
         belongs to    in menus.txt defines a menu item under biclust
  menu:

item biclustMenu command "Biclustering Plaid " PlaidWin   ""   "packageAvailable
('RcmdrPlugin.BiclustGUI')"


                                                                           4/2/2013   55
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu     biclustMenu   topMenu   ““ ““ ““ ““

                    Menu item
 The second     line in menus.txt
                    invokes a         defines a menu item under biclust
                    command
  menu:

item biclustMenu command "Biclustering Plaid " PlaidWin   ""   "packageAvailable
('RcmdrPlugin.BiclustGUI')"


                                                                           4/2/2013   56
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu     biclustMenu   topMenu   ““ ““ ““ ““

                                Text
 The second line in     menus.txt defines
                             displayed         a menu item under biclust
  menu:

item biclustMenu command "Biclustering Plaid " PlaidWin   ""   "packageAvailable
('RcmdrPlugin.BiclustGUI')"


                                                                           4/2/2013   57
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu     biclustMenu   topMenu   ““ ““ ““ ““

                                                 Called
 The second line in menus.txt defines         afunction
                                                  menu     item under biclust
  menu:

item biclustMenu command "Biclustering Plaid " PlaidWin    ""   "packageAvailable
('RcmdrPlugin.BiclustGUI')"


                                                                            4/2/2013   58
RcmdrPlugin: Menu-Definition File

 The plugin menus are defined the file: menus.txt.
 The first line in menus.txt defines the top-level biclustGUI
  menu:

Menu     biclustMenu   topMenu   ““ ““ ““ ““

                                                           Conditional activation
 The second line in menus.txt defines a menu             item under biclust
                                                              and installation
  menu:

item biclustMenu command "Biclustering Plaid " PlaidWin   ""   "packageAvailable
('RcmdrPlugin.BiclustGUI')"


                                                                           4/2/2013   59
Next Stage

 Error handling: message boxes, warnings, etc.
 Trial by other people.
 Compile as a package.
 Submit in a repository for development we can use R-
  forge.
 When all ready, submit to a repository, Bioconductor, or
  CRAN.
 Bioconductor more restrict and have to comply all
  guidelines:
  http://www.bioconductor.org/developers/package-
  guidelines/                                                4/2/2013   60
Summary

 A GUI could help novice R users for utilizing all the power of
  R.
 Increase the use of our package/methods especially by scientists
  with no/less knowledge of R.




                                                           4/2/2013   61
Summary

 A GUI could help novice R users for utilizing all the power of
  R.
 Increase the use of our package/methods especially by scientists
  with no/less knowledge of R.
 Things to consider in developing a GUI:
   • Type of GUI (spreadsheets, menu/dialog boxes),
   • Tool to develop (tcltk, java)
   • Embedded/Independent.
   • Single/Multi dialog boxes

                                                           4/2/2013   62
Summary

 Independent GUI: really for a specific use, no need of “useless”
  capabilities, simpler.
 Rcmdr PlugIn in: easier, all standard data manipulation and
  analysis is ready, users can learn the command.




                                                           4/2/2013   63
Summary

 Independent GUI: really for a specific use, no need of “useless”
  capabilities, simpler.
 Rcmdr PlugIn in: easier, all standard data manipulation and
  analysis is ready, users can learn the command.
 Make sure GUI is simple and user friendly.

 Design  Development  Trial  Packaging and Storing




                                                           4/2/2013   64
The GUIs

 IsoGeneGUI:http://www.bioconductor.org/packages/2.11/
  bioc/html/IsoGeneGUI.html
 neaGUI: https://r-forge.r-project.org/projects/neagui/
 biclustGUI:
  http://www.ibiostat.be/software/BiclustGUI/index.html
 Examples of RGUI:
   • http://www.sciviews.org/_rgui/
   • http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/
   • http://setiopramono.wordpress.com/r-programming/


                                                             4/2/2013   65
Next Development:

 Isogene RSB : Web based development using R Service
  Bus: http://www.openanalytics.eu/r-service-bus
 R Service Bus: plug R into a processes independently of
  the technology used by other software applications
  involved in the workflow.
 Web Based neaGUI using shiny
 Shiny: Easy web applications in R:
  http://www.rstudio.com/shiny/



                                                            4/2/2013   66
RSB-IsoGene




              4/2/2013   67
Web based neaGUI




                   4/2/2013   68
Collaborator

 Karolinska Institutet, Sweden: Yudi Pawitan & Woojoo Lee
 Scilifelab, Sweden: Andrey Alexeyenko
 Johnson & Johnson Research and Development, Belgium: Luc
  Bijnes & Willem Talloen.
 Hasselt University, Belgium: Ziv Shkedy, Dan Lin, Philippe H,
  Martin O Pushpike, Tatsiana K.
 Open Analytics, Belgium: Tobias Verbeke
 Johannes Kepler University of Linz, Austria: Sepp Hochreiter’s
  Group
 LMU Munich, Germany: Sebastian Kaiser



                                                               4/2/2013   69
Thank you for your attention…




                                4/2/2013   70
References

 Pramana, S., Lin, D., and Shkedy Z., (2010), IsoGeneGUI
  Bioconductor Package Vignette.
 Pramana, S., Lin, D., Haldermans, P., Shkedy Z., and Verbeke, T., De
  Bondt, A., Talloen, W., Göehlmann,. H and Bijnens, L. (2010).
  “IsoGene: An R Package for Analyzing Dose-response Studies in
  Microarray Experiments", R Journal 2/1.
 Pramana, S., Lin, D., Haldermans P., and Verbeke, T. (2102). “A
  User Friendly Interface for Analyzing Dose-response Studies in
  Microarray Experiments: The IsoGene-GUI package”, in Lin, D.,
  Shkedy, Z., Yekutieli, D., Amaratunga, D. and Bijnens L. (editors).
  Modeling Dose-response Microarray Data in Early Drug
  Development Experiments Using R, Springer.

                                                                    4/2/2013   71
References

 Pramana (2011) RcmdrPlugin.BiclustGUI: A User Friendly Interface
  for Biclustering Analysis, a chapter of PhD: “Statistical Methods for
  Microarray Experiments: Analysis Dose-response Studies and
  Software Development in R”, Hasselt University, Belgium.
 Pramana, S., Lee, W., Alexeyenko, A., Pawitan., Y. (2012). neaGUI:
  A Graphical User Interface for Network Enrichment Analysis.
 Fox J (2005). The R Commander: A Basic-Statistics Graphical User
  Interface to R." Journal of Statistical Software, 14(9), 1-42.
 Valero-Mora, P.M and Ledesma R.D. (2012) “Graphical User
  Interfaces for R”. Journal of Statistical Software.
 Verzani J (2007). An Introduction to gWidgets." R News, 7(3), 26-33.


                                                                      4/2/2013   72

More Related Content

What's hot

Segments in Graphics
Segments in GraphicsSegments in Graphics
Segments in GraphicsRajani Thite
 
Image Enhancement in Spatial Domain
Image Enhancement in Spatial DomainImage Enhancement in Spatial Domain
Image Enhancement in Spatial DomainDEEPASHRI HK
 
Monitors & workstation,Donald ch-2
Monitors & workstation,Donald ch-2Monitors & workstation,Donald ch-2
Monitors & workstation,Donald ch-2Iftikhar Ahmad
 
Chapter 09 dss-mis-eis-es-ai
Chapter 09 dss-mis-eis-es-aiChapter 09 dss-mis-eis-es-ai
Chapter 09 dss-mis-eis-es-aiPooja Sakhla
 
Image Restoration (Digital Image Processing)
Image Restoration (Digital Image Processing)Image Restoration (Digital Image Processing)
Image Restoration (Digital Image Processing)Kalyan Acharjya
 
Machine Learning-Linear regression
Machine Learning-Linear regressionMachine Learning-Linear regression
Machine Learning-Linear regressionkishanthkumaar
 
Machine Learning with Decision trees
Machine Learning with Decision treesMachine Learning with Decision trees
Machine Learning with Decision treesKnoldus Inc.
 
Image Filtering in the Frequency Domain
Image Filtering in the Frequency DomainImage Filtering in the Frequency Domain
Image Filtering in the Frequency DomainAmnaakhaan
 
Unit 3
Unit 3Unit 3
Unit 3ypnrao
 
Back face detection
Back face detectionBack face detection
Back face detectionPooja Dixit
 
Attributes of Output Primitives
Attributes of Output PrimitivesAttributes of Output Primitives
Attributes of Output PrimitivesRenita Santhmayora
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.Girish Ghate
 

What's hot (20)

Clustering in Data Mining
Clustering in Data MiningClustering in Data Mining
Clustering in Data Mining
 
Segments in Graphics
Segments in GraphicsSegments in Graphics
Segments in Graphics
 
Image Enhancement in Spatial Domain
Image Enhancement in Spatial DomainImage Enhancement in Spatial Domain
Image Enhancement in Spatial Domain
 
Monitors & workstation,Donald ch-2
Monitors & workstation,Donald ch-2Monitors & workstation,Donald ch-2
Monitors & workstation,Donald ch-2
 
Deductive databases
Deductive databasesDeductive databases
Deductive databases
 
Data Preprocessing
Data PreprocessingData Preprocessing
Data Preprocessing
 
Data Redundacy
Data RedundacyData Redundacy
Data Redundacy
 
Chapter 09 dss-mis-eis-es-ai
Chapter 09 dss-mis-eis-es-aiChapter 09 dss-mis-eis-es-ai
Chapter 09 dss-mis-eis-es-ai
 
Np cooks theorem
Np cooks theoremNp cooks theorem
Np cooks theorem
 
Image Restoration (Digital Image Processing)
Image Restoration (Digital Image Processing)Image Restoration (Digital Image Processing)
Image Restoration (Digital Image Processing)
 
Machine Learning-Linear regression
Machine Learning-Linear regressionMachine Learning-Linear regression
Machine Learning-Linear regression
 
NLP_KASHK:Minimum Edit Distance
NLP_KASHK:Minimum Edit DistanceNLP_KASHK:Minimum Edit Distance
NLP_KASHK:Minimum Edit Distance
 
Machine Learning with Decision trees
Machine Learning with Decision treesMachine Learning with Decision trees
Machine Learning with Decision trees
 
Image Filtering in the Frequency Domain
Image Filtering in the Frequency DomainImage Filtering in the Frequency Domain
Image Filtering in the Frequency Domain
 
Unit 3
Unit 3Unit 3
Unit 3
 
Back face detection
Back face detectionBack face detection
Back face detection
 
Random forest
Random forestRandom forest
Random forest
 
Attributes of Output Primitives
Attributes of Output PrimitivesAttributes of Output Primitives
Attributes of Output Primitives
 
Digital Image Forgery
Digital Image ForgeryDigital Image Forgery
Digital Image Forgery
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.
 

Similar to function OnOK() { # get values from dialog box # close dialog box tkdestroy(tt)}This shows the basic steps to create dialog boxes in R GUI using tcltk

The GO Language : From Beginners to Gophers
The GO Language : From Beginners to GophersThe GO Language : From Beginners to Gophers
The GO Language : From Beginners to GophersAlessandro Sanino
 
Data exchange alternatives, GIGA TAG (2009)
Data exchange alternatives, GIGA TAG (2009)Data exchange alternatives, GIGA TAG (2009)
Data exchange alternatives, GIGA TAG (2009)Dag Endresen
 
コミュニティ開発に参加しよう!
コミュニティ開発に参加しよう!コミュニティ開発に参加しよう!
コミュニティ開発に参加しよう!Takahiro Itagaki
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Guillaume Laforge
 
[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android TipsKenichi Kambara
 
A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyoneinside-BigData.com
 
Eta lang Beauty And The Beast
Eta lang Beauty And The Beast Eta lang Beauty And The Beast
Eta lang Beauty And The Beast Jarek Ratajski
 
Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Lars Albertsson
 
GPDB Meetup GPORCA OSS 101
GPDB Meetup GPORCA OSS 101GPDB Meetup GPORCA OSS 101
GPDB Meetup GPORCA OSS 101Xin Zhang
 
Crude-Oil Scheduling Technology: moving from simulation to optimization
Crude-Oil Scheduling Technology: moving from simulation to optimizationCrude-Oil Scheduling Technology: moving from simulation to optimization
Crude-Oil Scheduling Technology: moving from simulation to optimizationBrenno Menezes
 
The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202Mahmoud Samir Fayed
 
Bring the fun back to java
Bring the fun back to javaBring the fun back to java
Bring the fun back to javaciklum_ods
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?Jeremy Schneider
 
[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)
[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)
[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)Yogi Sharo
 
Data Mining with SpagoBI suite
Data Mining with SpagoBI suiteData Mining with SpagoBI suite
Data Mining with SpagoBI suiteSpagoWorld
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 
Print Testing
Print TestingPrint Testing
Print Testingdonwelch
 

Similar to function OnOK() { # get values from dialog box # close dialog box tkdestroy(tt)}This shows the basic steps to create dialog boxes in R GUI using tcltk (20)

The GO Language : From Beginners to Gophers
The GO Language : From Beginners to GophersThe GO Language : From Beginners to Gophers
The GO Language : From Beginners to Gophers
 
Data exchange alternatives, GIGA TAG (2009)
Data exchange alternatives, GIGA TAG (2009)Data exchange alternatives, GIGA TAG (2009)
Data exchange alternatives, GIGA TAG (2009)
 
Expgui reprint
Expgui reprintExpgui reprint
Expgui reprint
 
コミュニティ開発に参加しよう!
コミュニティ開発に参加しよう!コミュニティ開発に参加しよう!
コミュニティ開発に参加しよう!
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008
 
[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips
 
A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyone
 
Eta lang Beauty And The Beast
Eta lang Beauty And The Beast Eta lang Beauty And The Beast
Eta lang Beauty And The Beast
 
Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0
 
GPDB Meetup GPORCA OSS 101
GPDB Meetup GPORCA OSS 101GPDB Meetup GPORCA OSS 101
GPDB Meetup GPORCA OSS 101
 
Qt Workshop
Qt WorkshopQt Workshop
Qt Workshop
 
Crude-Oil Scheduling Technology: moving from simulation to optimization
Crude-Oil Scheduling Technology: moving from simulation to optimizationCrude-Oil Scheduling Technology: moving from simulation to optimization
Crude-Oil Scheduling Technology: moving from simulation to optimization
 
The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202
 
Bring the fun back to java
Bring the fun back to javaBring the fun back to java
Bring the fun back to java
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?
 
[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)
[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)
[Gary entsminger] turbo_pascal_for_windows_bible(book_fi.org)
 
Data Mining with SpagoBI suite
Data Mining with SpagoBI suiteData Mining with SpagoBI suite
Data Mining with SpagoBI suite
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
Go. Why it goes
Go. Why it goesGo. Why it goes
Go. Why it goes
 
Print Testing
Print TestingPrint Testing
Print Testing
 

More from Setia Pramana

Big data for official statistics @ Konferensi Big Data Indonesia 2016
Big data for official statistics @ Konferensi Big Data Indonesia 2016 Big data for official statistics @ Konferensi Big Data Indonesia 2016
Big data for official statistics @ Konferensi Big Data Indonesia 2016 Setia Pramana
 
Introduction to Computational Statistics
Introduction to Computational StatisticsIntroduction to Computational Statistics
Introduction to Computational StatisticsSetia Pramana
 
Bioinformatics I-4 lecture
Bioinformatics I-4 lectureBioinformatics I-4 lecture
Bioinformatics I-4 lectureSetia Pramana
 
Correlation and Regression Analysis using SPSS and Microsoft Excel
Correlation and Regression Analysis using SPSS and Microsoft ExcelCorrelation and Regression Analysis using SPSS and Microsoft Excel
Correlation and Regression Analysis using SPSS and Microsoft ExcelSetia Pramana
 
Pengalaman Menjadi Mahasiswa Muslim di Eropa
Pengalaman Menjadi Mahasiswa Muslim di EropaPengalaman Menjadi Mahasiswa Muslim di Eropa
Pengalaman Menjadi Mahasiswa Muslim di EropaSetia Pramana
 
Multivariate data analysis
Multivariate data analysisMultivariate data analysis
Multivariate data analysisSetia Pramana
 
Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...
Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...
Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...Setia Pramana
 
The Role of The Statisticians in Personalized Medicine: An Overview of Stati...
The Role of The Statisticians in Personalized Medicine:  An Overview of Stati...The Role of The Statisticians in Personalized Medicine:  An Overview of Stati...
The Role of The Statisticians in Personalized Medicine: An Overview of Stati...Setia Pramana
 
High throughput Data Analysis
High throughput Data AnalysisHigh throughput Data Analysis
High throughput Data AnalysisSetia Pramana
 
Research Methods for Computational Statistics
Research Methods for Computational StatisticsResearch Methods for Computational Statistics
Research Methods for Computational StatisticsSetia Pramana
 
Survival Data Analysis for Sekolah Tinggi Ilmu Statistik Jakarta
Survival Data Analysis for Sekolah Tinggi Ilmu Statistik JakartaSurvival Data Analysis for Sekolah Tinggi Ilmu Statistik Jakarta
Survival Data Analysis for Sekolah Tinggi Ilmu Statistik JakartaSetia Pramana
 
The Role of Statistician in Personalized Medicine: An Overview of Statistical...
The Role of Statistician in Personalized Medicine: An Overview of Statistical...The Role of Statistician in Personalized Medicine: An Overview of Statistical...
The Role of Statistician in Personalized Medicine: An Overview of Statistical...Setia Pramana
 
“Big Data” and the Challenges for Statisticians
“Big Data” and the  Challenges for Statisticians“Big Data” and the  Challenges for Statisticians
“Big Data” and the Challenges for StatisticiansSetia Pramana
 
Getting a Scholarship, how?
Getting a Scholarship, how?Getting a Scholarship, how?
Getting a Scholarship, how?Setia Pramana
 
Kehidupan sehari-hari dengan Personnummer atau SIN Single Identity Number
Kehidupan sehari-hari dengan Personnummer atau SIN Single Identity NumberKehidupan sehari-hari dengan Personnummer atau SIN Single Identity Number
Kehidupan sehari-hari dengan Personnummer atau SIN Single Identity NumberSetia Pramana
 
Research possibilities with the Personal Identification Number (person nummer...
Research possibilities with the Personal Identification Number (person nummer...Research possibilities with the Personal Identification Number (person nummer...
Research possibilities with the Personal Identification Number (person nummer...Setia Pramana
 
Academia vs industry
Academia vs industryAcademia vs industry
Academia vs industrySetia Pramana
 
Gene sebuah nikmat Allah
Gene sebuah nikmat AllahGene sebuah nikmat Allah
Gene sebuah nikmat AllahSetia Pramana
 

More from Setia Pramana (20)

Big data for official statistics @ Konferensi Big Data Indonesia 2016
Big data for official statistics @ Konferensi Big Data Indonesia 2016 Big data for official statistics @ Konferensi Big Data Indonesia 2016
Big data for official statistics @ Konferensi Big Data Indonesia 2016
 
Resampling methods
Resampling methodsResampling methods
Resampling methods
 
Introduction to Computational Statistics
Introduction to Computational StatisticsIntroduction to Computational Statistics
Introduction to Computational Statistics
 
Bioinformatics I-4 lecture
Bioinformatics I-4 lectureBioinformatics I-4 lecture
Bioinformatics I-4 lecture
 
Correlation and Regression Analysis using SPSS and Microsoft Excel
Correlation and Regression Analysis using SPSS and Microsoft ExcelCorrelation and Regression Analysis using SPSS and Microsoft Excel
Correlation and Regression Analysis using SPSS and Microsoft Excel
 
Pengalaman Menjadi Mahasiswa Muslim di Eropa
Pengalaman Menjadi Mahasiswa Muslim di EropaPengalaman Menjadi Mahasiswa Muslim di Eropa
Pengalaman Menjadi Mahasiswa Muslim di Eropa
 
Multivariate data analysis
Multivariate data analysisMultivariate data analysis
Multivariate data analysis
 
Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...
Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...
Molecular Subtyping of Breast Cancer and Somatic Mutation Discovery Using DNA...
 
The Role of The Statisticians in Personalized Medicine: An Overview of Stati...
The Role of The Statisticians in Personalized Medicine:  An Overview of Stati...The Role of The Statisticians in Personalized Medicine:  An Overview of Stati...
The Role of The Statisticians in Personalized Medicine: An Overview of Stati...
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
High throughput Data Analysis
High throughput Data AnalysisHigh throughput Data Analysis
High throughput Data Analysis
 
Research Methods for Computational Statistics
Research Methods for Computational StatisticsResearch Methods for Computational Statistics
Research Methods for Computational Statistics
 
Survival Data Analysis for Sekolah Tinggi Ilmu Statistik Jakarta
Survival Data Analysis for Sekolah Tinggi Ilmu Statistik JakartaSurvival Data Analysis for Sekolah Tinggi Ilmu Statistik Jakarta
Survival Data Analysis for Sekolah Tinggi Ilmu Statistik Jakarta
 
The Role of Statistician in Personalized Medicine: An Overview of Statistical...
The Role of Statistician in Personalized Medicine: An Overview of Statistical...The Role of Statistician in Personalized Medicine: An Overview of Statistical...
The Role of Statistician in Personalized Medicine: An Overview of Statistical...
 
“Big Data” and the Challenges for Statisticians
“Big Data” and the  Challenges for Statisticians“Big Data” and the  Challenges for Statisticians
“Big Data” and the Challenges for Statisticians
 
Getting a Scholarship, how?
Getting a Scholarship, how?Getting a Scholarship, how?
Getting a Scholarship, how?
 
Kehidupan sehari-hari dengan Personnummer atau SIN Single Identity Number
Kehidupan sehari-hari dengan Personnummer atau SIN Single Identity NumberKehidupan sehari-hari dengan Personnummer atau SIN Single Identity Number
Kehidupan sehari-hari dengan Personnummer atau SIN Single Identity Number
 
Research possibilities with the Personal Identification Number (person nummer...
Research possibilities with the Personal Identification Number (person nummer...Research possibilities with the Personal Identification Number (person nummer...
Research possibilities with the Personal Identification Number (person nummer...
 
Academia vs industry
Academia vs industryAcademia vs industry
Academia vs industry
 
Gene sebuah nikmat Allah
Gene sebuah nikmat AllahGene sebuah nikmat Allah
Gene sebuah nikmat Allah
 

Recently uploaded

call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinojohnmickonozaleda
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 

Recently uploaded (20)

Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipino
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 

function OnOK() { # get values from dialog box # close dialog box tkdestroy(tt)}This shows the basic steps to create dialog boxes in R GUI using tcltk

  • 1. Developing R Graphical User Interfaces Setia Pramana Medical Epidemiology and Biostatistics Department Karolinska Institutet, Stockholm, Sweden
  • 2. Outlines • Motivations • R GUI • IsoGeneGUI • neaGUI • How to develop an R GUI? • Independent GUI • Embedded GUI (RcmdrPlugin.BiclustGUI) • Summary 4/2/2013 2
  • 3. R Pros and Con  Free open source and widely used.  Can be integrated with other languages (C/C++, Java).  R can interact with many data sources and other statistical packages (SAS, Stata, SPSS, and Minitab).  For the high performance computing task  multiple cores, either on a single machine or across a network. 4/2/2013 3
  • 4. R: A Command line interface (CLI)  Users type commands to perform a statistical analysis.  Is preferred for advanced users  allows direct control, more accurate, flexible and the analysis is reproducible. 4/2/2013 4
  • 5. R: A Command line interface (CLI)  Requires good knowledge of the language  difficult for beginners or less frequent users.  R provides tools for building GUIs  RGUI 4/2/2013 5
  • 6. Graphical User Interface (GUI)  A tool to provide an event-driven user interface.  An extra layer between the user and the program  Based on menus, dialog boxes, icons and controls.  Window, icon, menu, and pointing device (WIMP) paradigm 4/2/2013 6
  • 7. R GUI Projects  Integrated development environment (IDE)/Script Editors aimed to provide feature- rich environments to edit R scripts and code: Rstudio (www.rstudio.com), and architect (www.Openanalytics.eu)  Web based application: the Rweb (Banfield, 1999), R.Net (www.u.arizona.edu/~ryckman/Net.php), or gWidgetsWWW (Verzani, 2012). 4/2/2013 7
  • 8. R GUI Projects  Python: OpenMeta-Analyst (Wallace et al, 2012)  Java: JGR (Java GUI for R), Deducer (Fellows, 2012), and Glotaran (Snellenburg, 2012).  Php: R-php (http://dssm.unipa.it/R-php/)  Other extensions connect R to graphical toolboxes for developing menus and dialog boxes: Tcltk, Gtk.  Today, we focus on Tcltk 4/2/2013 8
  • 9. R GUI Tcl/Tk  Most commonly used: easy, no additional software needed and ready to be used in R (tcltk package)  R-Tcl/Tk interface from the tcltk package (Dalgaard, 2001 and Welch, 2000).  The tcltk package allows the use of the Tk (toolkit) graphical user interface elements within R by embedding Tk commands into the R language. 4/2/2013 9
  • 10. R GUI Tcl/Tk  R GUIs developed by using tcl/tk or RGtk: • LimmaGUI (Wettenhall and Smyth, 2004), • LMMNorm (Haldermans, 2010), • IsoGeneGUI (Pramana et al. , 2010, 2012) • NeaGUI (Pramana et.al, 2013) • Rcommander (Fox, 2005) • RcmdrPlugin.biclustGUI (Pramana, 2011) 4/2/2013 10
  • 11. R GUI Tcl/Tk  R GUIs developed by using tcl/tk or RGtk: Independent GUI • LimmaGUI (Wettenhall and Smyth, 2004), • LMMNorm (Haldermans, 2010), • IsoGeneGUI (Pramana et al. , 2010, 2012) • NeaGUI (Pramana et.al, 2013) • Rcommander (Fox, 2005) • RcmdrPlugin.biclustGUI (Pramana, 2011) 4/2/2013 11
  • 12. R GUI Tcl/Tk  R GUIs developed by using tcl/tk or RGtk: • LimmaGUI (Wettenhall and Smyth, 2004), • LMMNorm (Haldermans, 2010), • IsoGeneGUI (Pramana et al. , 2010, 2011) • NeaGUI (Pramana et.al, 2013) Embeded GUI • Rcommander (Fox, 2005) • RcmdrPlugin.biclustGUI (Pramana, 2011) 4/2/2013 12
  • 13. IsoGeneGUI  To perform dose response microarray analysis in early drug development.  Identify genes with a monotonic trend in the expression levels with respect to the increasing doses  CLI based: IsoGene package (Pramana,2010) 4/2/2013 13
  • 14. IsoGeneGUI Main window of IsoGeneGUI 4/2/2013 14
  • 15. IsoGeneGUI: Isotonic Regression Plot Command line: IsoPlot(dose, express , type="ordinal", add.curve=TRUE) 4/2/2013 15
  • 16. IsoGeneGUI: Isotonic Regression Plot Command line: IsoPlot(dose, express , type="ordinal", add.curve=TRUE) 4/2/2013 16
  • 17. IsoGeneGUI: Significant Analysis Microarray qqstat <- Isoqqstat(x, y, fudge="pooled", niter=50) allfdr <- Isoallfdr(qqstat, , stat = "E2") IsoSAMPlot(qqstat, allfdr, FDR = 0.1, stat = "E2") SAM.Res <- IsoTestSAM(x, y, fudge="pooled", niter=50, FDR=0.05, stat="E2") 4/2/2013 17
  • 18. IsoGeneGUI: Significant Analysis Microarray qqstat <- Isoqqstat(x, y, fudge="pooled", niter=50) allfdr <- Isoallfdr(qqstat, , stat = "E2") IsoSAMPlot(qqstat, allfdr, FDR = 0.1, stat = "E2") SAM.Res <- IsoTestSAM(x, y, fudge="pooled", niter=50, FDR=0.05, stat="E2") 4/2/2013 18
  • 19. IsoGeneGUI Manual Guide  IsoGeneGUI help: htlm 4/2/2013 19
  • 20. IsoGeneGUI Manual Guide  IsoGeneGUI help: htlm 4/2/2013 20
  • 21. IsoGeneGUI Manual Guide  IsoGeneGUI help: htlm  Vignette: http://www.bioconductor.org/packages/2.11/bioc/vignettes/IsoGe neGUI/inst/doc/IsoGeneGUI.pdf  Users’ manual: http://www.ibiostat.be/software/IsoGeneGUI/files/IsoGeneGUI% 20users'%20manual.pdf 4/2/2013 21
  • 22. neaGUI  To help interpretation of differentially expressed (DE) genes in context of biological processes, pathways and networks.  Perform network enrichment analysis.  Input: DE genes  Output: enriched pathways statistics based on gene interaction networks. 4/2/2013 22
  • 23. neaGUI Output 4/2/2013 23
  • 24. neaGUI Output 4/2/2013 24
  • 25. RGUI, How to Build One?  Choose one of RGUI categories, and tools to be used (tcltk, java, etc.) which suit with the package purpose.  Make sketches of the window box and consider: • Input • Options • Output  Can all functions be run in a single window (e.g. neaGUI)? Or a main window with menu (IsoGeneGUI) and separate dialog boxes are needed? 4/2/2013 25
  • 26. Create Main Window tt <- tktoplevel() tkwm.title(tt,"My New GUI") topMenu <- tkmenu(tt) tkconfigure (tt,menu=topMenu) fileMenu <- tkmenu(topMenu,tearoff=FALSE) openMenu <- tkmenu(topMenu,tearoff=FALSE) tkadd(openMenu,"command",label="xls file", command= getXls) tkadd(openMenu,"command",label="text file”) 4/2/2013 26
  • 27. Create Main Window tt <- tktoplevel() tkwm.title(tt,"My New GUI") topMenu <- tkmenu(tt) tkconfigure (tt,menu=topMenu) fileMenu <- tkmenu(topMenu,tearoff=FALSE) openMenu <- tkmenu(topMenu,tearoff=FALSE) tkadd(openMenu,"command",label="xls file", command= getXls) tkadd(openMenu,"command",label="text file”) () { getXls <- function fileName <- tclvalue(tkgetOpenFile(filetypes= gettext(' {"Excel Files" {".xls"}} {"All Files" {"*"}}'))) data <- get( fileName) } 4/2/2013 27
  • 28. Create Main Window tt <- tktoplevel() tkwm.title(tt,"My New GUI") topMenu <- tkmenu(tt) tkconfigure (tt,menu=topMenu) fileMenu <- tkmenu(topMenu,tearoff=FALSE) openMenu <- tkmenu(topMenu,tearoff=FALSE) tkadd(openMenu,"command",label="xls file", command= getXls) tkadd(openMenu,"command",label="text file") tkadd(fileMenu,"cascade",label="Open data", menu=openMenu) tkadd(fileMenu,"cascade",label="Edit data") tkadd(fileMenu,"command",label="Quit",command=function() tkdestroy(tt)) tkadd(topMenu,"cascade",label="File",menu=fileMenu) tkadd(topMenu,"cascade",label="Help") tkfocus(tt) 4/2/2013 28
  • 29. Create a Dialog Box  Create the window require(tcltk) tt<-tktoplevel() tkwm.title(tt,"Input Window")  Edit Box Name <- tclVar("") entry.Name <-tkentry(tt,width="20", textvariable=Name) tkgrid(tklabel(tt,text="Name:"), entry.Name) 4/2/2013 29
  • 30. Create a Dialog Box  Radio button rb1 <- tkradiobutton(tt) rb2 <- tkradiobutton(tt) rbValue <- tclVar("Male") tkconfigure(rb1,variable=rbValue, value="Male") tkconfigure(rb2,variable=rbValue, value="Female") tkgrid(tklabel(tt,text="Sex:")) tkgrid(tklabel(tt,text="Male"),rb1) tkgrid(tklabel(tt,text="Female"),rb2) 4/2/2013 30
  • 31. Create a Dialog Box  List box with scroll bar scr <- tkscrollbar(tt, repeatinterval=5, command=function(...) tkyview(tl,...)) tl<-tklistbox(tt,height=4,selectmode="single", background="white") tkgrid(tklabel(tt,text="City:"), tl, scr) city <- c("Brussels","Jakarta", "London", "Stockholm") for (i in (1:4)) tkinsert(tl,"end",city [i]) tkselection.set(tl,1) tkgrid.configure(scr,rowspan=4,sticky="nsw") 4/2/2013 31
  • 32. Create a Dialog Box  OK button OK.but <-tkbutton(tt,text=" OK ", command=OnOK) tkgrid(OK.but) tkgrid.configure(OK.but) tkfocus(tt) 4/2/2013 32
  • 33. Run the function (OK button) 4/2/2013 33
  • 34. Run the function (OK button) OnOK <- function() { NameVal <- tclvalue(Name) rbVal <- as.character(tclvalue (rbValue)) if (rbVal=="Male") pref = "Mr." if (rbVal=="Female") pref = "Mrs.“ cityChoice <- city [as.numeric(tkcurselection(tl))+1] tkdestroy(tt) msg <- paste("Good morning ",pref , NameVal , "from", cityChoice, sep=" ") tkmessageBox(message=msg) } 4/2/2013 34
  • 35. Embeded R GUI: Rcmdr Plugin  GUIs that are embedded/attached into another GUI, i.e., R Commander (Rcmdr)  Rcmdr was originally developed as a basic- statistics graphical user interface (“GUI”) to R.  Rcmdr needs extension for specific statistical analysis  More than 20 Rcmdr plugins today 4/2/2013 35
  • 36. Rcmdr Plugin Advantages  Does not need to develop GUI for common procedures: Open, save and manipulate data.  Can use standard statistical analysis.  In term of programming: easier (standard tcltk commands are provided)  Users know how to work in command line 4/2/2013 36
  • 37. R Commander (Rcmdr)  Developed by John Fox from McMaster University, Canada.  Not only providing GUIs but also rendering users to R commands  Advantages: • Ease of use. Beginners will have less problem to start to use Rcmdr. • Coverage. Offers wide range of basic statistics analysis and data management. 4/2/2013 37
  • 38. R Commander (Rcmdr)  Advantages: • Cross-platform functionality. Primarily under Windows, but also available in Linux and Macintosh OS/X. • Extensibility: one can develop “plug-in" packages for new methods/analysis. • Protects the novices from errors. Limited options related to the current context will minimize the errors made by users. • Exposes users to R commands. 4/2/2013 38
  • 39. R Commander Main Window:  Script Window  Output Window  Messages 4/2/2013 39
  • 40. RcmdrPlugin.biclustGUI  An extension for the Rcmdr for biclustering analysis. Standard Rcmdr Menu 4/2/2013 40
  • 41. RcmdrPlugin.biclustGUI  An extension for the Rcmdr for biclustering analysis. Rcmdr with biclustering plugin Standard Rcmdr Menu 4/2/2013 41
  • 42. Create a Dialog Box initializeDialog(title = gettextRcmdr("Biclustering-CC")) specFrame <- tkframe(top, borderwidth=5) tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("CC Specification:"))) deltaVal <- tclVar(“ ") deltaField <- ttkentry(specFrame, width = "5",textvariable = deltaVal ) tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("Delta:")), deltaField) alphaVal <- tclVar("2") alphaField <- ttkentry(specFrame, width = "5",textvariable = alphaVal ) tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("Alpha:")), alphaField) 4/2/2013 42
  • 43. Create a Dialog Box numberVal <- tclVar("100") numberField <- ttkentry(specFrame, width = "5”, textvariable = numberVal) tkgrid(labelRcmdr(specFrame , text=gettextRcmdr("Maximal Numbers : ")), numberField) OKbutton <- buttonRcmdr(specFrame , text = gettextRcmdr("Show Result"), width = "12", command = onOK, default = "active", borderwidth = 3) tkgrid(OKbutton,Plotbutton ,exitButton ,helpButton) tkgrid(specFrame) dialogSuffix() 4/2/2013 43
  • 44. Submitting the job (OK button) onOK <- function() { .activeDataSet <- ActiveDataSet() delta <- paste(tclvalue(deltaVal )) alpha <- paste(tclvalue(alphaVal )) number <- if (tclvalue( numberVal) == "") "100“ else paste(tclvalue(numberVal)) doItAndPrint(paste("CCbics <-biclust(as.matrix(",.activeDataSet,"), method=BCCC(), delta=", delta, ", alpha= ", alpha, ", number= ",number ,")" , sep="") ) doItAndPrint("CCbics ") tkfocus(CommanderWindow()) } 4/2/2013 44
  • 45. doItAndPrint(paste("CCbics <-biclust(as.matrix(",.activeDataSet,"), method=BCCC(), delta=", delta, ", alpha= ", alpha, ", number= ",number ,")" , sep="") ) doItAndPrint("CCbics ") 4/2/2013 45
  • 46. Output 4/2/2013 46
  • 47. RcmdrPlugin.biclustGUI 4/2/2013 47
  • 48. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt. 4/2/2013 48
  • 49. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““ 4/2/2013 49
  • 50. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt. Define  menu/item line in menus.txt defines the top-level biclustGUI The first menu: Menu biclustMenu topMenu ““ ““ ““ ““ 4/2/2013 50
  • 51. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt. Name of  The first line in menus.txt defines the top-level biclustGUI new menu menu: Menu biclustMenu topMenu ““ ““ ““ ““ 4/2/2013 51
  • 52. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt. Parent of  The first line in menus.txt defines the top-level biclustGUI the menu menu: Menu biclustMenu topMenu ““ ““ ““ ““ 4/2/2013 52
  • 53. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““  The second line in menus.txt defines a menu item under biclust menu: item biclustMenu command "Biclustering Plaid " PlaidWin "" "packageAvailable ('RcmdrPlugin.BiclustGUI')" 4/2/2013 53
  • 54. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““ Define menu item The second line in menus.txt defines a menu item under biclust menu: item biclustMenu command "Biclustering Plaid " PlaidWin "" "packageAvailable ('RcmdrPlugin.BiclustGUI')" 4/2/2013 54
  • 55. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““ Menu item  The second line belongs to in menus.txt defines a menu item under biclust menu: item biclustMenu command "Biclustering Plaid " PlaidWin "" "packageAvailable ('RcmdrPlugin.BiclustGUI')" 4/2/2013 55
  • 56. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““ Menu item  The second line in menus.txt invokes a defines a menu item under biclust command menu: item biclustMenu command "Biclustering Plaid " PlaidWin "" "packageAvailable ('RcmdrPlugin.BiclustGUI')" 4/2/2013 56
  • 57. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““ Text  The second line in menus.txt defines displayed a menu item under biclust menu: item biclustMenu command "Biclustering Plaid " PlaidWin "" "packageAvailable ('RcmdrPlugin.BiclustGUI')" 4/2/2013 57
  • 58. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““ Called  The second line in menus.txt defines afunction menu item under biclust menu: item biclustMenu command "Biclustering Plaid " PlaidWin "" "packageAvailable ('RcmdrPlugin.BiclustGUI')" 4/2/2013 58
  • 59. RcmdrPlugin: Menu-Definition File  The plugin menus are defined the file: menus.txt.  The first line in menus.txt defines the top-level biclustGUI menu: Menu biclustMenu topMenu ““ ““ ““ ““ Conditional activation  The second line in menus.txt defines a menu item under biclust and installation menu: item biclustMenu command "Biclustering Plaid " PlaidWin "" "packageAvailable ('RcmdrPlugin.BiclustGUI')" 4/2/2013 59
  • 60. Next Stage  Error handling: message boxes, warnings, etc.  Trial by other people.  Compile as a package.  Submit in a repository for development we can use R- forge.  When all ready, submit to a repository, Bioconductor, or CRAN.  Bioconductor more restrict and have to comply all guidelines: http://www.bioconductor.org/developers/package- guidelines/ 4/2/2013 60
  • 61. Summary  A GUI could help novice R users for utilizing all the power of R.  Increase the use of our package/methods especially by scientists with no/less knowledge of R. 4/2/2013 61
  • 62. Summary  A GUI could help novice R users for utilizing all the power of R.  Increase the use of our package/methods especially by scientists with no/less knowledge of R.  Things to consider in developing a GUI: • Type of GUI (spreadsheets, menu/dialog boxes), • Tool to develop (tcltk, java) • Embedded/Independent. • Single/Multi dialog boxes 4/2/2013 62
  • 63. Summary  Independent GUI: really for a specific use, no need of “useless” capabilities, simpler.  Rcmdr PlugIn in: easier, all standard data manipulation and analysis is ready, users can learn the command. 4/2/2013 63
  • 64. Summary  Independent GUI: really for a specific use, no need of “useless” capabilities, simpler.  Rcmdr PlugIn in: easier, all standard data manipulation and analysis is ready, users can learn the command.  Make sure GUI is simple and user friendly.  Design  Development  Trial  Packaging and Storing 4/2/2013 64
  • 65. The GUIs  IsoGeneGUI:http://www.bioconductor.org/packages/2.11/ bioc/html/IsoGeneGUI.html  neaGUI: https://r-forge.r-project.org/projects/neagui/  biclustGUI: http://www.ibiostat.be/software/BiclustGUI/index.html  Examples of RGUI: • http://www.sciviews.org/_rgui/ • http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/ • http://setiopramono.wordpress.com/r-programming/ 4/2/2013 65
  • 66. Next Development:  Isogene RSB : Web based development using R Service Bus: http://www.openanalytics.eu/r-service-bus  R Service Bus: plug R into a processes independently of the technology used by other software applications involved in the workflow.  Web Based neaGUI using shiny  Shiny: Easy web applications in R: http://www.rstudio.com/shiny/ 4/2/2013 66
  • 67. RSB-IsoGene 4/2/2013 67
  • 68. Web based neaGUI 4/2/2013 68
  • 69. Collaborator  Karolinska Institutet, Sweden: Yudi Pawitan & Woojoo Lee  Scilifelab, Sweden: Andrey Alexeyenko  Johnson & Johnson Research and Development, Belgium: Luc Bijnes & Willem Talloen.  Hasselt University, Belgium: Ziv Shkedy, Dan Lin, Philippe H, Martin O Pushpike, Tatsiana K.  Open Analytics, Belgium: Tobias Verbeke  Johannes Kepler University of Linz, Austria: Sepp Hochreiter’s Group  LMU Munich, Germany: Sebastian Kaiser 4/2/2013 69
  • 70. Thank you for your attention… 4/2/2013 70
  • 71. References  Pramana, S., Lin, D., and Shkedy Z., (2010), IsoGeneGUI Bioconductor Package Vignette.  Pramana, S., Lin, D., Haldermans, P., Shkedy Z., and Verbeke, T., De Bondt, A., Talloen, W., Göehlmann,. H and Bijnens, L. (2010). “IsoGene: An R Package for Analyzing Dose-response Studies in Microarray Experiments", R Journal 2/1.  Pramana, S., Lin, D., Haldermans P., and Verbeke, T. (2102). “A User Friendly Interface for Analyzing Dose-response Studies in Microarray Experiments: The IsoGene-GUI package”, in Lin, D., Shkedy, Z., Yekutieli, D., Amaratunga, D. and Bijnens L. (editors). Modeling Dose-response Microarray Data in Early Drug Development Experiments Using R, Springer. 4/2/2013 71
  • 72. References  Pramana (2011) RcmdrPlugin.BiclustGUI: A User Friendly Interface for Biclustering Analysis, a chapter of PhD: “Statistical Methods for Microarray Experiments: Analysis Dose-response Studies and Software Development in R”, Hasselt University, Belgium.  Pramana, S., Lee, W., Alexeyenko, A., Pawitan., Y. (2012). neaGUI: A Graphical User Interface for Network Enrichment Analysis.  Fox J (2005). The R Commander: A Basic-Statistics Graphical User Interface to R." Journal of Statistical Software, 14(9), 1-42.  Valero-Mora, P.M and Ledesma R.D. (2012) “Graphical User Interfaces for R”. Journal of Statistical Software.  Verzani J (2007). An Introduction to gWidgets." R News, 7(3), 26-33. 4/2/2013 72

Editor's Notes

  1. http://uhasselt.openanalytics.eu:8080/rsb/rsb.html?form=isogene