The WFDB Software Package

Software for viewing, analyzing, and creating recordings of physiologic signals

Quick start guides are available for:

What's new in the WFDB Software Package (last modified Thursday, 28 May 2015 at 21:55 CEST)
Most recent source tarball (signature) and source tree

On this page:


What is the WFDB Software Package?

Effective use of PhysioBank data requires specialized software. We have developed a large collection of such software over the past twenty years, and much of it is contained within the WFDB (WaveForm DataBase) Software Package, the GPLed successor to the MIT DB Software Package.

The major components of the WFDB Software Package are the WFDB library, about 75 WFDB applications for signal processing and automated analysis, and the WAVE software for viewing, annotation, and interactive analysis of waveform data. A comprehensive collection of documentation, including tutorials and reference manuals, is also included in the package.

The package is frequently updated; a summary of recent changes can be found here. The package is written in highly portable C and can be used on all popular platforms, including GNU/Linux, MacOS/X, MS-Windows, and all versions of Unix.


WFDB library

This is a set of functions (subroutines) for reading and writing files in the formats used by PhysioBank databases (among others). The WFDB library is LGPLed, and can be used by programs written in ANSI/ISO C, K&R C, C++, or Fortran, running under any operating system for which an ANSI/ISO or K&R C compiler is available, including all versions of Unix, MS-DOS, MS-Windows, the Macintosh OS, and VMS.

Optionally, the WFDB library may be compiled with support for reading input directly from web (HTTP) and FTP servers without the use of a web browser or an FTP client. This optional feature allows applications linked with the WFDB library to view or analyze data such as those available from PhysioBank without the need to download entire records and to store them locally. To enable this feature, you will also need either the World Wide Web Consortium's libwww package, or the modern and enhanced alternative, libcurl.

The WFDB library is documented by the WFDB Programmer's Guide (available as HTML or PDF). Texinfo sources for the WFDB Programmer's Guide are included in the doc directory of the WFDB Software Package.


WFDB applications

A large set of well-tested, interoperable command-line tools for signal processing and automated analysis is included in the app, convert, and psd directories of the WFDB Software Package. These applications are described in the WFDB Applications Guide (available as HTML or PDF). The troff (Unix man page) sources for the WFDB Applications Guide are included in the doc directory of the WFDB Software Package.

Two American National Standards, ANSI/AAMI EC38:1998 (Ambulatory Electrocardiographs) and ANSI/AAMI EC57:1998 (Testing and Reporting Performance Results of Cardiac Rhythm and ST Segment Measurement Algorithms) require the use of several of the WFDB applications for evaluation of certain devices and algorithms. For details, see Evaluating ECG Analyzers in the WFDB Applications Guide.


WAVE for GNU/Linux, FreeBSD, Mac OS/X, MS-Windows, Solaris, and SunOS

WAVE is an extensible interactive graphical environment for manipulating sets of digitized signals with optional annotations. WAVE is built using the WFDB library developed for physiologic signal processing, so it can be applied to any of a wide variety of data formats supported by the WFDB library. WAVE can run on GNU/Linux or FreeBSD PCs, Mac OS X, MS-Windows PCs, and Sun workstations, or on any other systems to which the open-source XView toolkit has been ported; in addition, it can be accessed remotely using networked PCs, Macintoshes, or other systems for which X11 servers are available.

Among WAVE's capabilities are:

A complete set of sources for WAVE is included in the wave directory of the WFDB Software Package. The WAVE User's Guide (available as HTML or PDF) contains both tutorial and reference material. The LaTeX source for the WAVE User's Guide is included in the doc directory of the WFDB Software Package.

For convenience, XView sources are available here, as are XView binaries for GNU/Linux, Mac OS X, and MS-Windows, instructions for installing them, as well as information about how to find or create XView libraries for FreeBSD, Solaris, and other versions of Unix. The source and binary packages contain the xview and olgx libraries needed by WAVE.

Related software packages

The packages described in this section allow use of the WFDB software from other environments and programming languages. These packages are not included in the WFDB Software Package; they must be installed separately.

WFDB Python Package

The WFDB Python package contains a library of native python scripts for reading and writing WFDB signals and annotations without any dependencies on the original WFDB software package

WFDB Toolbox for MATLAB

The WFDB Toolbox for MATLAB provides access from MATLAB to more than 20 of the applications included in the WFDB Software Package. The toolbox provides MATLAB and Java wrappers for these applications, and an installer that runs within MATLAB to install both the toolbox itself and the precompiled WFDB Software Package executables upon which it relies. The toolbox can be used with 64-bit MATLAB R2010b or later on GNU/Linux, Mac OS X, and MS-Windows.

WFDB-SWIG for Java, Perl, Python, and more

The wfdb-swig package provides interfaces between the WFDB library and software written in a variety of other languages, so that such software can have access to the full range of capabilities supported by current and future versions of the WFDB library. The package provides interfaces for software written using Perl, Python, C# (and other .NET languages), and Java. The wfdb-swig package can be readily extended for use with other target languages supported by SWIG, such as PHP, Ruby, TCL, and several versions of Lisp.



Quick start guides are available for FreeBSD, GNU/Linux, Mac OS/X (Darwin), MS-Windows 95/98/ME/NT/2000/XP, and Solaris. (If your platform is not one of these, install the package from sources, following the procedure in the GNU/Linux quick start guide.)

Sources: The current version of the WFDB Software Package (most recently updated on Thursday, 28 May 2015 at 22:19 CEST) may be downloaded in source form, as a compressed tar archive (2.1M). A shorter version (910K), without the documentation, is also available. (WinZip users, please read about how to unpack .tar.gz archives in the FAQ.) You may also browse through the source tree to read or download individual files.

Development snapshots of the WFDB Software Package may be available as beta software. Beta software is available in source form only, to those with the skills, patience, and willingness to contribute to the final stages of the process of testing and debugging upcoming releases of PhysioToolkit software. Don't use beta software if you need support!

Older stable versions of the WFDB Software Package are also available in the PhysioToolkit Archives.

Ready-to-run, precompiled binaries are available for several popular operating systems. Please read the quick start guide for your platform before installing any of these binaries! Contributions of binaries for other operating systems are welcome; please write to us first.

Documentation: A comprehensive set of tutorials and reference manuals can be read on-line or downloaded and printed.

Questions and Comments

If you would like help understanding, using, or downloading content, please see our Frequently Asked Questions.

If you have any comments, feedback, or particular questions regarding this page, please send them to the webmaster.

Comments and issues can also be raised on PhysioNet's GitHub page.

Updated Thursday, 6 April 2017 at 21:25 CEST

PhysioNet is supported by the National Institute of General Medical Sciences (NIGMS) and the National Institute of Biomedical Imaging and Bioengineering (NIBIB) under NIH grant number 2R01GM104987-09.