переупорядочьте (phytree)

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

Синтаксис

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

Входные параметры

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

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

Tree1ReorderedОбъект Phytree с переупорядоченными листами.
OptimalOrderВектор индексов положения для каждого листа в Tree1Reordered, определенном оптимальным заказывающим лист вычислением.

Описание

Tree1Reordered = reorder(Tree1, Order) переупорядочивает листы филогенетического древовидного Tree1, не изменяя его структуру и расстояния, создавая новое филогенетическое дерево, Tree1Reordered. Order является вектором индексов положения для каждого листа. Если Order недопустим, то есть, если он делит clades (или производит пересекающиеся ответвления), то reorder возвращает сообщение об ошибке.

[Tree1Reordered, OptimalOrder] = reorder(Tree1, Order, 'Approximate', ApproximateValue) управляет использованием оптимального заказывающего лист вычисления, которое находит лучший аппроксимированный порядок самым близким к предложенному, не деля clades или производя пересекающиеся ответвления. Введите true, чтобы использовать вычисление и возвратить Tree1Reordered, переупорядоченное дерево, и OptimalOrder, вектор индексов положения для каждого листа в Tree1Reordered, определенном оптимальным заказывающим лист вычислением. Значением по умолчанию является false.

[Tree1Reordered, OptimalOrder] = reorder(Tree1, Tree2) использует оптимальное заказывающее лист вычисление, чтобы переупорядочить листы в Tree1, таким образом, что это совпадает с порядком листов в Tree2 максимально тесно, не деля clades или производя пересекающиеся ответвления. Tree1Reordered является переупорядоченным деревом, и OptimalOrder является вектором индексов положения для каждого листа в Tree1Reordered, определенном оптимальным заказывающим лист вычислением

Примеры

Пример 82. Переупорядочение листов Используя допустимый порядок
  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)
Пример 83. Нахождение лучше всего аппроксимирует порядок при использовании недопустимого порядка
  1. Создайте филогенетическое дерево путем чтения Newick-отформатированного древовидного файла (текстовый ASCII-файл).

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

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

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

    view(tree)
    view(treeReordered)   
Пример 84. Переупорядочение листов, чтобы совпадать с листовым порядком в другом Phylogenetic Tree
  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 максимально тесно, не деля clades или имея пересекающиеся ответвления.

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

    view(HCtree_reordered)
    view(NJtree)   

Смотрите также

| | |

Представленный в R2007a