Малюнак 2.2. Бялок-звязка для пеніцыліну
Задача параўнання бялкоў па іх структурах з'яўляецца ў агульным выпадку NP-поўнай. Таму нядзіўна, што акрамя дакладных алгарытмаў пры ўваходных даных з нейкімі абмежаваннямі, існуе цэлы шэраг прыблізных алгарытмаў, заснаваных на розных эўрыстычных падыходах.
Найбольш вядомымі з'яўляюцца алгарытмы MaxSub, GDT, 3dSearch, TM-align, DALI. Агульным для большасці алгарытмаў у гэтай вобласці з'яўляецца тое, што яны не з'яўляюцца прыблізнымі (гэта значыць не даюць рашэнне, якое ляжыць у гарантаванай блізкасці ад дакладнага рашэння), а з'яўляюцца эўрыстыкамі, якія заснаваны на нейкіх рацыянальных ідэях, што змяншаюць прастору пошуку рашэння.
На аснове гэтых алгарытмаў з’яўвіўся шэраг праграм, якія дапамагаюць біяёлагам параўноўваць трохмерныя структуры не толькі інтуітыўна, а з дапамогай вылічальных машын. Адным з прадстаўнікоў такога праграмнага забеспячэння з’яўляецца сервіс 3-DimesionalStructuralSuperposition (3DSS)[7], які прадстаўляе праз веб-інтэрфейс функцыянальнасць для параўнання бялкоў з PDB. Інтэрфейс рэсурса нескладаны і ўся аперацыя займае некалькі крокаў. Спачатку трэба выбраць якія бялкі мы параўноўваем. Для гэтага неабходна ўвесці ідэнтыфікатары бялкоў з PDB ці загрузіць любы файл у PDB-фармаце. Потым выбраць часткі бялка для параўнання і параметры суперпазіцыі. І, нарэшце, ў браўзеры можна будзе ўбачыць трохмерную выяву, дзе будзе зроблена суперпазіцыя бялкоў і іх можна адрозніць па колеры. Вынік працы праграмы можна ўбачыць на малюнку 2.3 (параўноўваліся бялкі 1SDBi 1HOE).
Малюнак 2.3. Суперпазіцыя бялкоў у 3DSS
Яшчэ адным вядомым анлайнавым сервісам, які прадастаўляе паслугі па супастаўленні трэцічных структур бялкоў, з’ўялецца MATRAS. Ён уключае ў сябе набор праграм для структурнага параўнання. Туды ўваходзяць праграмы для папарнага параўнання бялкоў, множнага параўнання, знаходжання падобных участкаў на адным бялку, параўнанне бялка з цэлай бібліятэкай бялкоў, а таксама пошук паслядоўнасці амінакіслотаў у PDB. Інтэрфейс таксама дастаткова просты і дазваляе хутка параўнаць бялкі і атрымаць шмат карыснай інфармацыі пра іх падабенства, не толькі візуальнай, але і лікавай. Таксама прадастаўлена магчымасць візуалізацыі з дапамогай разнастайных плагінаў, напрыклад, з дапамогай Java аплета Jmol. Вывад тэкставай інфармацыі прадастаўлены на малюнку 2.4 (параўноўваліся бялкі з ідэнтыфікатарамі 1MDBi 4HHB)
Малюнак 2.4. Вынік працы MATRAS
Раней былі апісаныя многія гатовыя праграмныя сродкі, якія можна было выкарыстоўваць для выканання нейкіх задач біяінфарматыкі. Але для гэтага неабходна шукаць гатовае рашэнне сярод існуючых праграмных сродкаў і рабіць правільны выбар іх камбінацыі. Таму можа ўзнікнуць праблема таго, што гатовага рашэння можа і не быць у дадзены момант. Дапамагчы ў гэтай сітуацыі могуць гатовыя прыкладныя праграмныя інтэрфейсы (ППІ) для розных моў праграмавання. Яны дазволяць у сціслы і хуткі тэрмін напісаць даследчыку праграму на аснове гатовай бібліятэкі класаў і функцый вырашыць канкрэтную задачу без прыцягнення іншых распрацоўчыкаў. Асаблівую вядомасць зараз маюць праекты BioJava[2] і BioPerl.
Праект BioJava быў распачаты ў 1999 годзе Томасам Даўнам і Мэцью Покакам як ППІ для спрашчэння напісання праграм для біяінфарматыкі з выкарыстаннем мовы праграмавання Java. Цяпер гэта паўнавартасная аснова для стварэння праграм на Javaі выканання многіх распаўсюджаных заданняў біяінфарматыкі. Гэтая бібліятэка адносіцца да праектаў з адкрытым праграмным кодам. Яна распаўсюджваецца па ліцэнзіі LGPL, таму можа быць выкарыстана і распаўсюджана ў любой форме[2]. Сярод магчымасцяў, якія прадастаўляе гэта бібліятэка вылучаюць 10 галоўных:
1. Нуклеатыдныя і амінакіслотныя алфавіты
2. Разборшчык BLAST
3. Увод/вывад паслядоўнасцяў
4. Дынамічнае праграміраванне
5. Увод/вывад структур і маніпуляцыі з імі
6. Маніпуляцыі з паслядоўнасцямі
7. Генетычныя алгарытмы
8. Статыстычыя размеркаванні
9. Графічныя інтэрфейсы карыстальніка
10. Захаванне ў базе даных
Для працы з апошнімі версіямі бібліятэкі неабходны віртуальная машына Java 1.5 і шэраг бясплатных бібліятэк, на якія ёсць залежнасці ў BioJava. Разам з бібліятэкай ідзе падрабязная і змястоўная дакументацыя і прыклады, якія дапамогуць разабрацца ў кароткі тэрмін з асноўнымі магчымасцямі ППІ. Разгледзім некаторыя гэтыя магчымасці больш падрабязна.
Разнастайныя біялагічныя аб’екты апісваюцца рознымі спосабамі. Звычайна гэта робіцца на аснове запісу іх дробных элементарных аб’ектаў нейкімі сімваламі. Сімвалы могуць брацца з разнастайных алфавітаў, спецыфічных да канкрэтнай вобласці біяінфарматыкі. Гэтак, пры апісанні паслядоўнасцяў ДНК нам неабходны алфавіт усяго з чатырох сімвалаў тымін (Т), гуамін (Г), цытазін (Ц) і адэнін (А). Для апісання поліпептыдаў патрэбны ўжо алфавіт з 20 сімвалаў (бо ў поліпептыды ўваходзяць 20 розных амінакіслотных рэшткаў). Такім чынам, для абстракцыі працы з разнастайнымі паслядоўнасцямі сімвалаў і алфавітамі і была ўведзена іерархія тыпаў для розных структур. Гэтая функцыянальнасць размешчана ў пакетах org.biojava.bio.symbol і org.biojava.bio.seq.
Для спрашчэння працы са сховішчамі інфармацыі, распрацаваны інтэрфейсы і рэалізацыі разборшчыкаў файлаў разнастайных фарматаў і канвертацыю іх у структуры канкрэтных біялагічных аб’ектаў. Зараз падтрымліваюцца фарматы асноўных сховішчаў біялагічнай іфармацыі: PDB, GenBank, EMBL, FASTA, SWISSPROT. Характэрна тое, што заданнем некалькіх параметраў даследчык можа фільтраваць даныя і працаваць толькі з неабходнай яму інфармацыяй. Для больш складаных і нетрывіяльных задач распрацоўчык вольны пашырыць існуючы ППІ. Прычым, пры ўмове якаснага і карыснага пашырэння, гэтыя змены могуць быць дададзеныя ў праект на аснове адкрытасці яго праграмных кодаў і потым паўторна выкарыстаны іншымі даследчыкамі. Таму бібліятэка вельмі дынамічна пашыраецца.
Яшчэ адной магчымасцю бібліятэкі з’яўляецца наяўнасць рэалізацый эфектыўных алгарытмаў параўнання паслядоўнасцяў і структур на аснове метадаў дынамічнага праграміравання і схаваных маркаўскіх мадэляў. Гэтая функцыянальнасць размешчаная ў пакетах org.biojava.bio.dp і org.biojava.bio.alignment. Найбольш вядомымі з прадстаўленых алгарытмаў з’яўляюцца алгарытмы Баўма-Вэлша, Нідлмана-Вунша, Сміта-Ўотэрмана. Безумоўна, гэта вельмі карысная асаблівасць, бо скарачае значны час на распрацоўку і тэсціраванне праграмы.
Наступнай важнай магчымасцю бібліятэкі BioJava з’яўляецца магчымасць візуалізацыі структур і праца з шэрагам знешніх візуалізатараў. Гэтая функцыянальнасць знаходзіцца ў пакеце org.biojava.bio.gui і ўкладзеных у яго. Адным са знешніх візуалізатараў, працу з якім забяспечвае BioJava і адным з найвядомейшых, з’яўляецца Java аплет Jmol.
Нарэшце, адной з найважнейшых магчымасцяў бібліятэкі з’яўляецца праца з базамі даных. Спецыяльна распрацаванай базай для працы з біялагічным аб’ектамі на аснове існуючых рэляцыйных баз даных, з’яўляецца BioSQL. Яна з’яўляецца агульнай мадэллю для біялагічных аб’ектаў і для працы з ёю існуюць ППІ на розных папулярных мовах, сярод якіх прадстаўлены Python, Java, Ruby, Perl. Шэраг баз таксама прадстаўлены шырокім спектрам: PostgreSQL, MySQL, Oracle, HSQLDB.
Трэба заўважыць, што хоць BioJava і з’яўляецца найбольш дарослай і вялікай бібліятэкай, аднак пад уплывам дынамічнага развіцця новых моў усё больш дынамічна развіваюцца і іншыя бібліятэкі, такія як BioRuby, BioPerl, BioPython. Гэта дазваляе пашырыць выкарыстанне такі ППІ сярод вялікай колькасці даследчыкаў, бо знікае неабходнасць засвойваць нейкую канкрэтную мову, а ёсць магчымасць знайсці адпаведнік на тое мове, навыкі працы з якой найбольш развітыя.
Глава 4ПРАКТЫЧНАЕ ВЫКАРЫСТАННЕ БІБЛІЯТЭКІ BIOJAVA
Уваходныя даныя: файлы, у якіх змяшчаюцца апісанні паслядоўнасцяў ДНК чалавечага геному
Выхадныя даныя: пара найбольш блізкіх паслядоўнасцяў з гэтых файлаў.
Неабходна знайсці пару найбольш блізкіх паслядоўнасцяў з дапамогай бібліятэкі BioJava.
Перад тым, як пачынаць працу з бібліятэкай і напісаннем праграмнага коду, відавочна, трэба зрабіць яе прымяняльняй. Бібліятэка распаўсюджваецца, як набор jar файлаў, таму ў пачатку неабходна скачаць архіў з праграмай і распакаваць файлы бібліятэкі з яго. Для распрацоўкі на платформе Java неабходны так называемы Java Development Kit (JDK) – мінімальны набор распрацоўшчыка. Таму неабходна праінсталіраваць і яго, пры ўмове таго, што ён не ўсталяваны. Для працы з апошняй версіяй BioJava 1.6.1 патрэбны JDK ад версіі 1.5 і вышэй. Для таго, каб выкарыстоўваць бібліятэку неабходна дадаць яе файлы ў гэтак званы CLASSPATH. Можна выстаўляць яго, як пераменную асяроддзя, а можна і перадаваць як параметр пры запуску віртульнай машыны Java (Java Virtual Machine). Ускарыстаемся першым варыянтам:
export CLASSPATH=/home/kotuk/biojava-live.jar:/home/kotuk/bytecode.jar:
/home/kotuk/commons-cli.jar:
/home/kotuk/commons-collections-2.1.jar:
/home/kotuk/commons-dbcp-1.1.jar:
/home/kotuk/commons-pool-1.1.jar:.
Як можна заўважыць, акрамя непасрэдна класаў бібліятэкі, мы павінны ўключыць і архівы бібліятэк, ад якіх залежыць BioJava. Уасноўнымгэтачастківядомагапраектазадкрытымпраграмнымкодам Apache Jakarta Commons. З-затаго, што BioJava таксамаз'яўляеццапраектамзактрытымпраграмнымкодам, томымаеммагчымасцьускарыстаццакодамікласаўісабрацьпраектсамім. Аледляканкрэтнайзадачыгэтанез'яўляеццанеабходным, тамупраграмныякодыўасноўнымвыкарыстоўваюццадляглыбейшагаразуменнямеханізмупрацыбібліятэкі.