RNetica, PNetica, CPTtools, Peanut and RGAuilts

This website plays host to four (for sufficiently large values of 4) different packages of functions useful for building Bayesian networks: RNetica, CPTtools, PNetica and Peanut.

I'm happy to announce that the packages are now available through R Universe. In particular, you should now be able to load the packages using the following R command:

In fact, installing PNetica is sufficient, as it will install the other packages as dependencies. The Windows and MacOS versions include the Netica shared library. The Source version will download the latest version of the Netica API from Norsys.

All four packages are beta-quality releases. There may be bugs and problems and users should be comfortable debugging in R. Although I am happy to accept bug reports, I do not promise to respond to them in a timely fashion. All four packages are now on github: CPTtools, RNetica, Peanut, PNetica. Feel free to raise issues on the github page.

Note that CPTtools is meant to be independent of the Bayes net implementation and Peanut, the object oriented later on top of it, depends on CPTtools but not the implementation specific packages. RNetica depends on the Netica Bayes net engine and PNetica is the Peanut implementation using RNetica.

I presented information about Peanut and PNetica, as well as CPTtools and RNetica, at the UAI workshop in 2015. The official paper is published in CEUR volume 1565, paper 4. Slides for the talk are available here (PDF).

I've Created a Vimeo Showcase, which contains some class videos going through the code. It is several years old, so the functions may have slightly changed, but the basic logic should be fine.

User Survey

I'm now conducting a user survey. It looks like I have more users than I thought I did, and I want to know a little bit about the projects for which RNetica is being used. (This will help me get funding to continue working on it.)

Please fill out the RNetica (and other package) survey.

About RNetica

RNetica is best thought of as a "glue" layer between the open source statistical programming language R http://www.r-project.org/ and the proprietary Bayesian network engine Netica ® http://www.norsys.com/. Doing non-trivial work with RNetica requires the purchase of a Netica API license from Norsys.

RNetica is now distributed in both source and object forms. Note that because RNetica uses c code, it requires knowledge of how to compile R packages. Instructions can be found at CRAN.

Click here for information about RNetica.


Conditional Probability Table (CPT) Tools is a package of R functions for constructing and manipulating conditional probability tables: one of the basic building blocks of Bayesian networks. The tools were originally designed to work with StatShop (an internal Bayesian network program developed at ETS), but they are general enough to work with other Bayes net packages as well. The versions here are compatible with RNetica.

It also contains tools for displaying and analyzing the output of Bayesian network analyses. Again, the tools were originally designed to work with the output of StatShop, but work equally well with RNetica output. Again, they should work with the output of other Bayes net packages with minimal adaptation.

CPTtools is beta release; however, the code is all in R, and hence does not require advanced knowledge of R.

Click here for information about CPTtools.

Peanut and PNetica

Peanut is an object oriented layer on top of CPTtools, for associating choices of parameters and parameterizations with specific parameterized nodes (Pnodes) in a parameterized network (Pnet). Peanut is mostly a generic interface, and PNetica is a specific implementation of the Peanut framework using RNetica.

Peanut and PNetica are in beta release; however, the code is all in R, and hence does not require advanced knowledge of c. Peanut now includes some GUIs written in shiny and requires the shinyjs package. These form the backbone of the EABN package (see Proc4).

Click here for information about Peanut and PNetica.

Russell G Almond's utilities

I've separated out a small collection of functions which I thought were generally useful, and not necessarily related to the Bayes net stuff into a RGAutils package.

Click here for information about RGAutils.

Proc4 Project

I've started a new project implementing the four process architecture in R. This is available at https://pluto.coe.fsu.edu/Proc4. This includes the new rule based evidence identification system EIEvent.

RSS Feed

After learning that people were scraping my site looking for new releases, I've added an RSS feed. The link is RNeticaRSS.

Sponsorship Information

Work on RNetica, CPTtools and Peanut has been sponsored in part by the Physics Playground and E-Rebuild projects, on which many of the tools were tested. Physics Playground development was supported by the Bill & Melinda Gates Foundation grant Games as Learning/Assessment: Stealth Assessment (#0PP1035331, Val Shute, PI) and the National Science foundation grant DIP: Game-based Assessment and Support of STEM-related Competencies (#1628937, Val Shute, PI). The project Mathematical Learning via Architectual Design and Modeling Using E-Rebuild. (#1720533, Fengfeng Ke, PI) has provided additional support. The tool development parts of each of these projects was led by Russell Almond .

Site last updated on 2022-06-22.