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?
Open Source components that can be
useful
Decimaker demonstration
Installation & required components
Some tools used during development
Conclusion
Decimaker 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:
Why & How?
Build a software using R:
Part 1 - Why?
R is command-line statistical software widely
used by researchers
A 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:
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 project
Use the methods of the StatConnector object
to evaluate R commands
STATCONNECTORSRVLib.StatConnector R = new STATCONNECTORSRVLib.StatConnector();
R.Init("R");
R.EvaluateNoReturn("a<-12");
object ret = R.Evaluate("a");
Graphical open source components
that can be useful
Because adding a professional and pleasant
interface to an application can be the most
time-consuming part of the development
Open Source components that can be useful:
Part 1 – R Server ActiveX components
R (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 useful:
Part 1 – R Server ActiveX components
R (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)ax
StatConnectorCharacterDevice.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 useful:
Part 2 – Charting 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 useful:
Part 3 – Icons
FAMFAMFAM 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 &
required components
Decimaker 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 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
software development
Some tools used during
development
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
Conclusion
Significant time was spent on searching,
assessing and in integrating existing components
Accurate results, fast computations and very nice
and usable graphical outputs.
The open source community provides key
products
The power of R
A downside: users are bound to install all
required R components
◦ 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
Thank you!
Julien Vanwinsberghe
[email protected]
Licenses
R (D)COM Server
R
Not included in
Decimaker
ZedGraph
Lesser General Public
License (LGPL)
FamFamFam Silk Icons
Creative Commons
Attribution 2.5 License
A.J. Bauer Gauge
No license (just keep
included code header)
Krypton Toolkit
Free to use runtime
Another tool to access R from and
application: 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 useful:
Part 3 – Windows Form Controls
Component Factory Toolkit library
• Improved versions of
common used form
controls
• Pretty design
• More functionalities
• Often updated
© Copyright 2026 Paperzz