cluster (phytree)

Подтвердите кластеры в филогенетическом дереве

Синтаксис

LeafClusters = cluster(Tree, Threshold)
[LeafClusters, NodeClusters] = cluster(Tree, Threshold)
[LeafClusters, NodeClusters, Branches] = cluster(Tree, Threshold)
cluster(..., 'Criterion', CriterionValue, ...)
cluster(..., 'MaxClust', MaxClustValue, ...)
cluster(..., 'Distances', DistancesValue, ...)

Входные параметры

Tree

Филогенетический древовидный созданный объект, такой, как создано с phytree функция конструктора.

Threshold

Скаляр, задающий пороговое значение.

CriterionValue

Вектор символов или строка, задающая критерий, чтобы определить количество кластеров в зависимости от разновидностей попарные расстояния. Выбор:

  • 'maximum' (значение по умолчанию) — Максимум на кластерном попарном расстоянии (Wmax). Разделение кластера останавливается когда WmaxThreshold.

  • 'median' — Медиана на кластерном попарном расстоянии (Wmed). Разделение кластера останавливается когда WmedThreshold.

  • 'average' — Среднее значение на кластерном попарном расстоянии (Wavg). Разделение кластера останавливается когда WavgThreshold.

  • 'ratio' — Между/в кластерным попарным отношением расстояния, заданным как

    BWrat = (трассировка (B) / (k - 1)) / (трассировка (W) / (n - k))

    где B и W между - и матрицы в рассеянии, соответственно. k является количеством кластеров, и n является количеством разновидностей в дереве. Разделение кластера останавливается когда BWratThreshold.

  • 'gain' — В кластерном попарном усилении расстояния, заданном как

    Wgain = (трассировка (Wold) / (трассировка (W) - 1) * (n - k - 1))

    где W и Wold являются матрицами в рассеянии для k и k - 1, соответственно. k является количеством кластеров, и n является количеством разновидностей в дереве. Разделение кластера останавливается когда WgainThreshold.

  • 'silhouette' — Средняя ширина контура (SWavg). SWavg лежит в диапазоне от -1 к +1. Разделение кластера останавливается когда SWavgThreshold. Для получения дополнительной информации смотрите silhouette.

MaxClustValue

Положительное целое число, задающее максимальное количество возможных кластеров для протестированных разделов. Значением по умолчанию является количество листов в дереве.

Совет

При использовании 'maximum'медиана, или 'average' критерии, набор Threshold к [] (пустой), чтобы обеспечить cluster возвратить MaxClustValue кластеры. Это делает так, потому что такие метрики монотонно уменьшаются, когда k увеличивается.

Совет

При использовании 'ratio', 'gain', или 'silhouette' критерии, можно быть трудно оценить соответствующий Threshold заранее. Установите Threshold к [] (пустой), чтобы найти оптимальное количество кластеров ниже MaxClustValue. Кроме того, установите MaxClustValue к маленькому значению, чтобы избежать дорогого расчета из-за тестирования всего возможного количества кластеров.

DistancesValue

Матрица попарных расстояний, такой, как возвращено seqpdist функция, содержа биологические расстояния между каждой парой последовательностей. cluster замены эта матрица для принадлежащих отцам церкви расстояний в Tree. Например, эта матрица может содержать действительные демонстрационные попарные расстояния.

Выходные аргументы

LeafClusters

Вектор-столбец, содержащий кластерный индекс для каждой разновидности (лист) в Tree, филогенетический древовидный объект.

NodeClusters

Вектор-столбец, содержащий кластерный индекс для каждой вершины и узла ветви в Tree.

Совет

Используйте LeafClusters или NodeClusters выходные векторы с указателем, возвращенным plot метод, чтобы изменить графические элементы филогенетического древовидного объекта. Для получения дополнительной информации смотрите Примеры.

Branches

Матрица 2D столбца, содержащая, для каждого шага в алгоритме, индексе рассматриваемой ветви и значение критерия. Каждая строка соответствует шагу в алгоритме. Первый столбец содержит индексы ветви, и второй столбец содержит значения критерия.

Совет

Получить целую кривую критерия по сравнению с количеством кластеров в Branches, установите Threshold к [] (пустой) и не задают MaxClustValue. Следует иметь в виду, что расчет некоторых критериев может быть в вычислительном отношении интенсивным.

Описание

LeafClusters = cluster(Tree, Threshold) возвращает вектор-столбец, содержащий кластерный индекс для каждой разновидности (лист) в филогенетическом древовидном объекте. Это определяет оптимальное количество кластеров можно следующим образом:

  • Начиная с двух кластеров (k = 2), выбирает раздел, который оптимизирует критерий, заданный 'Criterion' свойство

  • Шаг k 1 и снова выбирает оптимальный раздел

  • Продолжает постепенно увеличивать k и выбирать оптимальный раздел до значения критерия = Threshold или k = максимальное количество кластеров (то есть, количество листов)

  • От всех возможных значений k, выбирает значение k, раздел которого оптимизирует критерий

[LeafClusters, NodeClusters] = cluster(Tree, Threshold) возвращает вектор-столбец, содержащий кластерный индекс для каждой вершины и узла ветви в Tree.

[LeafClusters, NodeClusters, Branches] = cluster(Tree, Threshold) возвращает матрицу 2D столбца, содержащую, для каждого шага в алгоритме, индексе рассматриваемой ветви и значение критерия. Каждая строка соответствует шагу в алгоритме. Первый столбец содержит индексы ветви, и второй столбец содержит значения критерия.

кластер (..., 'PropertyName', PropertyValue, ...) вызовы cluster с дополнительными свойствами, которые используют имя свойства / пары значения свойства. Можно задать одно или несколько свойств в любом порядке. Заключите каждый PropertyName в одинарных кавычках. Каждый PropertyName является нечувствительным к регистру. Это имя свойства / пары значения свойства как follows:.

cluster(..., 'Criterion', CriterionValue, ...) задает критерий, чтобы определить количество кластеров в зависимости от разновидностей попарные расстояния.

cluster(..., 'MaxClust', MaxClustValue, ...) задает максимальное количество возможных кластеров для протестированных разделов. Значением по умолчанию является количество листов в дереве.

cluster(..., 'Distances', DistancesValue, ...) заменяет принадлежащими отцам церкви расстояниями в Tree с обеспеченной пользователями попарной матрицей расстояния.

Примеры

Подтвердите кластеры в филогенетическом дереве:

% Read sequences from a multiple alignment file into a MATLAB
% structure
gagaa = multialignread('aagag.aln');

% Build a phylogenetic tree from the sequences
gag_tree = seqneighjoin(seqpdist(gagaa),'equivar',gagaa);

% Validate the clusters in the tree and find the best partition
% using the 'gain' criterion
[i,j] = cluster(gag_tree,[],'criterion','gain','maxclust',10);

% Use the returned vector of indices to color the branches of each
% cluster in a plot of the tree
h = plot(gag_tree);
set(h.BranchLines(j==2),'Color','b')
set(h.BranchLines(j==1),'Color','r')

Ссылки

[1] Dudoit, S. и Fridlyan, J. (2002). Основанный на предсказании метод передискретизации для оценки количества кластеров в наборе данных. Биология генома 3 (7), исследование 0036.1–0036.21.

[2] Theodoridis, S. и Koutroumbas, K. (1999). Распознавание образов (Academic Press), стр 434–435.

[3] Кауфман, L. и Rousseeuw, P.J. (1990). Нахождение групп в данных: введение в кластерный анализ (Нью-Йорк, Вайли).

[4] Калинский, R. и Harabasz, J. (1974). Метод дендрита для кластерного анализа. Статистика Commun 3, 1–27.

[5] Хартигэн, J.A. (1985). Статистическая теория в кластеризации. J Классификация 2, 63-76.