exponenta event banner

кластер (фитри)

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

Синтаксис

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 - число видов в дереве. Разделение кластера прекращается при ≥ BWrat Threshold.

  • 'gain' - в пределах каскадного попарного усиления расстояния, определяемого как

    Wgain = (след (Wold )/( след (W) - 1) * (n - k - 1))

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

  • 'silhouette' - Средняя ширина силуэта (SWavg). Диапазон SWavg: -1 кому +1. Разделение кластера прекращается при ≥ SWavg Threshold. Дополнительные сведения см. в разделе 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

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

Совет

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

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

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] Дудойт, С. и Фридлян, Дж. (2002). Способ повторной выборки на основе прогнозирования для оценки количества кластеров в наборе данных. Биология генома 3 (7), исследование 0036.1-0036.21.

[2] Теодоридис, С. и Коутрумбас, К. (1999). Распознавание образов (академическая пресса), стр. 434-435.

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

[4] Калински, Р. и Харабаш, Дж. (1974). Дендритный метод кластерного анализа. Commun Statistics 3, 1-27.

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