julien vanwinsberghe , clinbay , france francois vandenhende, clinbay , belgium
DESCRIPTION
Decimaker: A statistical software using R, Microsoft .NET, R (D)COM Server and graphical libraries. Julien Vanwinsberghe , ClinBAY , France Francois Vandenhende, ClinBAY , Belgium. Presentation outline. Decimaker software highlight Build a software using R: Why & How? - PowerPoint PPT PresentationTRANSCRIPT
Decimaker: Decimaker: A statistical software using A statistical software using R, Microsoft .NET, R (D)COM R, Microsoft .NET, R (D)COM Server and graphical Server and graphical libraries libraries
Julien Vanwinsberghe, ClinBAY, France Francois Vandenhende, ClinBAY, Belgium
Presentation outlinePresentation outlineDecimaker software highlightBuild a software using R: Why & How?Open Source components that can be
usefulDecimaker demonstrationInstallation & required componentsSome tools used during developmentConclusion
Decimaker software highlightDecimaker software highlight Decimaker: software for Adaptive
Dose-Response Trials and Bayesian Decision Analysis◦ Designed to assist clinical
development teams ◦ protocol design, trial simulations and
analysis
User-friendly graphical interface
Components◦ Statistics: R and Open Bugs◦ GUI: C# and .NET Framework 2.0◦ Connection to R: R(D)COM Server
Build a software using R:Build a software using R:Why & How?Why & How?
Build a software using R:Build a software using R:Part 1 - Why?Part 1 - Why?R is command-line statistical software widely
used by researchersA lot of statistical methods have been developed
in R R is open-source
◦ Number of packages steadily increasing◦ Fast and robust
lack of an intuitive graphical interface for novices -> develop an interface easily understandable around the R programs
Decimaker: kernel is a set of R programs, enhanced by a graphical interface
Build a software using R:Build a software using R:Part 2 - How?Part 2 - How?R (D)COM Server: COM server used to connect
a client application (e.g. Microsoft Excel) with R◦ Environment: MS Windows◦ Methods to transfer data to/from R
Add the COM references to the C# .NET projectUse the methods of the StatConnector object to
evaluate R commandsSTATCONNECTORSRVLib.StatConnector R = new STATCONNECTORSRVLib.StatConnector(); R.Init("R"); R.EvaluateNoReturn("a<-12"); object ret = R.Evaluate("a");
Graphical open source components Graphical open source components that can be usefulthat can be useful
Because adding a professional and pleasant Because adding a professional and pleasant interface to an application can be the most interface to an application can be the most time-consuming part of the developmenttime-consuming part of the development
Open Source components that can be Open Source components that can be useful:useful:Part 1 – Part 1 – R Server ActiveX componentsR Server ActiveX componentsR (D)COM Server includes two ActiveX
controls
• Easy to implement
• To show R graphical output
• To Show R text output
Display plots Transmit text outputs
Open Source components that can be Open Source components that can be useful:useful:Part 1 – Part 1 – R Server ActiveX componentsR Server ActiveX componentsR (D)COM Server includes two ActiveX
controls public void TestAxStatConnectors() { // Create an instance of the StatConnector STATCONNECTORSRVLib.StatConnector R = new STATCONNECTORSRVLib.StatConnector(); // Initialize R R.Init("R"); // Connect graphical and text devices R.AddGraphicsDevice("gfx", axStatConnectorGraphicsDevice.GetGFX()); R.SetCharacterOutputDevice((StatConnectorCommonLib.IStatConnectorCharacterDevice)axStatConnectorCharacterDevice.GetOcx()); // Test with R commands R.EvaluateNoReturn("print(\"plot(sin(1:100))\")"); R.EvaluateNoReturn("plot(sin(1:100))"); R.EvaluateNoReturn("print(\"Done.\")"); }
Open Source components that can be Open Source components that can be useful:useful:Part 2 – Part 2 – Charting and Gauge controlsCharting and Gauge controls• ZedGraph and A.J. Bauer Gauge are open-source charting and
gauge libraries
ZedGraph 2D line
and bar charts of arbitrary datasets
High degree of flexibility
A.J. Bauer gauge
Fast and performing
Several themes
Fully customizable
• Necessitates more code, but as a result, the quality of the graphical outputs is significantly improved
Open Source components that can be Open Source components that can be useful:useful:Part 3 – IconsPart 3 – IconsFAMFAMFAM Silk icon library
• To add a final polish
• Smooth, colourful icons for any purpose
• > 700 16x16 px icons
Decimaker Demonstration
Website : www.decimaker.com
Decimaker installation & Decimaker installation & required componentsrequired components
Decimaker required componentsDecimaker required components
Platform: Microsoft Windows
Required components:◦ R and required
packages◦ R (D)COM Server◦ .NET Framework 2.0
Very complicated◦ Errors in the first
attempt to execute the application
Decimaker required componentsDecimaker required components
Test the proper installation of required external components
string Rpath; // Variable that will contain R install path Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\R-core\R"); if (key != null) { Rpath = key.GetValue("InstallPath", "").ToString(); // Can be in DOS format if (System.IO.Directory.Exists(Rpath)) // Transform to complete path Rpath = (new System.IO.DirectoryInfo(installedPath)).FullName; }
Some tools used during Some tools used during software developmentsoftware development
Some tools used during Some tools used during developmentdevelopment Subversion: version control system
◦ used on many open source projects (Apache, KDE, Pyton, …) ◦ manages current and historical versions of files
BugTracker .NET: open-source, web-based bug tracker ◦ particularly easy to handle◦ permits to keep track of reported software bugs◦ supports integration with Subversion
FxCop: Microsoft application that analyzes managed code ◦ to find possible improvements that can be made
Testlink: test tool◦ web based interface ◦ create, manage and plan tests
ConclusionConclusionSignificant time was spent on searching,
assessing and in integrating existing componentsAccurate results, fast computations and very nice
and usable graphical outputs. The open source community provides key
productsThe power of R
◦ Quality of results, speed up development◦ Decimaker is not a black-box: import statistical models,
define R formulas and queries, export results as R objects
A downside: users are bound to install all required R components
Thank you!Thank you!
Julien VanwinsbergheJulien Vanwinsberghe [email protected]@clinbay.com
LicensesLicensesR (D)COM ServerR
ZedGraph
FamFamFam Silk Icons
A.J. Bauer Gauge
Krypton Toolkit
Not included in Decimaker
Lesser General Public License (LGPL)
Creative Commons Attribution 2.5 License
No license (just keep included code header)
Free to use runtime
Another tool to access R from and Another tool to access R from and application: R Serveapplication: R Serve
Rserve is a TCP/IP server
supports remote connection, authentication and file transfer
Easy integration:Rconnection c = new Rconnection();double d[]=c.eval("rnorm(10)").asDoubleArray();
Not advised for windows servers
http://www.rforge.net/Rserve/
Open Source components that can be Open Source components that can be useful:useful:Part 3 – Windows Form ControlsPart 3 – Windows Form ControlsComponent Factory Toolkit library
• Improved versions of common used form controls
• Pretty design
• More functionalities
• Often updated