Переупорядочить листья филогенетического дерева
Tree1Reordered
= reorder(Tree1
, Order
)
[Tree1Reordered
, OptimalOrder
]
= reorder(Tree1
, Order
,
'Approximate', ApproximateValue
)
[Tree1Reordered
, OptimalOrder
]
= reorder(Tree1
, Tree2
)
Tree1 , Tree2 | Объекты Phytree. |
Order | Вектор с индексами положения для каждого листа. |
ApproximateValue | Управляет использованием оптимального вычисления порядка листьев, чтобы найти наиболее близкий к предложенному порядок, не деля клады и не создавая скрещивающихся ветвей. Введите true для использования вычисления. По умолчанию это false . |
Tree1Reordered | Объект Phytree с переупорядоченными листьями. |
OptimalOrder | Вектор индексов положения для каждого листа в Tree1Reordered , определяемый оптимальным вычислением порядка листьев. |
переупорядочивает листья филогенетического дерева Tree1Reordered
= reorder(Tree1
, Order
)Tree1
, не изменяя его структуру и расстояния, создавая новое филогенетическое дерево, Tree1Reordered
. Order
является вектором индексов положения для каждого листа. Если Order
является недействительным, то есть, если он делит клады (или производит скрещивание ветвей), то reorder
возвращает сообщение об ошибке.
[
управляет использованием оптимального вычисления порядка листьев, который находит наилучший приблизительный порядок, ближайший к предлагаемому, не деля клады и не производя скрещивающихся ветвей. Введите Tree1Reordered
, OptimalOrder
]
= reorder(Tree1
, Order
,
'Approximate', ApproximateValue
)true
использовать вычисление и возврат Tree1Reordered
, переупорядоченное дерево и OptimalOrder
вектор индексов положения для каждого листа в Tree1Reordered
, определяемый оптимальным вычислением порядка листьев. По умолчанию это false
.
[
использует оптимальный расчет порядка листьев, чтобы переупорядочить листья в Tree1Reordered
, OptimalOrder
]
= reorder(Tree1
, Tree2
)Tree1
такой, что он соответствует порядку листьев в Tree2
максимально близко, без деления клады или получения скрещивающихся ветвей. Tree1Reordered
- переупорядоченное дерево, и OptimalOrder
является вектором индексов положения для каждого листа в Tree1Reordered
, определяемый оптимальным вычислением порядка листьев
Создайте и просмотрите филогенетическое дерево.
b = [1 2; 3 4; 5 6; 7 8; 9 10]; tree = phytree(b) Phylogenetic tree object with 6 leaves (5 branches) view(tree)
Переупорядочить листья на филогенетическом дереве, а затем просмотреть переупорядоченное дерево.
treeReordered = reorder(tree, [5, 6, 3, 4, 1, 2]) view(treeReordered)
Создайте филогенетическое дерево путем чтения файла дерева в формате Newick (текстовый файл ASCII).
tree = phytreeread('pf00002.tree') Phylogenetic tree object with 33 leaves (32 branches)
Создайте вектор-строку имен листов в алфавитном порядке.
[dummy,order] = sort(get(tree,'LeafNames'));
Переупорядочить филогенетическое дерево так, чтобы оно максимально точно совпадало с вектором-строкой алфавитно упорядоченных листовых имен, не деля клады или не имея скрещивающихся ветвей.
treeReordered = reorder(tree,order,'approximate',true) Phylogenetic tree object with 33 leaves (32 branches)
Просмотрите исходные и переупорядоченные филогенетические деревья.
view(tree) view(treeReordered)
Создайте филогенетическое дерево путем чтения данных последовательности из файла FASTA, вычисления парных расстояний между последовательностями и затем с помощью метода neighbor-joinning.
seqs = fastaread('pf00002.fa') seqs = 33x1 struct array with fields: Header Sequence dist = seqpdist(seqs,'method','jukes-cantor','indels','pair'); NJtree = seqneighjoin(dist,'equivar',seqs) Phylogenetic tree object with 33 leaves (32 branches)
Создайте другое филогенетическое дерево из тех же данных последовательности и парных расстояний между последовательностями, используя метод одинарного редактирования.
HCtree = seqlinkage(dist,'single',seqs) Phylogenetic tree object with 33 leaves (32 branches)
Используйте оптимальный расчет порядка листьев, чтобы переупорядочить листья в HCtree
такой, что он соответствует порядку листьев в NJtree
максимально близко, без деления клады или с пересекающимися ветвями.
HCtree_reordered = reorder(HCtree,NJtree) Phylogenetic tree object with 33 leaves (32 branches)
Просмотрите переупорядоченное филогенетическое дерево и дерево, используемое для его переупорядочивания.
view(HCtree_reordered) view(NJtree)