exponenta event banner

переупорядочение (фитри)

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

Синтаксис

Tree1Reordered = reorder(Tree1, Order)
[Tree1Reordered, OptimalOrder] = reorder(Tree1, Order, 'Approximate', ApproximateValue)
[Tree1Reordered, OptimalOrder] = reorder(Tree1, Tree2)

Входные аргументы

Tree1, Tree2Фитриевые объекты.
OrderВектор с индексами положения для каждого листа.
ApproximateValueУправляет использованием расчета оптимального порядка листьев для нахождения наиболее близкого к предложенному порядка без разделения кладок или создания пересекающихся ветвей. Войти true для использования расчета. По умолчанию: false.

Выходные аргументы

Tree1ReorderedФитриевый объект с переупорядоченными листьями.
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. Переупорядочивание листьев в соответствии с порядком листьев в другом филогенетическом дереве
  1. Создание филогенетического дерева путем считывания данных последовательности из файла FASTA, вычисления попарных расстояний между последовательностями и последующего использования метода соединения соседей.

    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