dist.template {flowMatch} | R Documentation

## Dissimilarity between a pair of FC templates

### Description

Compute the dissimilarity between a pair of FC templates by using Mixed Edge Cover (MEC) algorithm.

### Usage

    dist.template(template1, template2, dist.type='Mahalanobis', unmatch.penalty=999999)

### Arguments

`template1` | an object of class `Template` containing cell populations from template 1.
`template2` | an object of class `Template` containing cell populations from template 2.
`dist.type` | character, indicating the method with which the dissimilarity between a pair of meta-clusters is computed. Supported dissimilarity measures are: 'Mahalanobis', 'KL' and 'Euclidean'.
`unmatch.penalty` | A numeric value denoting the penalty for leaving a meta-cluster unmatched. This parameter should be already known or be estimated empirically estimated from data (see the reference for a discussion). Default is set to a very high value so that no meta-cluster remains unmatched.

### Details

We used a robust version of matching called Mixed Edge Cover (MEC) to match meta-clusters across a pair of templates. MEC allows a meta-cluster to be matched with zero, one or more than one meta-clusters in a paired template. The cost of an MEC solution is equal to the summation of dissimilarities of the matched meta-clusters and penalty for the unmatched meta-clusters. The MEC algorithm finds an optimal solution by minimizing the cost of MEC, which is then used as dissimilarity between a pair of templates.

### Value

`dist.template` returns a numeric value representing dissimilarity between a pair of templates. This value is equal to the summation of dissimilarities of the matched meta-clusters and penalty for the unmatched meta-clusters.

### Author(s)

Ariful Azad

### References

Azad, Ariful and Langguth, Johannes and Fang, Youhan and Qi, Alan and Pothen, Alex (2010), Identifying rare cell populations in comparative flow cytometry; Algorithms in Bioinformatics, Springer, 162-175.

### See Also

`Template`, `match.clusters`

### Examples

    ## ------------------------------------------------
    ## load data and retrieve two templates
    ## ------------------------------------------------

    library(healthyFlowData)
    data(hd)

    ## ------------------------------------------------
    ## Retrieve each sample, clsuter it and store the
    ## clustered samples in a list
    ## ------------------------------------------------

    cat('Clustering samples: ')
    clustSamples = list()
    for(i in 1:10) # read 10 samples and cluster them
    {
      cat(i, ' ')
      sample1 = exprs(hd.flowSet[[i]])
      clust1 = kmeans(sample1, centers=4, nstart=20)
      cluster.labels1 = clust1$cluster
      clustSample1 = ClusteredSample(labels=cluster.labels1, sample=sample1)
      clustSamples = c(clustSamples, clustSample1)
    }

    ## ------------------------------------------------
    ## Create two templates each from five samples
    ## ------------------------------------------------

    template1 = create.template(clustSamples[1:5])
    template2 = create.template(clustSamples[6:10])

    D = dist.template(template1, template2, dist.type='Mahalanobis', unmatch.penalty=999999)

[Package flowMatch version 1.16.0 Index]