кластер (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.

  • медиана Медиана на кластерном попарном расстоянии (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' 'median' или критерии '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 столбца, содержащую, для каждого шага в алгоритме, индексе рассматриваемого ответвления и значение критерия. Каждая строка соответствует шагу в алгоритме. Первый столбец содержит индексы ответвления, и второй столбец содержит значения критерия.

cluster(..., '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.