Кіріспе

Екі молекулалық тізбек арасындағы ұқсас аймақтарды анықтау алгоритмі. Смит-Уотерман алгоритмі жергілікті тізбектерді үйлестіруді жүзеге асырады; яғни, нуклеин қышқылы немесе белок тізбектерінің екеуі арасындағы ұқсас аймақтарды анықтау үшін қолданылады. Алгоритм тізбектің толығымен қарастыруының орнына, барлық мүмкін ұзындықтағы сегменттерді салыстырып, ұқсастық өлшемін оңтайландырады. Алгоритм алғаш рет 1981 жылы Темпл Ф. Смит және Майкл С. Уотерман есімді ғалымдар ұсынды. Needleman-Wunsch алгоритмі сияқты, ол да динамикалық бағдарламалау алгоритмі болып табылады. Осының арқасында, ол қолданылатын балл жүйесіне (алмастыру матрицасы және аралық балл схемасы қоса алғанда) қатысты оңтайлы жергілікті үйлесімді табуға кепілдік береді. Needleman-Wunsch алгоритмінен басты айырмашылығы – теріс балл алған матрица жасушалары нөлге теңестіріледі, бұл оң балл алған жергілікті үйлесімдерді анық көрсетеді. Трассировка процедурасы ең жоғары балл алған матрица жасушасынан басталып, нөлдік балл алған жасушаға жеткенге дейін жалғасады, нәтижесінде ең жоғары балл алған жергілікті үйлесім табылады. Кубикалық уақыт күрделілігіне байланысты, ол көлемді мәселелерде тиімді қолданылмайды және есептеу жағынан тиімдірек баламалармен (Gotoh, 1982), (Altschul and Erickson, 1986) және (Myers and Miller, 1988) ауыстырылады.

Тарих

1970 жылы Саул Б. Нидлмен және Кристиан Д. Вунш реттіліктерді салыстыру үшін эвристикалық гомология алгоритмін ұсынды, ол Нидлмен-Вунш алгоритмі деп те аталады. Бұл жаһандық сәйкестендіру алгоритмі болып табылады және екі реттіліктің ұзындығы болса, (және ) есептеу қадамдары қажет. Ол жаһандық сәйкестікті көрсету үшін матрицаны итеративті түрде есептеуді пайдаланады. Келесі онжылдықта Санкофф, Райхерт, Бейер және басқалар гендік реттіліктерді талдау үшін балама эвристикалық алгоритмдерді жасады. Селлерлер реттіліктер арасындағы қашықтықты өлшеу жүйесін енгізді. 1976 жылы Уотерман және авторлар бастапқы өлшеу жүйесіне саңылаулар (gap) түсінігін қосты. 1981 жылы Смит пен Уотерман жергілікті сәйкестікті есептеу үшін Смит-Уотерман алгоритмін жариялады. Смит-Уотерман алгоритміне уақыт көп қажет: ұзындығы мен ұзындығы екі реттілікті салыстыру үшін уақыт керек. Готхо бұл әдісті қолданды. Кейіннен Гиршберг қолданған рекурсивті бөліп-жеңу стратегиясынан өзгеше, сызықтық кеңістікте Готхо алгоритмінің кэшін тиімді түрде қалай іске асыруға болатынын көрсетті. Нәтижесіндегі алгоритм практикада Майерс пен Миллер алгоритмінен жылдамырақ жұмыс істейді, себебі оның кэштік өнімділігі жоғары. Сонымен қатар, Фэррар жасаған SSE2 векторлауы ақуыз реттіліктерінің оңтайлы деректер базасын іздеуді өте қолайлы етеді. SSW кітапханасы Фаррардың іске асыруын кеңейтіп, Смит-Уотерманның оңтайлы ұпайынан басқа сәйкестендіру туралы ақпаратты да қайтарады.

FPGA

Крей FPGA чиптеріне негізделген қайта конфигурацияланатын есептеу платформасын қолданып, Смит-Уотерман алгоритмінің жылдамдығын арттырды, нәтижелер стандартты микропроцессорлық шешімдерге қарағанда 28 есеге дейін жылдамдыққа ие болды. Смит-Уотерман алгоритмінің FPGA негізіндегі тағы бір нұсқасы, FPGA (Virtex 4) арқасында 2,2 ГГц Opteron процессорынан 100 есеге дейін жылдамдықты қамтамасыз етеді. TimeLogic DeCypher және CodeQuest жүйелері PCIe FPGA карталарын қолдана отырып, Smith-Waterman және Framesearch алгоритмдерін де жылдамдатады. 2011 жылғы магистрлік диссертациясында FPGA негізіндегі Смит-Уотерман алгоритмінің жылдамдатылуы талданған. 2016 жылғы жарияланымда Xilinx SDAccel құралымен жинақталған OpenCL коды геномдық тізбектемені жеделдетеді, CPU/GPU өнімділігіне қарағанда 12-21 есе артық тиімділік көрсетеді, өте тиімді жүзеге асыру ұсынылды. Xilinx Virtex 7 2000T FPGA-мен жабдықталған бір PCIe FPGA картасын пайдалану арқасында, Ваттқа шаққандағы өнімділік CPU/GPU-дан 12-21 есе жоғары болды.

GPU

Лоуренс Ливермор ұлттық зертханасы мен АҚШ Энергетика министрлігінің Бірлескен геном институты графикалық процессорларды (GPU) пайдалана отырып, Смит-Уотерман жергілікті тізбектерді салыстыру іздеулерінің үдетілген нұсқасын іске қосты, ал алдын ала нәтижелер бағдарламалық қамтамасыз етуге қарағанда 2 есе жылдамдыққа ие екенін көрсетті. Осыған ұқсас әдіс 1997 жылдан бері Biofacet бағдарламалық қамтамасыз етуінде қолданылып келеді, сондай-ақ жылдамдық коэффициенті де осыған сай. NVIDIA-ның CUDA C платформасында алгоритмнің бірнеше GPU нұсқалары да қол жетімді. Farrar-дың ең жақсы белгілі CPU нұсқасымен (x86 архитектурасында SIMD нұсқауларын қолдана отырып) салыстырғанда, жалғыз NVidia GeForce 8800 GTX картасын пайдалана отырып осы шешімнің өнімділік сынақтары кішігірім тізбектер үшін өнімділіктің сәл артуын, ал үлкен тізбектер үшін сәл төмендеуін көрсетті. Дегенмен, екі NVidia GeForce 8800 GTX картасында жүргізілген бірдей сынақтар, барлық сынақтан өткен тізбек өлшемдері үшін Farrar нұсқасынан шамамен екі есе жылдам болды. SW-нің жаңа GPU CUDA нұсқасы қазір қол жетімді, ол бұрынғы нұсқалардан жылдамырақ және сұраныс ұзындығына қатысты шектеулерді жояды. CUDASW++ қараңыз. CUDA-да 11 түрлі SW нұсқасы туралы хабарланды, олардың үшеуі 30 есе жылдамдыққа ие екенін көрсетті.

SIMD

2000 жылы Рогнес пен Сиберг жариялаған мақаласында Intel Pentium MMX процессорларында және ұқсас технологияларда қол жетімді бір нұсқау, көп дерек (SIMD) технологиясын пайдалана отырып, Смит-Уотермен алгоритмінің жылдам іске асырылуы сипатталды. Возняк (1997) әдісіне қарағанда, жаңа іске асыру сұраныс тізбегіне параллель векторларға, диагональдық векторларға емес, негізделген. Sencel Bioinformatics компаниясы осы әдіске патент алуға өтініш берді. Sencel бағдарламалық жасақтаманы одан әрі дамытып, академиялық мақсаттар үшін орындалатын файлдарды тегін ұсынады. Алгоритмнің SSE2 векторлануы (Farrar, 2007) қазір SSE2 кеңейтулері бар Intel/AMD процессорларында 8-16 есе жылдамдыққа қол жеткізеді, ол GNU Affero General Public License лицензиясы бойынша қолжетімді. Параллельдікпен, бұл бағдарламалық қамтамасыз ету 16 әртүрлі деректер қорының қалдықтарын бір сұраныс қалдығымен салыстырады. 375 қалдықтан тұратын сұраныс тізбегін пайдалану арқылы екі Intel Xeon X5650 алты ядролы процессорлы жүйеде секундына 106 миллиард жасуша жаңартуы (GCUPS) жылдамдығына қол жеткізілді, бұл Farrar-дың "жолақты" әдісіне негізделген бағдарламалық жасақтамадан алты есе жоғары. BLOSUM50 матрицасын қолданғанда ол BLAST-тан жылдам. Смит-Уотермен алгоритмінің C және C++ тілдеріндегі diagonalsw деп аталатын нұсқасы SIMD нұсқаулар жиынтығын (x86 платформасы үшін SSE4.1 және PowerPC платформасы үшін AltiVec) пайдаланады. Ол MIT ашық лицензиясы бойынша шығарылған.

Ұялы кең жолақты қозғалтқыш

2008 жылы Фаррар Стрип Смит–Уотермен алгоритмін Cell Broadband Engine платформасына порттауды сипаттады және IBM QS20 жинағында және Sony PlayStation 3 ойын консолінде сәйкесінше 32 және 12 GCUPS жылдамдықтарын тіркеді.

Шектеулер

Генетикалық деректердің қарқынды өсуі қазіргі ДНҚ тізбегін салыстыру алгоритмдерінің жылдамдығын баяулатуда. ДНҚ вариацияларын анықтау үшін тиімді және дәл әдіс қажеттігі, дереу уақытта параллель өңдеудің жаңа тәсілдерін талап етеді.