Метод приєднання сусідів
У біоінформатиці метод приєднання сусідів − кластерний метод для створення філогенетичних дерев, запропонований Наруя Сайтоу і Масатоші Ней в 1987 році.[2] Алгоритм звичайно використовується для дерев, заснованих на ДНК або білкових послідовностях, і вимагає знання відстаней між кожною парою таксонів (напр., видів або послідовностей) для побудови дерева. [3]
Метод приєднання сусідів на вхід приймає матрицю відстаней, де задаються відстані між кожною парою таксонів. Алгоритм починає роботу з цілком невирішеного дерева с топологією «зірка», і виконує ітерації, що складаються з описаних далі кроків, до моменту, коли дерево цілком вирішене і довжини усі гілок відомі:
- По поточній матриці відстаней вираховується -матриця (визначена нижче)
- Відшукується пара різних таксонів і (тобто ), для яких значення − найменше. Ці таксони приєднуються до нового вузла, який, в свою чергу, з'єднується p центральним вузлом. На рисунку праворуч і приєднані до нового вузла
- Розраховується відстань від кожного з приєднаних таксонів до нового вузла
- Розраховується відстань від кожного з залишених таксонів до нового вузла
- Алгоритм запускається знову, замінюючи пару приєднаних сусідів на новий вузол і використовуючи відстані, обраховані на попередніх кроках.
-матриця розраховується за матрицею відстаней між таксонами наступним чином:
де − відстань між таксонами і .
Для кожного з приєднаних таксонів використовується наступна формула для обчислення відстаней до нового вузла:
і:
Таксони і − пара приєднаних таксонів і − новий вузол. Гілки і і їх довжина і − тепер фіксована частина дерева; вони не зміняться і ні на що не вплинуть на наступних кроках алгоритму.
Для кожного таксона, що не брав участі у попередньому кроці, розраховується відстань до нового вузла:
де − новий вузол, − вузол, до якого ми хочемо обрахувати відстань, і − таксони тільки-но приєднаної пари.
Метод приєднання сусідів для таксонів потребує ітерацій. На кожній ітерації потрібно обчислити -матрицю. На першому кроці розмір -матриці − , на наступному кроці − і т. д. Реалізація алгоритму без оптимізації має складність ; існують реалізації, що використовують евристичний підхід з меншим часом виконання в середньому.
Припустимо, у нас є п'ять таксонів з такою матрицею відстаней:
a | b | c | d | e | |
---|---|---|---|---|---|
a | 0 | 5 | 9 | 9 | 8 |
b | 5 | 0 | 10 | 10 | 9 |
c | 9 | 10 | 0 | 8 | 7 |
d | 9 | 10 | 8 | 0 | 3 |
e | 8 | 9 | 7 | 3 | 0 |
Ми одержимо наступні значення -матриці (діагональні елементи матриці не використовуються і тут не наводяться):
a | b | c | d | e | |
---|---|---|---|---|---|
a | −50 | −38 | −34 | −34 | |
b | −50 | −38 | −34 | −34 | |
c | −38 | −38 | −40 | −40 | |
d | −34 | −34 | −40 | −48 | |
e | −34 | −34 | −40 | −48 |
У наведеному прикладі . Це найменше значення , тому ми об'єднуємо вузли і . Назовемо новий вузол ; гілки, що з'єднують i з новим вузлом , мають довжину і − по наведеній вище формулі.
Далі ми знов перераховуємо матрицю відстаней: ми обраховуєм відстань від до кожного з вузлів, що залишилися, крім та . Одержуєм , і . Перерахована матриця відстаней має такий вигляд:
u | c | d | e | |
---|---|---|---|---|
u | 0 | 7 | 7 | 6 |
c | 7 | 0 | 8 | 7 |
d | 7 | 8 | 0 | 3 |
e | 6 | 7 | 3 | 0 |
Відповідна до неї -матриця:
u | c | d | e | |
---|---|---|---|---|
u | −28 | −24 | −24 | |
c | −28 | −24 | −24 | |
d | −24 | −24 | −28 | |
e | −24 | −24 | −28 |
Тепер ми можем зробити вибір: з'єднувати і або з'єднувати і ; обидві пари мають найменше в -матриці значення , і будь-який вибір дасть однаковий результат. Для визначеності, оберемо і , приєднаємо їх до нового вузла ; одержані гілки мають довжину і , як показано на малюнку. Матриця відстаней для трьох вузлів, що залишилися , і наступна:
v | d | e | |
---|---|---|---|
v | 0 | 4 | 3 |
d | 4 | 0 | 3 |
e | 3 | 3 | 0 |
Дерево цілком вирішено на цьому кроці, тому можна не обчислювати матрицю і не виконувати подальші приєднання. Однак, ми використаємо ці відстані, щоб одержати довжину трьох гілок дерева, що залишилися — див. малюнок.
Наведений приклад є ідеальним випадком: зазначимо, що, якщо рухатися від одного таксона до іншого по гілках дерева і підсумовувати довжини пройдених гілок, результат буде дорівнювати відстані між таксонами у вихідній матриці відстаней. Напр., пройшовши від вузла до вузла , одержимо . Про матрицю, в якій відстані узгоджені таким чином з будь-яким деревом, кажуть, що вона адитивна − властивість, яка рідко зустрічається на практиці. Однак варто зауважити: якщо на вхід методу приєднання сусідів подати адитивну матрицю відстаней, гарантується, що в результаті роботи методу буде побудоване дерево, узгоджене з цією матрицею.
Метод приєднання сусідів можливо розглядати як жадний алгоритм для оптимізації дерева у відповідності з критерієм «збалансованої мінімальної еволюції»[4] (БМЕ). Для кожної топології БМЕ визначає довжину дерева (суму довжин гілок) як зважену суму відстаней з матриці відстаней, з вагами, що залежать від топології дерева. Оптимальна топологія БМЕ — та, при якій довжина дерева мінімальна. Метод приєднання сусідів на кожній ітерації з'єднує пару таксонів, які дадуть найменший вклад у довжину побудованого дерева. Ця процедура не гарантує, що буде знайдено дерево з топологією, оптимальною за критерієм БМЕ, тим не менше, вона часто знаходить оптимальне або близьке до оптимального дерево.
Головна перевага методу в тому, що він швидкий — зокрема, через те, що алгоритм працює за поліноміальний час. Це робить його прийнятним для аналізу великих обсягів даних (сотні або й тисячі таксонів) і для бутстреппінгу[en], для яких використання інших методів аналізу (наприклад, максимальна економія[en], метод максимальної правдоподібності) може бути неможливим з точки зору кількості обчислень.
Метод приєднання сусідів має властивість видавати правильне дерево на виході, якщо на вхід подається правильна матриця відстаней. До того ж, правильну топологію дерева гарантовано, якщо матриця відстаней «приблизно адитивна», тобто, якщо кожне значення в матриці відстаней відрізняється від справжньої відстані менше, ніж на половину довжини найкоротшої гілки дерева.[5] На практиці матриця відстаней рідко задовольняє цій умові, але метод приєднання сусідів часто видає дерево з правильною топологією у будь-якому випадку.[6] Метод приєднання сусідів коректно працює з приблизно адитивною матрицею відстаней тому, що вона статистично спроможна для багатьох еволюційних моделей; маючи вхідні дані придатної довжини, метод з високою ймовірністю відновить справжнє дерево. У порівнянні з UPGMA[en] метод приєднання сусідів має перевагу: він не передбачає, що всі покоління еволюціонують з однаковою швидкістю (гіпотеза молекулярного годинника).
А втім, замість методу приєднання сусідів часто застосовують інші філогенетичні методи, які не покладаються на матрицю відстаней і забезпечують більшу точність у більшості випадків. Метод приєднання сусідів має небажану рису — часто присвоює негативні значення деяким гілкам дерева.
Існує багато програм, що реалізують метод приєднання сусідів. RapidNJ и NINJA — швидкі реалізації, час роботи яких звичайно приблизно пропорційний квадрату числа таксонів. BIONJ і Weighbor — варіанти методу приєднання сусідів, що підвищують його точність шляхом використання факту, що менші відстані в матриці відстаней звичайно краще вивчені, ніж великі. FastME — реалізація близького методу збалансованої мінімальної еволюції.
- The Neighbor-Joining Method — a tutorial
- ↑ Saitou. Kyushu Museum. 2002. February 2, 2007. Архів оригіналу за вересень 6, 2013. Процитовано грудень 11, 2014.
- ↑ Saitou N, Nei M. he neighbor-joining method: a new method for reconstructing phylogenetic trees // Molecular Biology and Evolution. — 1987. — Vol. 4, issue 4. — P. 406–425. — July 1987. Архів оригіналу за 25 грудня 2014. Процитовано 11 грудня 2014.
- ↑ Xavier Didelot (2010). Sequence-Based Analysis of Bacterial Population Structures. У D. Ashley Robinson, Daniel Falush, Edward J. Feil (ред.). Bacterial Population Genetics in Infectious Disease. John Wiley and Sons. с. 46—47. ISBN 978-0-470-42474-2. Архів оригіналу за 1 липня 2014. Процитовано 11 грудня 2014.
- ↑ Gascuel O, Steel M (2006). Neighbor-joining revealed. Mol Biol Evol. 23 (11): 1997—2000. doi:10.1093/molbev/msl072. PMID 16877499.
- ↑ Atteson K (1997). «The performance of neighbor-joining algorithms of phylogeny reconstruction», pp. 101–110. In Jiang, T., and Lee, D., eds., Lecture Notes in Computer Science, 1276, Springer-Verlag, Berlin. COCOON '97.
- ↑ Mihaescu R, Levy D, Pachter L (2009). Why neighbor-joining works. Algorithmica. 54 (1): 1—24. doi:10.1007/s00453-007-9116-4.
- Інші джерела
- Studier JA, Keppler KJ (1988). A note on the Neighbor-Joining algorithm of Saitou and Nei (PDF). Mol Biol Evol. 5 (6): 729—731. PMID 3221794.
- Martin Simonsen, Thomas Mailund, Christian N. S. Pedersen (2008). Rapid Neighbour Joining (PDF). Proceedings of WABI. 5251: 113—122. doi:10.1007/978-3-540-87361-7_10.[недоступне посилання з квітня 2019]