Секвенування виробляє фрагменти, а не геном
Сучасні секвенатори короткого читання не зчитують хромосому від початку до кінця. Вони розрізають багато копій ДНК на мільйони перекриваючихся фрагментів – "читань", зазвичай довжиною 100-300 основ, і зчитують кожен з них незалежно та неточно, з похибкою близько 0,1–1 відсотка основ, залежно від платформи. Зведення цієї купки коротких, помилкових фрагментів у послідовність геному або в різницю відносно відомої референсної послідовності – це повністю задача вирівнювання, і саме вирівнювання є основним комп’ютерним завданням.
Smith-Waterman: пошук найкращого локального збігу
Алгоритм Smith-Waterman (1981) – це метод динамічного програмування, який знаходить найвищий бал локального збігу між двома послідовностями – найкращу відповідну підпослідовність, ігноруючи частини, які не відповідають. Він будує матрицю оцінювання клітин за клітиною, де кожне клітинка представляє собою найкращий бал збігу, що закінчується в цій парі позицій:
H(i,j) = max( 0, // ресет – це те, що робить його ЛОКАЛЬНИМ H(i-1, j-1) + score(a[i], b[j]), // збіг або незбіг, по діагоналі H(i-1, j) - gapPenalty, // видалення, згори H(i, j-1) - gapPenalty // вставка, зліва ) Максимум(0, …) термін – це винахід: він дозволяє поганому балу збігу скинутись до нуля замість того, щоб тягнути негативний бал вперед, тому алгоритм природним чином визначає, де починається справжній локальний збіг. Відстежте назад від клітинки з найвищим балом у матриці, слідуючи напрямку, з якого прийшов кожен бал, до тих пір, поки ви не досягнете нуля, і ви відновите найкращу відповідну підпослідовність. Балли збігу/незбігу зазвичай отримуються з матриці заміщення (простий +1/-1 для ДНК або BLOSUM для білків), а проміжки моделюють вставки або видалення, які дійсно відбуваються в ДНК через скочування реплікації.
H(i,j) = max( 0, // reset — this is what makes it LOCAL H(i-1, j-1) + score(a[i], b[j]), // match or mismatch, diagonal H(i-1, j) - gapPenalty, // deletion, from above H(i, j-1) - gapPenalty // insertion, from the left )
Чому не точна глобальна версія?
Сміт-Ваттермен – це однострокове удосконалення старого алгоритму Нідлемена-Вунша (1970 року), який знаходить найкращу глобальну вирівнювальну матрицю — змушуючи дві послідовності вирівнятися одна за одною, покараючи невідповідності на кінцях. Це правильний інструмент для порівняння двох повних послідовностей приблизно однакової довжини, таких як дві версії одного й того ж гена. Це неправильний інструмент для відображення 150-базного прочитання проти референсного геному в 3 мільярди базових пар, де читання відповідає невеликій області, а все інше є непотрібним — саме той випадок, коли локальна, відкидавана оцінка Сміт-Ваттермена обробляє правильно.
От выравнивания до определения вариантов
Однонуклеотидный полиморфизм (SNP) - это отдельная база, отличающаяся от референсной в заданной позиции. После того как миллионы чтений выровнены, определение SNP является статистическим решением, а не поиском по отдельности: геном, секвенированный на типичной клинической глубине, покрывается 20-30 независимыми чтениями в каждой позиции, и настоящий SNP демонстрирует замену последовательно во многих из них с вероятным соотношением аллелей (около 50% для одной гетерозиготной копии, близко к 100% для гомозиготного изменения). С другой стороны, ошибочное секвенирование, по сути, случайно для каждого чтения и редко воспроизводится идентично во многих независимых чтениях той же базы — что является тем статистическим сигналом, который используют варианты выявлятели для разделения реальной биологии от машинного шума.
Масштабування: вирівнювання цілого геному в практиці
Запуск повного Smith-Waterman — динамічного алгоритму O(n·m) — проти 150-базного прочитання з 3-мільярдною геномною послідовністю для кожного з сотень мільйонів читань було б обчислювально неможливим. Реальні вирівнювачі (BWA, Bowtie) замість цього використовують FM-індекс — стислий індекс повного тексту, побудований за допомогою перетворення Burrows-Wheeler геномної референції, щоб миттєво звузити читання до кількох кандидатів у положеннях приблизно за час O(довжина читання). Повне оцінювання Smith-Waterman виконується локально, навколо цих кількох кандидатів, для отримання точного, прорізаного вирівнювання та оцінки якості — комбінуючи майже точний індекс для швидкості з динамічним програмуванням для точності там, де це необхідно.
Frequently asked questions
Яка відмінність між алгоритмами Smith-Waterman та Needleman-Wunsch?
Needleman-Wunsch (1970) знаходить найкращу глобальну вирівнювальну послідовність по всій довжині обох послідовностей, змушуючи до вирівнювання навіть тоді, коли вони мало схожі. Smith-Waterman (1981) модифікує той самий рекуррентний процес динамічного програмування з одним правилом зміни, дозволяючи комірці перезаписувати бал до нуля, таким чином алгоритм знаходить лише найкращий локальний регіон. Це робить Smith-Waterman інструментом, що підходить для пошуку одного відповідного регіону всередині набагато довшої послідовності, що є поширеним випадком у реальних даних секвенування.
Чому однонуклеотидний поліморфізм (SNP) важко відрізнити від помилки секвенування?
Оскільки обидва виглядають однаково в одній прочитаній послідовності: один нуклеотид відрізняється від референсної. Відмінним сигналом є глибина та консистентність – справжній SNP показує ту ж заміну на багатьох незалежних читаннях у тому ж місці з подібною алелевою часткою, тоді як помилка секвенування зазвичай випадкова, виникає при низькій швидкості, пов'язаній зі значенням якості базового, і рідко повторюється однаково на кількох незалежних читаннях того ж сайту.
Чому не використовувати просто точне порівняння рядків для вирівнювання прочитань з референтною геномною послідовністю?
Оскільки реальні читання ніколи не відповідають точно. Секвенційні пристрої вносять помилки приблизно на 0,1–1% на базу, а людина, яку секвенують, справді відрізняється від референсної на мільйонах позицій. Точний збіжний алгоритм відхилив би майже кожне читання; оцінювальний алгоритм вирівнювання, який допускає невідповідності та невеликі проміжки, зважені за вартістю кожного типу різниці, відновлює справжнє розташування відображення навіть тоді, коли читання та референсна послідовність не є ідентичними.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте DNA Sequencing і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію DNA Sequencing