Удалить узлы ветвей из филогенетического дерева
T2 = prune(T1, Nodes)
T2 = prune(T1, Nodes, 'Mode','Exclusive')
T1 | Филогенетический объект, созданный с помощью phytree функция конструктора. |
Nodes | Узлы для удаления из дерева. |
Mode | Свойство для управления методом отсечения. Введите либо |
удаляет узлы, перечисленные в векторе T2 = prune(T1, Nodes)Nodes из дерева T1. prune удаляет любые ветви или конечные узлы, перечисленные в Nodes и всех их потомков от дерева T1и возвращает измененное дерево T2. Родительские узлы подключаются к «братьям» по мере необходимости. Nodes в дереве помечены как [1:numLeaves] для листьев и [numLeaves+1:numLeaves+numBranches] для ветвей. Nodes также может быть логическим массивом размера [numLeaves+numBranches x 1] с указанием удаляемых узлов.
изменяет T2 = prune(T1, Nodes, 'Mode','Exclusive')Mode свойство для отсечения до 'Exclusive' и удаляет только потомков узлов, перечисленных в векторе Nodes. Узлы, не имеющие предшественника, становятся листами в списке Nodes. В этом случае обрезка - это процесс сокращения дерева путём превращения некоторых узлов ветви в листовые узлы, и удаления листовых узлов под исходной ветвью.
Загрузить филогенетическое дерево, созданное из семейства белков
tr = phytreeread('pf00002.tree');
view(tr) 
Удалить все «мышиные» белки
ind = getbyname(tr,'mouse'); tr = prune(tr,ind); view(tr)

Удаление потенциальных отклонений в дереве
[sel,sel_leaves] = select(tr,'criteria','distance',...
'threshold',.3,...
'reference','leaves',...
'exclude','leaves',...
'propagate','toleaves');
tr = prune(tr,~sel_leaves)
view(tr)
