ГоловнаСтаттіБіоінформатика

Послідовність ДНК: Збіг Smith-Waterman та виявлення варіантів

Секвенсор ніколи не читає геном послідовно — він читає мільйони коротких, шумливих фрагментів, і алгоритм повинен визначити, до якого з них належить кожен.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Секвенування виробляє фрагменти, а не геном

Сучасні секвенатори короткого читання не зчитують хромосому від початку до кінця. Вони розрізають багато копій ДНК на мільйони перекриваючихся фрагментів – "читань", зазвичай довжиною 100-300 основ, і зчитують кожен з них незалежно та неточно, з похибкою близько 0,1–1 відсотка основ, залежно від платформи. Зведення цієї купки коротких, помилкових фрагментів у послідовність геному або в різницю відносно відомої референсної послідовності – це повністю задача вирівнювання, і саме вирівнювання є основним комп’ютерним завданням.

жива демонстрація · пов'язана симуляція● LIVE

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

Що ви знайшли?

Додати кроки відтворення (опційно)