Learn R Programming

APCluster - An R Package for Affinity Propagation Clustering

In order to make Affinity Propagation Clustering introduced by Frey and Dueck (2007; DOI:10.1126/science.1136800) accessible to a wider audience, we ported the Matlab code published by the authors to R. The algorithms are largely analogous to the Matlab code published by Frey and Dueck. The package further provides leveraged affinity propagation and an algorithm for exemplar-based agglomerative clustering that can also be used to join clusters obtained from affinity propagation. Various plotting functions are available for analyzing clustering results.

The package is maintained by Ulrich Bodenhofer. The package itself has grown over the years in which multiple students have contributed significant parts: Johannes Palme, Chrats Melkonian, Andreas Kothmeier, and Nikola Kostic

Installation

The package can be installed from CRAN. Therefore, the the simplest way to install the package is to enter

install.packages("apcluster")

into your R session. If, for what reason ever, you prefer to install the package manually, follow the instructions in the user manual.

Webinar "Introduction to apcluster"

On June 13, 2013, the maintainer of the package, Ulrich Bodenhofer, gave a webinar on the apcluster package. The webinar was hosted by the Orange County R User Group and moderated by its president, Ray DiGiacomo, Jr. The demo uses Version 1.3.2 of the package (released June 11, 2013). Link to recorded video of webinar: YouTube Video(length: 59:17)

User support

If you encounter any issues or if you have any question that might be of interest also for other users, before writing a private message to the package developers/maintainers, please create an issue in this repository and also consider posting to the R-help Mailing List or on StackOverflow. For other matters regarding the package, please contact the package author.

Citing this package

If you use this package for research that is published later, you are kindly asked to cite it as follows:

  • U. Bodenhofer, A. Kothmeier, and S. Hochreiter (2011). APCluster: an R package for affinity propagation clustering. Bioinformatics 27:2463-2464. DOI: 10.1093/bioinformatics/btr406

Moreover, we insist that, any time you use/cite the package, you also cite the original paper in which affinity propagation has been introduced:

  • B. J. Frey and D. Dueck (2007). Clustering by passing messages between data points. Science 315:972-976. DOI: 10.1126/science.1136800

Copy Link

Version

Install

install.packages('apcluster')

Monthly Downloads

11,058

Version

1.4.14

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Ulrich Bodenhofer

Last Published

September 22nd, 2025

Functions in apcluster (1.4.14)

apclusterK

Affinity Propagation for Pre-defined Number of Clusters
apclusterDemo

Affinity Propagation Demo
plot

Plot Clustering Results
conversions

Conversions Between Dense and Sparse Similarity Matrices
preferenceRange

Determine Meaningful Ranges for Input Preferences
similarities

Methods for Computing Similarity Matrices
sort-methods

Sort clusters
cutree-methods

Cut Out Clustering Level from Cluster Hierarchy
show-methods

Display Clustering Result Objects
labels-methods

Generate label vector from clustering result
heatmap

Plot Heatmap
ExClust-class

Class "ExClust"
apcluster-package

APCluster Package
apclusterL

Leveraged Affinity Propagation
APResult-class

Class "APResult"
AggExResult-class

Class "AggExResult"
aggExCluster

Exemplar-based Agglomerative Clustering
apcluster

Affinity Propagation
coerce-methods

Coercion of cluster hierarchies