You are here: Home Software


NOTE:  Users are still welcome to download our free software, but unfortunately we are no longer actively providing support for our ROC packages due to lack of funding.

(click here to skip down to Metz-ROC Software Downloads)

General Description


The ROC-kit environment is built on a set of core ROC-analysis procedures, which have been developed at the University of Chicago over many years. Some of these procedures are derived from previously well known computer programs such as:

  • PROPROC now called PBMROC


Eventually all our previous analysis methods will be available, plus many more. The pieces of software not yet included are described in the “Legacy Software” section.

The main purpose of the environment is to render those functionalities available to users in the form they are most comfortable using. For example, our libraries are build to allow people to use those functions by using our Graphical User Interface (i.e., a standalone interface for issuing directives about how to analyze a set of data), by calling them either from a favorite analysis platform (e.g., R, Matlab, IDL, SAS) or by including the procedure in a program (as library) or a script (as command line executable). The design of the system should allow it to work or at least be available on a range of operating systems (e.g., Windows 7 or Vista, Mac OS X 10.6 or 10.5, and various brands and version of Linux, mostly depending upon the version of gcc available and of its related libraries, linkers and loaders).

Please note that we are not discussing ROC analysis in general here.  For information on that subject, please refer to our "readings in ROC analysis with emphasis on medical applications" section.

In general we reply to inquiries quickly and try to help our users whenever their requests appear to be reasonable and useful to others as well. All polite messages will be addressed and there are no questions we consider silly or bugs/mistakes we are unwilling to make amend for. So please give us feedback whenever you find a problem or you need help.

Some general naming schemes used in these documents

  • PBM → proper binormal model
  • CvBM → conventional binormal model
  • nonparametric → non-parametric model (e.g., some statistic usually called a proportion,  U-statistic, Wilcoxon, Mann-Whitney statistic)
  • AUC → area under the roc curve
  • pAUC → partial area under the ROC curve
  • TPF → true positive fraction
  • FPF → false positive fraction


Here by legacy software we do not mean necessarily software that is discontinued, unsupported or just plain old.  Instead, we mean software that it is either still used (and might not be supported) or simply has not been included in the ROC-kit environment yet. Our goal is to include all of these functionalities into ROC-kit.

Simulation Study Results


We performed a series of simulation studies to test the behavior of a subset of the library functions in the Matlab computing environment.  We have only recently begun providing support for this environment under our library.  Our simulation studies therefore had two purposes: to verify that the behavior of the libarary's interface under Matlab is consistent in "look and feel" with native matlab functions; and, more important, to verify that the results of those simulation studies are consistent with the results obtained from the library functions under other computing environments.

Click here to read further and see the simulation results compared with the truth.

How to call our ROC computation procedures


The following document contains the definition of various functions and how they can be called from an external program/scripting language/environment after they have been compiled. Some details about those calls are provided (mostly for the R environment, which is what we recommend to users if they do not have a personal preference). We recommend that users run the command "nm", or its equivalent, on the compiled library to determine the specific name mangling used by the compiler that made the library for their operating system. Getting the name mangling correct is essential, because the mangled name is the one that should be used to call those procedures.  The mangling alternatives reported here were observed with gcc-4.1 to gcc-4.4. We are referring mostly to entities known as dynamic linked libraries, shared or loadable objects and run-time libraries (referred to .dll on Windows, .so on Apple OS X and Linux -- examples of names are:, roc.dll and so on); other types of libraries can in principle be constructed from static libraries (.a) to other slightly less known entities. We will not be discussing in detail the nature of such entities, but they can be useful to people who plan to do massive simulations or work with programs or environments that might be unreliable with position independent code.

At this time we are not providing the source code for the libraries. However, it will be released at some point in the near future.

The list is not exhaustive, which means that many more functions are actually available from our libraries than are described here. The list is updated regularly and with time more descriptions will be included.

Interface functions for using the library under Matlab and Python

As stated above, the purpose of the library is to allow our ROC analysis software functions to be called from a variety of platforms.  Not all platforms, however, provide equally simple interfaces for calling such external libraries.  As we describe in more detail in the following document, Matlab, for example, requires the user to convert their data from the platform's native data type into "pointers" which are sent to the library; the "pointers" returned by the library must be converted back into native data types using a similar procedure.

We have written interface functions for both the Matlab and Python platforms which accept and return native data types, performing these
conversions (and other "bookkeeping" required to load external libraries) automatically for the user.  Users interested in either of
these interfaces are asked to contact us for more information.

Click here for detailed instructions.

Command line executables to fit proper and conventional binormal models


CvBMROC and PBMROC are our most recent implementations of the conventional binormal model (CvBMROC.x.x.x, which supersedes ROCFIT; LABROC4 and earlier versions thereof; and the single-modality curve-fitting capability of ROCKIT.x.x) and the proper binormal model (PBMROC.x.x.x, which supersedes proproc.x.x and its previous implementations).

Click here to continue reading.

Metz-ROC Software Downloads

All Metz-ROC software is available to the public free of charge.  However, in order to download our software we kindly ask that you have an account with us and be logged in.  If you do not have an account already, you can create one on our main page.