Merges mixture components from the flowClust framework based on the entropy of clustering and provides a simple representation of complicated, non-convex cell populations.
High density, non-convex cell populations in flow cytometry data often require multiple mixture components for a good model fit. The components are often overlapping, resulting in a complicated representation of individual cell populations. flowMerge merges overlapping mixture components (based on the max BIC
flowClust model fit) in an iterative manner based on an entropy criterion, allowing these cell populations to be represented by individual mixture components while retaining the good model fitting properties of the BIC solution. Estimates of the number of clusters from a
flowMerge model more accurately represent the "true" number of cell populations in the data.
flowMerge is relatively straightforward. A
flowClust object is converted to a
flowObj object, which groups the model and the data (a
flowFrame) into a single object. This is done by a call to
flowObj(model, data) with a call to
merge, which takes a
The algorithm may be run in parallel on a multi-core machine or a networked cluster of machines. It uses the functionality in the
snow package to achieve this. Parallelized calls to
flowClust are available via the
flowMerge has functionality to automatically select the "correct" number of clusters by fitting a piecewise linear model to the entropy of clustering vs number of clusters, and locating the position of the changepoint. The piecewise linear model fitting is invoked by a call to
fitPiecewiseLinreg, which returns the location of the changepoint.
Maintainer: Greg Finak <email@example.com>
Finak G, Bashasharti A, Brinkmann R, Gottardo R. Merging Mixture Model Components for Improved Cell Population Identification in High Throughput Flow Cytometry Data; Advances in Bioinformatics (To Appear)
1 2 3 4 5 6 7
#data(rituximab) #data(RituximabFlowClustFit) #o<-flowObj(flowClust.res[[which.max(flowMerge:::BIC(flowClust.res))]],rituximab); #m<-merge(o); #i<-fitPiecewiseLinreg(m); #m<-m[[i]]; #plot(m,pch=20,level=0.9);
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.