reorder (phytree)

Переупорядочить листья филогенетического дерева

Синтаксис

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, определяемый оптимальным вычислением порядка листьев

Примеры

Пример 68. Переупорядочивание листьев с использованием действительного порядка
  1. Создайте и просмотрите филогенетическое дерево.

    b = [1 2; 3 4; 5 6; 7 8; 9 10];
    tree = phytree(b)
       Phylogenetic tree object with 6 leaves (5 branches)
    view(tree)
  2. Переупорядочить листья на филогенетическом дереве, а затем просмотреть переупорядоченное дерево.

     treeReordered = reorder(tree, [5, 6, 3, 4, 1, 2])
     view(treeReordered)
Пример 69. Нахождение наилучшего аппроксимационного порядка при использовании недопустимого порядка
  1. Создайте филогенетическое дерево путем чтения файла дерева в формате Newick (текстовый файл ASCII).

    tree = phytreeread('pf00002.tree')
        Phylogenetic tree object with 33 leaves (32 branches)
  2. Создайте вектор-строку имен листов в алфавитном порядке.

    [dummy,order] = sort(get(tree,'LeafNames'));
  3. Переупорядочить филогенетическое дерево так, чтобы оно максимально точно совпадало с вектором-строкой алфавитно упорядоченных листовых имен, не деля клады или не имея скрещивающихся ветвей.

    treeReordered = reorder(tree,order,'approximate',true)
        Phylogenetic tree object with 33 leaves (32 branches) 
  4. Просмотрите исходные и переупорядоченные филогенетические деревья.

    view(tree)
    view(treeReordered)   
Пример 70. Переупорядочивание листьев в соответствии с порядком листьев в другом Phylogenetic Tree
  1. Создайте филогенетическое дерево путем чтения данных последовательности из файла 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)
  2. Создайте другое филогенетическое дерево из тех же данных последовательности и парных расстояний между последовательностями, используя метод одинарного редактирования.

    HCtree = seqlinkage(dist,'single',seqs)
        Phylogenetic tree object with 33 leaves (32 branches)   
  3. Используйте оптимальный расчет порядка листьев, чтобы переупорядочить листья в HCtree такой, что он соответствует порядку листьев в NJtree максимально близко, без деления клады или с пересекающимися ветвями.

    HCtree_reordered = reorder(HCtree,NJtree)
        Phylogenetic tree object with 33 leaves (32 branches)      
  4. Просмотрите переупорядоченное филогенетическое дерево и дерево, используемое для его переупорядочивания.

    view(HCtree_reordered)
    view(NJtree)   

См. также

| | |

Введенный в R2007a