Введение
С развитием методов биохимии и молекулярной биологии с одной стороны, и вычислительной техники – с другой, в биологической науке сформировался особый подход к изучению живых систем –
in silico. Данный подход предполагает исследование биологических систем с применением вычислительных машин, т.е. рассматривает живые системы как набор информации о них. Одной из биологических наук, реализующих подход
in silico, является биоинформатика.
Предметом биоинформатики являются алгоритмы обработки данных о структуре биологических макромолекул. Объект биоинформатики – нуклеиновые кислоты и белки, биологические макромолекулы, чья структура принципиально определяет свойства живых организмов и их частей. С развитием технологий секвенирования, позволяющих получать информацию о первичной структуре биологических макромолекул, и методов структурного анализа, исследующих их пространственное строение, возникла необходимость в обработке большого количества соответствующих данных. В современной биоинформатике имеется значительное число специальных методов работы с биологической информацией; в то же время непрерывно идет поиск новых методов, подходов и алгоритмов математического анализа биомолекул.
Данное пособие содержит задания с инструкциями по их выполнению по ряду тем курса биоинформатики и может быть использовано для организации практических занятий в университете. Теоретическая информация дана в крайне сжатой форме; предполагается, что перед выполнением практических заданий обучающийся прослушал лекции по соответствующей теме или самостоятельно изучил соответствующую литературу.
Тема 1. Поиск и сравнение последовательностей
Работа с первичной структурой биологических макромолекул – то есть с нуклеотидной или аминокислотной последовательностью – является, пожалуй, наиболее распространенной задачей биоинформатики. Этому способствует, прежде всего, относительная легкость получения информации о первичной структуре нуклеиновых кислот и белков на современном этапе развития биохимии и молекулярной биологии. На сравнении последовательностей нуклеиновых кислот основаны современные методы классификации живых организмов, а анализ множества гомологичных белковых последовательностей позволяет получить информацию о структурных и функциональных особенностях молекулы.
Последовательности белков и нуклеиновых кислот очень легко могут быть записаны в виде текста, поскольку и те, и другие являются линейными, то есть не ветвятся. Первичная структура описывается как последовательность мономеров: у белков - в направлении от N-конца к C-концу; у нуклеиновых кислот – от 5'-конца к 3'-концу. Последовательности записываются буквами английского алфавита в однобуквенной нотации.
Однобуквенные обозначения аминокислотных остатков
Однобуквенные обозначения нуклеотидных остатков
Для записи биологических последовательностей используется формат
Fasta – текст, размеченный особым образом. Каждая последовательность может быть предварена заголовком, содержащим знак ">" и название последовательности. Заголовок занимает отдельную строку; после переноса строки записывается последовательность. Текстовый файл (или поле ввода), содержащий несколько последовательностей (естественно, с разными заголовками), обозначается термином "multi-fasta". Если в файле или поле ввода содержится только одна последовательность, она может не иметь заголовка.
Замечательное свойство молекулярных последовательностей, способствующее их использованию в качестве источника данных для классификации организмов, заключается в возможности количественной оценки их сходства. Для количественной оценки сходства последовательностей используют выравнивание – расположение последовательностей одна под другой с сохранением порядка символов таким образом, чтобы достичь совпадения или сходства мономеров в наибольшем числе позиций. Выравнивание производится путем смещения частей последовательностей относительно друг друга и добавления разрывов в последовательности.
При количественном сравнении последовательностей биомолекул необходимо учитывать физико-химические свойства мономеров.
Выравнивание справа содержит больше совпадений аминокислот, однако более сходными по физико-химическим свойствам являются олигопептиды в выравнивании слева.
Для дифференцированной оценки совпадений или несовпадений различных мономеров используются матрицы замен, основанные на статистике аминокислотных или нуклеотидных замен в гомологичных молекулах с известной структурой. Числа на пересечениях символов показывают, насколько часто в молекулах происходит замена одного мономера на другой, а значит, насколько сильно соответствие друг другу этих мономеров в выравнивании свидетельствует о сходстве выравниваемых молекул.
Пример матрицы аминокислотных замен
Пример матрицы нуклеотидных замен
Количественный показатель сходства биологических последовательностей –
score, или счет выравнивания – вычисляется путем сложения чисел из матрицы замен для каждой позиции. Score – это мера сходства, т.е. чем он выше, тем более сходны последовательности.
Если выравнивание содержит разрывы, они также должны быть учтены. Очевидно, что разрывы – это признак различия в молекулах, поэтому наличие разрывов должно понижать счет выравнивания. Величина, отнимаемая от счета выравнивания для учета разрывов, называется
штрафом за делецию (штрафом за разрыв) – gap penalty. Длинные разрывы в последовательностях, занимающие несколько позиций, оцениваются целиком – поскольку разрывы интерпретируются как мутации в одной из гомологичных молекул, длинный разрыв рассматривается как одна мутация, затронувшая сразу несколько мономеров. Для этого используются отдельные значения штрафов за «открытия» и за «продолжения» разрывов. Значения штрафов, как правило, выбираются исходя из характеристик выравниваемых последовательностей, особенностей конкретного алгоритма и сложившейся практики.
Расчет штрафов за делеции, если штраф за открытие разрыва равен 10, за продолжение – 1.
Для получения парного выравнивания, т.е. оценки сходства двух последовательностей, используются различные модификации алгоритма динамического программирования (алгоритм Нидлмана – Вунша, алгоритм Смита – Ватермана и другие), дающие – для заданных последовательностей, матрицы замен и штрафов за разрывы – выравнивание с наибольшим счетом из всех возможных. С увеличением числа выравниваемых последовательностей вычислительная сложность (и требуемое время) алгоритма динамического программирования возрастает до неприемлемых величин, поэтому для множественного выравнивания – т.е. одновременного выравнивания трех или более последовательностей – используются иные, т.н. эвристические алгоритмы (Clustal, Muscle и др.). Наконец, совершенно особую группу алгоритмов для работы с последовательностями составляют алгоритмы поиска по банкам данных, среди которых наиболее известен алгоритм BLAST.
Работа 1. Поиск последовательностей
1.1. Одним из центральных ресурсов поиска информации в биологии является портал Национального центра биотехнологической информации США:
ncbi.nlm.nih.gov
Перейдите в веб-браузере по указанному адресу.
Данный ресурс является гигантским сборником разнообразнейших инструментов анализа биологической информации, порой способных заменить десятки специализированных программ – вы убедитесь в этом в ходе дальнейшей работы. Тем не менее, на главной странице вы видите единственную строку поиска – поскольку первым шагом к работе с биологическими данными является поиск информации в специальных базах и банках данных. Рассматриваемый в этой работе тип поиска представляет собой т.н.
поиск по ключевым словам: система будет искать записи баз данных, содержащие введенные нами слова.
Выпадающий список позволяет выбрать базу данных нужного типа (например,
Protein – для поиска последовательностей белков,
Nucleotide – нуклеиновых кислот,
Structure – пространственных структур биомолекул,
Pubmed – поиск научных публикаций).
п о и с к п о к л ю ч е в ы м с л о в а м
1.2. Найдите записи, относящиеся к белку гемоглобину. Для этого в выпадающем списке выберите раздел
Protein, впишите в поле ввода
Hemoglobin и нажмите
Search или
Enter. В результате на экран будут выведены ссылки на все записи, содержащие данное слово.
1.3. Перейдите по ссылке к первой записи из списка результатов. Запись состоит из полей, обозначенных заглавными буквами, которые содержат информацию о последовательности. Ниже приведено описание некоторых полей.
LOCUS |
Данное поле содержит несколько элементов, описанных ниже. |
Locus Name |
Например, AAA29796. Уникальный идентификатор (код) записи или последовательности. |
Sequence Length |
Например, 333 aa. Длина последовательности. |
GenBank Division |
Раздел банка данных GenBank, к которому относится последовательность. Например, INV. Разделы отражают происхождение последовательности из определенного организма, технологию определения последовательности или другие особенности: |
PRI – primate sequences |
Приматы |
ROD – rodent sequences |
Грызуны |
MAM – other mammalian sequences |
Другие млекопитающие |
VRT – other vertebrate sequences |
Другие позвоночные |
INV – invertebrate sequences |
Беспозвоночные |
PLN – plant, fungal, and algal sequences |
Растения, грибы, водоросли |
BCT – bacterial sequences |
Бактерии |
VRL – viral sequences |
Вирусы |
PHG – bacteriophage sequences |
Бактериофаги |
SYN – synthetic sequences |
Синтетическая последовательность |
UNA – unannotated sequences |
Неописанная последовательность |
PAT – patent sequences |
Последовательность, включенная в патент |
ENV – environmental sampling sequences |
Последовательность из образцов окружающей среды |
Modification Date |
Дата последнего изменения записи. Например, 26-APR-1993. |
DEFINITION |
Краткое описание последовательности. |
ACCESSION |
Уникальный идентификатор записи. Формат зависит от типа последовательности. Например, AAA29796. |
VERSION |
Уникальный идентификатор последовательности. Например, AAA29796.1. Изменяется при внесении поправок в существующую запись с сохранением Accesion. |
GI - "GenInfo Identifier" |
Еще один идентификатор последовательности. Изменяется при любой правке последовательности, поэтому входит в раздел Version. |
KEYWORDS |
Ключевые слова, описывающие последовательность. При отсутствии таковых ставится точка. |
SOURCE |
Неформализованное название организма – источника последовательности. |
ORGANISM |
Формализованное наименование организма и его таксономия. |
REFERENCE |
Публикации, содержащие информацию из данной записи. |
AUTHORS |
Список авторов. |
TITLE |
Название работы. |
JOURNAL |
Название журнала. |
FEATURES |
Описание генов, продуктов их экспрессии, а также участков последовательности. |
ORIGIN |
Последовательность в формате "GenBank". |
р а с ш и р е н н ы й р е ж и м п о и с к а
1.4. Вернитесь на предыдущую страницу – к результатам поиска. В данном случае системой были найдены записи, в которых слово
Hemoglobin встречается в любом из полей. При таком подходе часто бывает сложно найти нужную последовательность среди множества нерелевантных результатов. Более гибкие возможности поиска предоставляет расширенный режим, в который можно перейти с помощью ссылки
Advanced под полем ввода (откройте ее в новой вкладке).
В расширенном режиме можно указывать, в каких полях должны встречаться искомые слова. Пусть нам нужно найти записи, содержащие слово
Hemoglobin исключительно в заголовке. В первом выпадающем списке выберите
Title, в поле ввода рядом с ним впишите
Hemoglobin. Нажмите
Search или
Enter, чтобы увидеть результаты поиска. Сравните количество найденных записей в этом случае и в предыдущем.
1.5. В расширенном режиме выполните поиск записей, соответствующих гемоглобину человека. Используйте дополнительную строку поиска и логический оператор AND.
Перед каждой дополнительной строкой можно установить один из трех логических операторов:
При использовании… |
Будут найдены записи, содержащие слова… |
AND |
строго из обоих строк – из данной и из предыдущей |
OR |
хотя бы из одной строки – данной или предыдущей |
NOT |
любые, кроме указанных в данной строке |
1.6. Самостоятельно выполните поиск записей, соответствующих гемоглобину всех эукариот, кроме человека. (Попробуйте самостоятельно догадаться, где подсмотреть правильное написание слова «эукариот».) Корректно выполненный поиск выдаст около 10000 результатов.
1.7. Те же результаты можно получить в обычном режиме, используя специальный синтаксис поискового запроса (его можно увидеть в строке поиска при отображении результатов запроса), например, такой:
(Hemoglobin[Title]) AND Homo[Organism]
Названия полей указываются в квадратных скобках сразу после ключевых слов, круглые скобки, наряду с операторами, служат для логической группировки элементов. Использование данного синтаксиса часто бывает проще и быстрее, чем «мышеориентированного» интерфейса, а иногда и вовсе незаменимо, как можно убедиться, выполнив следующее задание.
С использованием поискового синтаксиса составьте запрос для поиска белка глобина (слово
globin в названии записи) человека и быка (
Bos). Обратите внимание на правильное использование логических операторов.
Затем проделайте то же самое в расширенном режиме (по ссылке
Advanced). Сопоставьте результаты. Найдите причину различий.
Корректно выполненный поиск выдаст около 200 результатов.
Работа 2. Парное выравнивание
Парное выравнивание используется для количественной оценки сходства двух биологических последовательностей. Показателем сходства служит параметр
score, или
счет выравнивания. Для вычисления счёта последовательности «выравнивают» – располагают одну под другой таким образом, чтобы достичь совпадения или сходства остатков (символов, букв) в наибольшем числе позиций, при этом в каждую последовательность можно вносить разрывы. Чем больше получается позиций, содержащих одинаковые или схожие остатки, и чем меньше – содержащих непохожие остатки или разрывы, – тем выше будет счет выравнивания. Соответственно, входными параметрами для выравнивания, помимо самих последовательностей, являются матрица замен (содержащая информацию о степени сходства тех или иных остатков) и значения штрафов за внесение разрыва.
В данной работе мы используем серию парных выравниваний для изучения белков глобинов – на примере человеческого и бычьего белков. Глобины присутствуют у множества организмов и способны к образованию четвертичной структуры, при этом существует два типа субъединиц – α и β. Считается, что все глобины произошли от единой «предковой» молекулы. В результате данной работы мы выясним, какие глобины более похожи – субъединицы разного типа, но из одного биологического вида, или же одного типа, хотя и разных организмов. Соответственно, мы сможем сказать, какое событие произошло раньше – разделение предковой молекулы на α- и β-глобины или появление биологических видов «человек» и «бык». Считается, хотя и с оговорками, что чем более различны две молекулы (т.е. последовательности) – тем больше времени прошло с их эволюционного разделения, с тех времен, когда они еще были одной молекулой.
Для выполнения выравнивания белков нам требуются их первичные структуры, т.е. последовательности. Наиболее удобным представляется скопировать все четыре последовательности в формате
Fasta в текстовый редактор и использовать по мере необходимости.
1.8. В режиме обычного поиска (не расширенного – здесь он не требуется) найдите 4 белка – альфа- и бета-глобины человека и быка. Пример запроса для поиска:
alpha globin Bos
Данные белки содержат 140-150 а. о. Откройте найденные последовательности в формате Fasta с помощью соответствующей ссылки.
Скопируйте последовательности в текстовый редактор и переименуйте, например, так: «beta_globin_Homo». Переименование (по сути – удаление пробельных символов из названия) необходимо для корректной работы сервиса выравнивания.
Выше показано, как должна выглядеть первая запись в вашем текстовом редакторе. Далее необходимо расположить еще три, для удобства разделяя их пустой строкой.
1.9. С помощью серии парных выравниваний выясните, какие белки более сходны – одинаковые субъединицы разных организмов или разные субъединицы одного организма.
Один из наиболее удобных сервисов парного выравнивания располагается на сайте Европейского института биоинформатики:
www.ebi.ac.uk/Tools/psa
Обратите внимание: на данном сайте в адресе обязательно нужно писать «www», а также «Tools» с большой буквы.
Откройте страницу. Найдите на ней ссылку на глобальное выравнивание белков с использованием алгоритма Нидлмана – Вунша, перейдите по ней.
Скопируйте в два текстовых поля соответственно альфа-глобины человека и быка. Нажмите кнопку More options для задания параметров выравнивания.
MATRIX |
Матрица аминокислотных замен |
GAP OPEN |
Штраф за открытие разрыва |
GAP EXTEND |
Штраф за продолжение разрыва |
END GAP PENALTY |
Учет концевых разрывов. Обычно «false» (без учета) |
END GAP OPEN |
Штраф за открытие концевого разрыва |
END GAP EXTEND |
Штраф за продолжение концевого разрыва |
Задайте штраф за открытие разрыва равным 10, за продолжение – 1.
1.10. Нажмите Submit. При корректных входных параметрах через некоторое время будут отображены результаты, как на рисунке ниже.
Length |
Длина выравнивания |
Identity |
Количество позиций выравнивания с совпадающими символами |
Similarity |
Количество позиций выравнивания со схожими остатками |
Gaps |
Количество разрывов в обеих последовательностях |
Score |
Счет выравнивания |
Внизу страницы отображается выравнивание. Слева от последовательностей написаны их имена, справа – номер последнего символа каждой последовательности в данной строке. В случае длинных последовательностей выравнивание пишется в несколько «блоков».
Между последовательностями располагаются три вида символов, показывающих степень сходства остатков в данной позиции:
| |
Точное совпадение («идентичность») |
: |
Высокое сходство |
. |
Низкое сходство |
|
Несходство |
1.11. Проделайте выравнивание альфа-глобинов человека и быка с использованием матриц BLOSUM с разными номерами. Заполните таблицу:
BLOSUM-30 |
|
|
BLOSUM-40 |
|
|
BLOSUM-50 |
|
|
BLOSUM-60 |
|
|
BLOSUM-70 |
|
|
BLOSUM-80 |
|
|
BLOSUM-90 |
|
|
Отметьте, ка́к номер матрицы влияет на счет выравнивания. Попробуйте сформулировать принцип выбора корректной матрицы для парного выравнивания. Обсудите свое решение с преподавателем.
1.12. Проделайте выравнивание остальных трех пар белков, заполнив следующую таблицу. Используйте матрицы замен BLOSUM с правильными номерами.
α-глобины человека и быка |
|
|
|
β-глобины человека и быка |
|
|
|
α- и β-глобины человека |
|
|
|
α- и β-глобины быка |
|
|
|
Обсудите полученные результаты.
Работа 3. Множественное выравнивание
Множественное выравнивание аналогично парному, однако позволяет «расположить одна под другой» сразу несколько последовательностей, не говоря уже о том, что имеет в своей основе принципиально иные алгоритмы. Строго говоря, анализ четырех последовательностей из предыдущей работы проще и правильнее было бы осуществить именно с помощью множественного выравнивания (хотя результаты, конечно, получились бы те же самые). Кроме того, что множественное выравнивание является первым шагом филогенетического анализа, оно также позволяет выявить особые участки в последовательностях родственных белков – участки, важные для формирования структуры или функционирования молекулы. Такой анализ будет проведен вами в одной из последующих работ.
1.13. Проделайте с α- и β-глобинами человека и быка множественное выравнивание. Откройте страницу множественного выравнивания на сайте Европейского института биоинформатики:
www.ebi.ac.uk/Tools/msa
Запустите метод
Clustal Omega с помощью соответствующей ссылки (
Launch Clustal Omega).
1.14. Скопируйте в текстовое поле (
Step 1) сравниваемые последовательности в формате multi-FASTA. Нажмите
Submit. При корректных входных параметрах через некоторое время будут отображены результаты, сгруппированные в несколько вкладок.
Вкладка Alignment
Слева от выравнивания написаны имена последовательностей. Как и в парном выравнивании, в случае длинных последовательностей выравнивание пишется в несколько строк – «блоков».
Под выравниванием располагается строка, показывающая степень сходства остатков в каждой позиции. «*» обозначает совпадение символов во всех последовательностях.
Включите отображение цветов символов с помощью соответствующей кнопки (
Show colors). Проанализируйте выравнивание и заполните таблицу.
Вкладка Phylogenetic tree
1.15. Анализ филогенетического дерева, построенного по данным четырем последовательностям, подтверждает результаты парных выравниваний, проделанных в предыдущей работе – субъединицы одного типа являются более похожими последовательностями (находятся на меньших расстояниях в дереве), нежели субъединицы одного организма.
Работа 4. Поиск и анализ гомологичных последовательностей
В ходе предыдущих работ для поиска биологических макромолекул (белков) и информации о них мы использовали поиск по ключевым словам – чтобы найти записи, содержащие искомые слова. Существует также, в некотором смысле, «обратная» задача – зная последовательность белка или нуклеиновой кислоты, найти похожие молекулы и таким образом идентифицировать искомую последовательность, а заодно получить множество дополнительной информации о ней.
Похожие молекулы принято называть «гомологичными», таким образом полагая, что их сходство следует из общности происхождения.
Наиболее популярная в настоящее время программа такого рода, чье имя практически стало синонимом поиска по последовательности – программа
BLAST, доступная в виде веб-сервиса на сайте NCBI. В зависимости от вида исходных данных и получаемых результатов BLAST делится на несколько разновидностей (например,
blastp (Protein BLAST) принимает в качестве запроса аминокислотную последовательность,
blastn (Nucleotide BLAST) – полинуклеотидную).
1.16. Доступ к сервису BLAST можно получить с сайта NCBI, открыв страницу
blast.ncbi.nlm.nih.gov
В разделе
Web BLAST выберите пункт
Protein BLAST. Изучите интерфейс сервиса. В разделе
Algorithm parameters (внизу страницы) найдите известные вам параметры поиска. Как они влияют на результаты? Используйте конспекты лекций.
1.17. Рассмотрим работу программы BLAST на примере альфа-глобина человека. Найдите запись, относящуюся к этому белку; затем перейдите по ссылке
Run BLAST в правой части страницы.
На следующей странице – стартовой странице поиска – убедитесь, что в поле запроса присутствует
accession вашего белка и нажмите кнопку
BLAST внизу страницы.
Несмотря на хитроумный алгоритм, призванный ускорить поиск, выполняется он сравнительно долго – как правило, от десятков секунд до нескольких минут. При корректных исходных данных страница несколько раз перезагрузится, прежде чем будут показаны результаты.
Раздел Graphic Summary
На странице результатов в разделе
Graphic Summary показана наша последовательность
(query) – если она не слишком длинная, будут показаны отдельные буквы-мономеры (как в данном случае), в противном случае последовательность будет выглядеть просто как серая полоска. Как правило, сразу под ней располагается информация о специфических участках молекулы – так, в данном случае треугольными стрелками показаны аминокислоты, вовлеченные во взаимодействие с другими молекулами.
Та же самая последовательность показана чуть ниже в виде красной полосы (подписана «Query»); на нее схематично «наложены» последовательности, найденные в результате поиска – ее гомологи. Красный цвет полосок обозначает, что они выравниваются с query со счетом выше 200.
Раздел Description
Этот раздел содержит более подробное описание результатов поиска. Найденные последовательности перечислены в таблице и по умолчанию расположены в порядке уменьшения счета выравнивания с
query.
Description – название записи. Ссылка ведет на выравнивание данной последовательности с query, расположенное ниже на этой же странице.
Max score и
Total score – счет этого выравнивания. Объяснение различий между этими двумя параметрами потребовало бы слишком сильного углубления в детали алгоритма BLAST.
Query cover – показывает, какая доля длины query «покрыта» данной последовательностью.
E-value – показатель статистической достоверности выравнивания.
Ident – количество позиций выравнивания с совпадающими символами.
Accession данной последовательности показан в виде ссылки на ее запись в NCBI.
Результаты выполнения данного задания необходимы для ответа на контрольные вопросы №№ 12 и 13.
1.18. С помощью сервиса BLAST определите, какому белку принадлежит последовательность
GGKDACQGDSGGPLVADG . Каким организмам принадлежат найденные гомологи? Для получения ответов используйте раздел
Description, а также информацию о найденных доменах – она откроется по щелчку на схеме:
Обсудите решение с преподавателем.
Контрольные вопросы
1. Какой раздел для поиска следует выбрать, чтобы найти: а) первичную структуру фенилаланиновой т-РНК; б) третичную структуру ее же? См. задание 1.
2. Представьте, что вы пишете научную работу, в которой использована информация из биологических банков данных. Что необходимо указать в качестве ссылки, чтобы читающий вашу работу человек смог быстро и однозначно найти ту же информацию?
См. задания 1–3.
3. Как расшифровывается надпись «609 aa protein»? См. задание 2.
4. Почему при использовании расширенного поиска по тем же ключевым словам получается меньше результатов (задание 4)?
5. При прочих равных, в каком случае получится больше результатов поиска – при использовании оператора И или оператора ИЛИ (задание 5)?
6. Какие значения можно использовать в выпадающем списке полей, чтобы в качестве организма-источника задать человека (задание 5)? Какое из них использовать предпочтительнее? Почему?
7. Сколько последовательностей содержит выравнивание на рисунке в задании 10? Сколько в нем позиций? Сколько блоков?
8. Почему длина выравнивания обычно больше длины любой из последовательностей (задание 10)?
9. Почему в параметрах множественного выравнивания, в отличие от парного, нельзя задать номер матрицы замен?
10. Каким образом матрицы замен влияют на счет выравнивания? Влияют ли они на само выравнивание? Какие параметры влияют на построение выравнивания? Используйте конспекты лекций.
11. В разделе BLAST Algorithm parameters (задание 16) найдите известные вам параметры поиска. Как они влияют на результаты?
12. Рассмотрите первую запись в списке результатов «бласта» человеческого альфа-глобина (задание 17). Чему равно E ? О чем это говорит? Используйте конспекты лекций.
13. Первые три последовательности в списке результатов имеют Query cover и Identity равные 100 %. О чем это говорит?
Тема 2. Пространственные структуры биомолекул
В развитии биологии XX века сложно переоценить роль физических методов, позволивших устанавливать пространственную структуру биологических макромолекул с точностью до атомов. Благодаря различным методам – от уже ставших «классическими» рентгеноструктурного анализа и ЯМР и до таких «новейших» методов, как атомно-силовая микроскопия – накоплено большое количество данных о пространственной структуре белков и нуклеиновых кислот, а также (скорее даже – как правило) их комплексов с различными соединениями, играющими важную биологическую роль. Исследования пространственных структур биомолекул позволяют не только лучше понять молекулярную механику жизненных процессов, но также создавать новые соединения с заданными биологическими свойствами. Параллельно с развитием физических методов – поскольку получение пространственных структур для некоторых молекул до сих пор является крайне трудоемким процессом – развиваются и компьютерные, математические методы анализа получаемых данных. В отличие от методов работы с последовательностями, работа с пространственными структурами является более сложной как с вычислительной точки зрения, так и с позиции алгоритмов действия и интерпретации результатов.
В современной химии и хемоинформатике существует чрезвычайно большое количество форматов описания пространственной структуры (конформации) молекул. Напротив, для хранения информации о структуре биологических молекул в подавляющем большинстве случаев используется формат
PDB. Он предполагает использование текстовых файлов (с расширением «pdb»), размеченных особым образом. Как правило, большая часть PDB-файла – а именно строки, начинающиеся со слов «ATOM» и «HETATM» – содержит информацию о положении атомов в системе трех координат. Строки «ATOM» используются для описания атомов макромолекул – белков и нуклеиновых кислот; «HETATM» – это атомы других соединений, обычно низкомолекулярных, находящихся в комплексе с макромолекулой либо просто присутствующих в составе структуры (как молекулы воды).
Атом № 4899 является атомом кислорода в гамма-положении серина – 361-го аминокислотного остатка В-цепи белка. Данный атом находится в точке с координатами по оси Х – 47 Å, Y – 43 Å, Z – 19 Å.
Для работы с пространственными структурами биомолекул используются специальные программы – просмотрщики, или «вьюеры», позволяющие представить молекулу в виде различных моделей. Также обычно присутствует стереоскопический режим, облегчающий восприятие конформации молекулы (но требующий некоторой тренировки глаз).
Слева направо: каркасная (скелетная, проволочная) модель (stick), шаростержневая модель (ball and stick), модель ван-дер-ваальсовых радиусов атомов.
Стереоскопическое изображение L-аланина (cross-eyed viewing). Следует смотреть правым глазом на левую картинку, левым – на правую. Для этого «сведите» глаза таким образом, чтобы картинки «соединились», затем попытайтесь сфокусировать взгляд.
Схематичное изображение элементов вторичной структуры белка: альфа-спираль (вверху), бета-структуры (внизу).
Общепринятые цветовые обозначения химических элементов.
Работа 1. Поиск структур и файлы PDB
Наиболее распространенным форматом файла для описания пространственной структуры биологических молекул является формат PDB. Файл в формате PDB – это простой текстовый файл с расширением «pdb», хотя могут использоваться и другие расширения.
Центральным хранилищем данных о структуре биологических макромолекул является
Protein Data Bank, доступный по адресу
rcsb.org . Кроме того, получить доступ к этим данным и произвести поиск по ним можно с уже знакомого вам сайта NCBI (раздел поиска
Structure).
Уникальным идентификатором каждой структуры в Protein Data Bank является
PDB ID. Данный идентификатор состоит из четырех символов, первый из которых, как правило, цифра; буквы в PDB ID принято писать заглавными, хотя большинство программ в данном случае не чувствительны к регистру символов. Примеры PDB ID: 4L9K, 1BTI, 2R33.
п о и с к в N C B I
2.1. Найдите с помощью сервиса NCBI структуру гемоглобина.
Список результатов поиска в разделе Structure содержит изображения структур.
Откройте первый из результатов поиска.
Для скачивания структуры в формате PDB можно выбрать в выпадающем списке
Format – PDB и нажать кнопку
Download.
Однако более предпочтительным является получение файла структуры с сайта PDB:
rcsb.org
п о и с к н а с а й т е P D B
2.2. На сайте PDB также имеется строка поиска, позволяющая находить структуры по ключевым словам. Выполните поиск по запросу «Hemoglobin». Вы можете заметить, что список найденных структур отличается от такового на сайте NCBI. Самостоятельно изучите назначение отдельных надписей, ссылок и элементов интерфейса на странице результатов поиска.
2.3. Откройте первую запись из списка результатов. Информация о структуре разделена на несколько вкладок. Изучите содержание вкладок Structure summary и Sequence. Ответьте на контрольный вопрос № 2.
2.4. Для скачивания файла структуры на локальный компьютер щелкните
Download files – PDB Format.
р е д а к т и р о в а н и е P D B - ф а й л а
PDB-файл представляет собой простой текстовый файл с расширением «pdb». Как правило, работа с такими файлами осуществляется при помощи специальных программ – просмотрщиков, или «вьюеров». Однако в некоторых случаях полезным бывает умение отредактировать файл структуры в текстовом режиме. Этому и посвящены следующие несколько заданий.
2.5. Откройте скачанный PDB-файл в текстовом редакторе. Данная структура содержит две молекулы (цепи) белка, каждая из них связана с молекулой гема. Изучите разделы файла. Ответьте на контрольный вопрос № 3.
2.6. Найдите строки, описывающие структуру одной из молекул гема. Сколько в ней атомов? Создайте PDB-файл, содержащий молекулу гема. Наиболее простой способ сделать это – удалить все строки, кроме тех, что нужны вам, и сохранить файл.
Работа 2. Просмотр структур с использованием сервиса JSmol
Это один из наиболее простых способов анализа пространственной структуры молекул. Именно он используется по умолчанию на вкладке "3D View" страницы структуры сайта
rcsb.org. Данный способ не требует установки специальных программ на компьютер, поэтому возможна работа практически с любого устройства, обладающего доступом в интернет и относительно функциональным веб-браузером. Для просмотра структур используется веб-сервис JSmol, отрисовывающий молекулы на веб-странице с помощью программы на языке Javascript. JSmol имеет очень богатые функциональные возможности в части отображения и анализа пространственных структур молекул. Недостатком данного сервиса является низкая скорость работы программы. JSmol-сервер биофака БашГУ расположен по адресу
софт.биоуфа.рф/молекулы
2.7. Перейдите по указанному выше адресу и рассмотрите страницу. В левой части страницы расположена область отображения структуры. Кроме того, как и на многих подобных сервисах, на странице расположены элементы управления отображением структуры. Они призваны упростить некоторые действия; однако, поскольку их набор не является стандартным, их использование не будет описано в данном пособии. Более или менее стандартным элементом управления является контекстное меню, а универсальным способом является использование текстовых команд консоли.
Открытие консоли |
Console |
- |
Открытие файла |
File – Load – Open local file, Обзор, (выбрать файл), Load Или просто перетащить файл на область просмотра |
Открытие структуры с известным PDB ID (например, 1ABC) | load =1abc |
Открытие молекулы в формате SMILES (например, воды) | load :smiles: HOH |
Изменение цвета фона |
Select – Color – Background – White |
color background white |
Показывать цветным ореолом выделенные атомы |
Select – Selection halos |
set display selected |
Выделить атомы углерода |
Select – Element – Carbon |
select carbon |
Выделить гетероатомы |
Select – Hetero – All PDB HETATM |
select hetero |
Выделить альфа-спирали |
- |
select helix |
Выделить бета-листы |
- |
select sheet |
Обратить выделение |
Select – Invert selection |
select not selected |
Снять выделение |
Select – None |
select none |
Изменить цвет атома |
Color – Atoms – Red |
color red |
Стандартные цвета атомов |
Color – Atoms – By scheme – Element (CPK) |
color cpk |
Шаростержневая модель |
Style – Atoms – 25% van der Waals; Style – Bonds – 0.15 A |
spacefill 100; wireframe 40 |
Проволочная модель |
Style – Atoms – Off; Style – Bonds – On |
spacefill off; wireframe 20 |
Ван-дер-Ваальсовы радиусы |
Style – Atoms – 100% van der Waals |
spacefill |
Вторичные структуры в виде лент |
Style – Structures – Cartoon |
cartoons |
Не показывать ленты |
Style – Structures – Off |
cartoons off |
Изменить цвет лент |
Color – Structures – Cartoon – Red |
color cartoons red |
Стандартные цвета лент |
Color – Structures – Cartoon – By scheme – Secondary structure |
- |
Действия мыши в режиме выделения
Вращение структуры |
Перетаскивание левой кнопкой (ЛКМ) |
Масштабирование |
Колесико |
Открытие контекстного меню |
Правая кнопка (ПКМ) или Ctrl+ЛКМ |
Определение расстояния между атомами А и В |
2 х ЛКМ на атом А, 2 х ЛКМ на атом В |
Определение валентного угла между связями АВ и ВС |
2 х ЛКМ на атом А, ЛКМ на атом В, 2 х ЛКМ на атом С |
Определение торсионного угла между связями АВ и CD вокруг связи ВС |
2 х ЛКМ на атом А, ЛКМ на атом В, ЛКМ на атом С, ЛКМ на атом D |
Завершение измерений |
ЛКМ на пустое место |
2.8. Загрузите для просмотра файл, содержащий структуру гема.
Для удобства работы можно включить отображение цветного ореола вокруг выделенных атомов (
set display selected).
С использованием команд консоли (приведены ниже) или контекстного меню (найдите самостоятельно соответствующие пункты) задайте правильное отображение цветов атомов в соответствии со схемой СРК.
select all; color cpk; select none
2.9. Произведите измерение расстояний между какой-либо парой атомов; измерение какого-либо валентного угла; измерение какого-либо торсионного угла. Создайте рисунок, показывающий результаты измерений.
2.10. Загрузите структуру гемоглобина, используя PDB ID 4YU3. Покажите белок в виде вторичных структур (режим «ленты»), а гем – в виде шаростержневой модели. Ниже дан соответствующий набор команд консоли. Создайте рисунок. Ответьте на контрольный вопрос № 4.
2.11. Отобразите структуру молекулы L-аланина, используя запись в формате SMILES. Соответствующая команда консоли включает слово
load (как и всегда при загрузке новой молекулы), пробел, символы
:smiles: (предваряет запись в формате SMILES, подобно тому, как «=» предваряет PDB ID) и собственно запись структуры молекулы.
load :smiles:CC(N)(H)C(=O)O
Проанализируйте синтаксис записи в данном формате. Попробуйте составить запись для D-аланина. Ответьте на контрольный вопрос № 5.
Работа 3. Просмотр структур в программе Discovery studio viewer pro
Одной из наиболее удобных программ для анализа структуры молекул является программа
«DS ViewerPro» компании Accelrys. Данная программа бесплатна и имеет версии под Windows и Linux. В этой и последующих работах мы затронем лишь малую часть весьма широкого набора функций данной программы.
2.12. Для выполнения последующих заданий вам понадобится PDB-файл структуры гемоглобина. При отсутствии у вас такого файла – загрузите его, например, с
rcsb.org (PDB ID
4YU3). Откройте файл. При правильных системных настройках он откроется в программе DS Viewer. В случае возникновения проблем с открытием файла вы можете открыть программу, а затем перетащить файл на ее окно.
2.13. Изучите основные принципы работы программы.
Щелчок на пустое место |
Снятие выделения |
Щелчок по структуре |
Выделение атома (или мономера, если атомы не показаны) |
Двойной щелчок по структуре |
Выделение мономера (или полимера, если атомы не показаны) |
Перетаскивание левой кнопкой |
Выделение участка структуры |
Перетаскивание правой кнопкой |
Вращение структуры |
Перетаскивание средней кнопкой |
Поступательное перемещение в плоскости экрана |
Перетаскивание правой кнопкой с удержанием «Shift» |
Вращение в плоскости экрана |
Выделение с удержанием «Shift» |
Выделение дополнительного участка (без снятия предыдущего выделения) |
Вращение колесика |
Масштабирование |
р е ж и м о т о б р а ж е н и я
2.14. Изучите диалоговое окно
Display style. Оно предназначено для изменения режима отображения молекул. Данное окно можно открыть с помощью соответствующего пункта контекстного меню.
Обратите внимание: если предварительно выделить какую-либо часть структуры («выделить желтым»), изменения, сделанные в окне
Display style, будут применены только к выделенной части молекул. Если никакая часть структуры не выделена, изменения применятся ко всей структуре.
Часто в структуру биологических макромолекул включаются молекулы воды. Для более комфортного просмотра их можно скрыть с помощью меню
Scripts – Visualization – Show / Hide waters.
Отобразите гем в режиме ван-дер-ваальсовых радиусов атомов: выделите гем, выберите в контекстном меню
Display style, на вкладке
Атом выберите
СРК; для правильного отображения цветов атомов параметр
Color должен иметь значение
By element. Закройте диалог, нажав
ОК.
Отобразите глобин в виде вторичных структур (режим «schematic»): выделите глобин, выберите в контекстном меню
Display style, на вкладке
Atom выберите
Off; на вкладке
Protein –
Schematic.
Снимите выделение. Создайте рисунок, показывающий результаты работы.
р а б о т а с п о с л е д о в а т е л ь н о с т ь ю
2.15. Проанализируйте структуру дисульфидных связей в ингибиторе трипсина (PDB ID
2R33). Вам необходимо скачать соответствующий файл структуры. Откройте скачанный файл в DS Viewer.
Если потребуется, задайте отображение белка в виде вторичных структур (хотя обычно такой режим включен по умолчанию).
2.16. Включите показ аминокислотной последовательности (т.е. первичной структуры белка) с помощью пункта контекстного меню
Show sequence.
Первичная структура отображается в нижней части окна. Размер этой части по умолчанию, как правило, избыточен; вы можете уменьшить ее, потянув за верхнюю границу.
Если в программе DS Viewer открыто сразу несколько файлов, они отображаются в общем окне, но в отдельных вкладках (вы можете увидеть их в верхней части окна). Последовательности также отображаются во вкладках; при этом переключение вкладок структур и вкладок последовательностей происходит независимо, что может привести к путанице. Поэтому, если вы работаете с последовательностями нескольких файлов – внимательно следите, относятся ли структура и последовательность к одному и тому же файлу.
Последовательность отображается в однобуквенной записи. Иногда в файлах структур отсутствует «начальная» часть молекулы (т.е. N-конец полипептидной цепи или 5'-конец полинуклеотида); в этом случае номера на линейке не будут соответствовать «настоящим» номерам остатков. Проверьте этот факт на вашей структуре и ответьте на контрольный вопрос № 6.
2.17. Вы можете выделять отдельные буквы в последовательности практически так же, как и в обычном текстовом редакторе. При этом соответствующие участки структуры также окажутся выделены. Обратное тоже справедливо.
Наконец, как и в обычном текстовом редакторе, вы можете искать отдельные буквы или их сочетания с помощью клавиатурного сочетания
Ctrl+F. Эта команда работает, только если последовательность находится в фокусе ввода; иначе говоря, если при нажатии
Ctrl+F ничего не происходит – предварительно щелкните мышью на последовательность.
Как известно, дисульфидные связи образуются между остатками цистеина. Найдите остатки цистеина в структуре
2R33 с помощью функции поиска, описанной выше.
Для найденных аминокислотных остатков включите показ в режиме шаростержневой модели (см. задание 14). Ответьте на контрольный вопрос № 7. Создайте рисунок, на котором будет показана одна из дисульфидных связей.
Работа 4. Карты Рамачандрана и структурная организация белков
2.18. Для построения карт Рамачандрана и изучения принципов структурной организации белков вам предлагается использовать следующие структуры:
Миоглобин |
1WLA |
Триозофосфатизомераза |
3UWZ |
Фактор роста фибробластов |
1RML |
Пластоцианин |
6PCY |
С помощью сервиса
http://eds.bmc.uu.se/ramachan.html
или аналогичного (найденного самостоятельно) постройте карты Рамачандрана для найденных белков.
2.19. Проанализируйте их. Какие значения углов преобладают в каждом белке? Используйте конспекты лекций для интерпретации значений углов
φ и
ψ. Сделайте предположения о преобладающем типе вторичной структуры (α-спирали или β-структуры) в каждом из белков. Заполните вторую колонку таблицы ниже.
Миоглобин |
|
|
Триозофосфатизомераза |
|
|
Фактор роста фибробластов |
|
|
Пластоцианин |
|
|
2.20. Исследуйте пространственные структуры данных белков.
Вы можете сделать это одним из двух способов: с использованием сервиса JSmol либо с использованием программы DS Viewer. В последнем случае вам необходимо сохранить соответствующие PDB-файлы с сайта
rcsb.org на локальный диск.
Определите, к какому классу (α-белки, β-белки, α/β-белки,
α+β-белки, нерегулярные белки) относится каждый белок.
α-белки |
Только альфа-спирали |
β-белки |
Только бета-тяжи |
α/β-белки |
Строго чередующиеся альфа-спирали и бета-тяжи |
α+β-белки |
Альфа-спирали и бета-тяжи в произвольном порядке |
Нерегулярные белки |
Отсутствуют регулярные структуры |
Заполните третью колонку таблицы выше.
2.21. Рассмотрите молекулу триозофосфатизомеразы. Какую супервторичную структуру образуют альфа-спирали и бета-тяжи? Какая закономерность наблюдается в организации данной супервторичной структуры?
2.22. Рассмотрите молекулу фактора роста фибробластов. Сколько бета-шпилек в ней присуствует? Какую закономерность можно отметить в пространственной организации бета-шпилек? Отражается ли это на структуре бета-листов?
Обсудите это и предыдущее задание с преподавателем.
Контрольные вопросы
1. Какие действия необходимо произвести (после нажатия
Download, см. задание 1), чтобы, используя исключительно сайт NCBI, получить файл структуры, пригодный для просмотра в одной из программ-просмотрщиков?
2. Какая информация содержится во вкладках Structure summary и Sequence на странице структуры сайта rcsb.org (задание 3)? Перечислите конкретные данные и параметры.
3. Какая информация содержится в разделах PDB-файла HELIX, SHEET, ATOM, HETATM (задание 5)? Постарайтесь дать как можно более полное описание структуры соответствующих строк.
4. Опишите, какое действие выполняет каждая из команд, перечисленных в задании 10.
5. Составьте запись какой-либо аминокислоты (кроме аланина) в формате SMILES и отобразите ее с помощью JSmol.
6. Сколько аминокислотных остатков отсутствует в N-концевой части структуры
2R33?
7. Перечислите остатки цистеина, вовлеченные в образование дисульфидных связей в структуре
2R33. Указывайте правильные номера остатков, учитывая, что N-концевая часть полипептидной цепи может отсутствовать в структуре.
Тема 3. Анализ белковых последовательностей
В ходе выполнения работ данной темы вы изучите закономерности формирования пространственной структуры белка в зависимости от его аминокислотной последовательности, некоторые подходы к анализу последовательностей и структур. Вначале, в ходе первых шести заданий, вы найдете в банках данных особые участки в молекуле белка; в ходе последующих заданий – проверите, существует ли взаимосвязь между структурно-функциональной ролью этих участков и особенностями их аминокислотной последовательности.
Как правило, в заданиях данной и последующих тем отсутствуют подробные инструкции по их выполнению: предполагается, что соответствующие знания и навыки были получены вами на предыдущих занятиях.
Для удобства работы при использовании веб-сервисов все гиперссылки следует открывать в новых вкладках браузера.
Работа 1. Анализ закономерностей формирования третичной структуры белка
3.1. Найдите в NCBI структуру
1V2W.
3.2. Откройте последовательность данного белка. Для этого нажмите ссылку
Show annotation в разделе
Molecules and interactions, затем
1protein.
о п р е д е л е н и е ф у н к ц и о н а л ь н ы х у ч а с т к о в
3.3. Открыв запись о последовательности, перейдите в раздел
Graphics.
3.4. Изучите представленную схему и способы работы с ней (найдите элементы управления масштабированием и прокруткой).
На данной схеме показаны, в числе прочего, аминокислотные остатки, формирующие активный центр фермента (active) и центр связывания с субстратом (substrate binding site). Определите номера остатков, формирующих их (например, первый остаток активного центра имеет номер 40). Выпишите эти номера сюда:
40,
3.5. Запустите BLAST по данной последовательности.
3.6. На схеме
Conserved domains также показаны аминокислотные остатки, формирующие активный центр фермента (active site) и центр связывания с субстратом (substrate binding site).
Номера данных остатков уже известны вам, однако требуется узнать еще и их «буквы». Для этого щелкните на эту схему. Затем отметьте
Zoom to residue level. Используйте горизонтальную полосу прокрутки, чтобы просмотреть всю длину последовательности. Выпишите на доске аминокислоты активного центра и центра связывания с субстратом и их номера:
H40, D84 и т.д.
к о н с е р в а т и в н ы е у ч а с т к и
3.7. Чтобы проверить, являются ли эти аминокислотные остатки консервативными, проведите множественное выравнивание 100 ближайших гомологов этого белка.
Удобно использовать для этого сервис множественного выравнивания NCBI, который может быть запущен прямо со страницы результатов поиска BLAST. Нажмите ссылку
Multiple alignment на странице результатов поиска BLAST (а не на той, где вы только что были).
3.8. На странице результатов выравнивания измените параметр
Conservation Setting (установите
Identity), чтобы красным цветом были выделены только консервативные позиции.
Являются ли аминокислоты, выписанные вами в задании 3.4, консервативными?
Можно заметить, что довольно много позиций выравнивания являются консервативными. Для последующего анализа роли консервативных аминокислот в формировании структуры фермента используйте лишь более-менее длинные консервативные последовательности. Выпишите их на доску и в левую колонку таблицы.
3.9. Скачайте структуру
1V2W в формате PDB и откройте ее в DS Viewer. Задайте отображение белка в виде
Solid Ribbon, а ингибитора в виде
Ball & Stick, если таковое не задано автоматически. Найдите в этой структуре участки последовательности, определенные вами как консервативные. Заполните вторую колонку таблицы.
п а т т е р н ы г и д р о п а т и ч н о с т и
3.10. Для последующего анализа выравнивания вам придется повторить его с помощью сервиса EBI, уже использованного вами на первом занятии. Очевидно, что для этого вам требуются последовательности всех ста гомологичных белков (в NCBI они были «взяты» из бласта автоматически). Чтобы быстро получить их, скачайте выравнивание в виде текстового файла с помощью соответствующих ссылок.
Полученный файл откройте в текстовом редакторе и: 1) удалите из текста все дефисы; 2) удалите все «gi|», чтобы названия последовательностей начинались с номера (это требуется для корректной работы сервиса выравнивания). После указанных действий в файле останутся 100 последовательностей в формате multi-fasta, пригодные для множественного выравнивания.
3.11. Выполните множественное выравнивание методом
Clustal Omega с параметрами по умолчанию с помощью сервиса EBI. Лишь измените порядок вывода последовательностей, для удобства последующего анализа.
Включите цветовые обозначения аминокислот. Совпадают ли консервативные участки выравниваний, полученных двумя разными методами? Чем могут быть вызваны различия?
3.12. Найдите в выравнивании участки длиной не менее 4 позиций, содержащие: 1) только гидрофобные остатки; 2) только гидрофильные остатки; 3) чередующиеся гидрофильные и гидрофобные остатки. Заполните вторую колонку таблицы.
гидрофобные |
|
|
гидрофильные |
|
|
чередующиеся |
|
|
3.13. Найдите эти участки в структуре и заполните третью колонку.
Обсудите возможность предсказания отдельных элементов пространственной структуры белка путем анализа последовательности.
Работа 2. Предсказание структуры белка
3.14. Проверьте справедливость сформулированных в предыдущей работе принципов путем поиска соответствующих паттернов в одном отдельно взятом белке. Вы можете использовать последовательность того же самого белка (1V2W) или какого-либо из изученных в предыдущих работах.
Заполните вторую колонку таблицы.
Внутренний участок глобулы |
|
|
|
|
Внешний участок глобулы |
|
|
|
|
β-структурный участок |
|
|
|
|
3.15. Составьте регулярные выражения, описывающие соответствующие паттерны. Заполните третью колонку.
Значения некоторых метасимволов регулярных выражений языка Javascript
\ |
Отмечает следующий символ как обычный символ (один из "()[]{}^$.?+*\|"), специальный символ или обратную ссылку. |
* |
Найти далее предыдущий символ или выражения ноль или более раз. Например, 'zo*' соответствует "z" и "zoo". '*' эквивалентно '{0,}'. |
+ |
Найти далее предыдущий символ или выражения один или более раз. Например, 'zo+' соответствует "zo" и "zoo", но не "z". '+' эквивалентно '{1,}'. |
? |
Найти далее предыдущий символ или выражения ноль или один раз. Например, 'do(es)?' соответствует "do" в "document" или "does" в "does". '?' эквивалентно '{0,1}'. |
{n} |
Найти далее предыдущий символ или выражения ровно n раз. Например, 'о{2}' не соответствует "o" в "Bob", но соответствует "oo" в "food". |
{n,} |
Найти далее предыдущий символ или выражения не меньше n раз. Например, 'o{2,}' не соответствует "o" в "Bob", но соответствует "ooooo" в "foooood". 'o{1,}' эквивалентно 'o+'. 'o{0,}' эквивалентно 'o*'. |
{n,m} |
Найти далее предыдущий символ или выражения не меньше n раз, но не больше m раз. Например, 'o{1,3}' соответствует первым "ooo" в "fooooood". 'o{0,1}' эквивалентно 'o?'. Пробелы между запятой и числами не пишут. |
. |
Соответствует любому одиночному символу. |
(шаблон) |
Находит соответствие шаблону и сохраняет его. К сохраненному соответствию можно обратиться через обратные ссылки \0...\9. Чтобы не группировать выражение, а найти скобки "(" или ")", используйте '\(' или '\)'. |
x|y |
Соответствует x или y. Например, 'z|food' соответствует "z" или "food". '(z|f)ood' соответствует "zood" или "food". |
[xyz] |
Набор знаков. Совпадает с любым из указанных символов. Например, '[abc]' соответствует "a" в "plain". |
[a-z] |
Диапазон знаков. Соответствует любому знаку в указанном диапазоне. Например, '[a-z]' соответствует любому буквенному символу в нижнем регистре из диапазона от "a" до "z". |
[^a-z] |
Отрицательный диапазон символов. Соответствует всем символам, которые отсутствуют в указанном диапазоне. Например, '[^a-z]' соответствует всем символам, которые отсутствуют в диапазоне от "a" до "z". |
3.16. Найдите в последовательности исследуемого белка искомые паттерны с помощью соответствующих регулярных выражений. Найдите соответствующие участки в пространственной структуре.
Для поиска по тексту с использованием регулярных выражений вы можете использовать любой из множества веб-сервисов, например:
http://www.bioinformatics.org/sms2/protein_pattern.html
http://www.regexpal.com/
http://софт.биоуфа.рф/паттерны
Однако, скорее всего, в вашей программе просмотра структур имеется встроенная возможность поиска с использованием регулярных выражений. По возможности используйте именно этот способ.
Заполните таблицу полностью. Обсудите результаты.
Тема 4. Анализ нуклеотидных последовательностей и структур
В ходе выполнения работ данной темы вы изучите некоторые аспекты работы с информацией, описывающей структуру ДНК и РНК, а также особенности формирования вторичной и третичной структуры РНК.
Работа 1. Поиск рамки считывания в ДНК
4.1. Дана последовательность ДНК:
Требуется определить, кодирует ли данная последовательность какой-либо белок. Участок последовательности ДНК, несущий информацию об аминокислотной последовательности белка – это «открытая рамка считывания», Open Reading Frame (ORF).
Откройте сервис поиска рамок считывания NCBI ORF Finder :
www.ncbi.nlm.nih.gov/orffinder
Проанализируйте интерфейс сервиса, обсудите с группой смысл задаваемых параметров.
4.2. Выполните поиск рамок считывания в данной последовательности с параметрами по умолчанию.
Рассмотрите страницу результатов поиска. В верхней части страницы находится уже знакомая вам «линейка» последовательности, на которую спроецированы найденные ORF. Ниже находится таблица, в которой перечислены найденные ORF и их параметры. Какие это параметры? Заполните таблицу:
Strand |
|
Frame |
|
Start |
|
Stop |
|
Length (bp|aa) |
|
4.3. Выделите самую длинную рамку считывания в списке, чтобы увидеть аминокислотную последовательность, транслированную с нее (слева от списка). Используя полученные ранее знания, выясните, какому белку принадлежит эта последовательность.
Исследуйте полученный полипептид с помощью сервиса
Sequence Manipulation Suite (
www.bioinformatics.org/sms2 ): определите его молекулярную массу и изоэлектрическую точку. Чему равна средняя молекулярная масса одного аминокислотного остатка?
Работа 2. Изучение структуры т-РНК
4.4. Найдите в банке PDB структуру
1VTQ. Сохраните pdb-файл на компьютер и откройте в программе DS Viewer. При отсутствии установленной на вашем компьютере программы просмотра вы можете использовать JSmol-сервер, однако работа с крупными молекулами в нем является менее комфортной.
4.5. Сопоставьте вторичную и пространственную структуры т-РНК. Найдите в пространственной структуре черешок, D-петлю, TψC-петлю, антикодоновую петлю.
Определите номера пар оснований, с которых начинаются соответствующие спирали, т.е. первые спаренные основания этих спиралей (номера для черешка уже показаны на рисунке, определите то же для остальных трех спиралей).
4.6. Последовательность РНК в программе DS Viewer содержит буквы «N», обозначающие модифицированные нуклеотиды. Для корректной работы сервиса предсказания вторичной структуры, который вы будете использовать в следующей работе, достаточно заменить N на X (т.е. обозначить как неизвестные нуклеотиды). Однако биологически более правильно будет обозначить их буквами «исходных» (не модифицированных) оснований, взяв их со страницы структуры на сайте PDB.
Вернитесь на страницу, с которой вы скачали структуру 1VTQ. Во вкладке
Structure summary, в разделе
Macromolecules, нажмите кнопку
Sequence display for 1VTQ. Буквы, которыми вам следует заменить «N» в вашей последовательности, выделены красным цветом.
Скопируйте последовательность из программы DS Viewer в текстовый редактор и замените все «N».
4.7. Изучите, какие модифицированные основания содержит т-РНК. Заполните таблицу, используя самостоятельно найденные источники информации.
PSU |
Псевдоуридин |
Атом азота в другом положении |
H2U |
|
|
1MG |
|
|
5MC |
|
|
5MU |
|
|
Работа 3. Предсказание вторичной структуры РНК
4.8. Изучите работу сервиса предсказания вторичной структуры РНК, используя последовательность вашей т‑РНК.
Один из наиболее удобных веб-сервисов подобного рода расположен на сайте Рочестерского университета:
rna.urmc.rochester.edu/RNAstructureWeb/Servers/Predict1/Predict1.html
Изучите входные параметры программы. Скопируйте вашу последовательность в соответствующее поле ввода и запустите выполнение программы.
4.9. Как правило, из-за относительно высокой вычислительной сложности задачи предсказания структуры требуется подождать несколько минут, прежде чем появятся результаты.
Изучите результаты вычислений. Сравните предсказанные спирали (пары оснований) с реальными, найденными вами ранее. Обсудите результаты.
Тема 5. Анализ белковых структур. Молекулярный дизайн
Молекулярный дизайн – процесс создания новых веществ, удовлетворяющих определенным функциональным свойствам. Широко известным термином «драг-дизайн» обозначают процесс создания нового лекарственного препарата – вещества, способного взаимодействовать со специфическим белком таким образом, чтобы подавлять его активность. Белок, с которым будет взаимодействовать лекарство, называется «мишень»; вещество, способное взаимодействовать с мишенью (в данном случае это лекарство), называется «лигáнд».
На начальном этапе драг-дизайна молекулы исследуются
in silico. Если структура мишени известна, необходимо найти в ней функциональный центр (в случае фермента – активный центр) и изучить его структуру и физико-химические свойства – для понимания того, какими свойствами должен обладать лиганд. В ряде случаев бывает известна не только структура мишени, но и структура различных естественных лигандов – в этом случае возможно модифицировать их для получения вещества с нужными свойствами.
В работах данной темы вами будет произведен поиск функционального центра белка, анализ его структуры и физико-химических свойств, «создание» структуры возможного ингибитора и моделирование его связывания с мишенью. В качестве условной «мишени» используем бактериальный белковый экзотоксин с известной структурой.
Работа 1. Поиск функционального центра молекулы белка
5.1. Найдите структуру мишени – бактериального белкового токсина. Произведите поиск по банку PDB, используя запрос «Pseudomonas Exotoxin A» (см. тему 2). Запишите на доске PDB ID найденной структуры.
п о и с к с и с п о л ь з о в а н и е м B L A S T
5.2. Откройте запись о данной структуре на сайте NCBI:
Как вы знаете из предыдущих работ, в качестве запроса для поиска с использованием BLAST можно использовать аминокислотную последовательность белка. Для получения последовательности нажмите ссылку
Show annotation в разделе
Molecules and interactions, затем
1protein.
В открывшейся записи вы можете найти ссылку на последовательность в формате Fasta. Однако проще будет сразу запустить BLAST по ссылке
Run BLAST в правой части страницы. Выполните поиск в BLAST.
Предложите как минимум еще один способ получения аминокислотной последовательности этого белка.
5.3. Проанализируйте результаты поиска BLAST.
На данной схеме в качестве специфического сайта показан «nad+ binding pocket» – карман связывания НАД+. Щелкните на эту схему, чтобы подробнее изучить ее.
В открывшейся вкладке используйте галочку Zoom to residue level, чтобы узнать, какие именно аминокислотные остатки составляют этот карман. Используйте полосу прокрутки. Выпишите их в следующем виде:
Y439, H440, G441… здесь впишите сами, до W558.
п о и с к с и с п о л ь з о в а н и е м м н о ж е с т в е н н о г о в ы р а в н и в а н и я
5.4. Как известно, функциональные участки в белках являются консервативными, поэтому их можно выявить множественным выравниванием белка с его гомологами. Вы можете проверить, являются ли найденные вами в предыдущем задании остатки консервативными, и таким образом подтвердить предположение об их функциональной роли. Для поиска гомологов используется BLAST; такой поиск вами только что был проделан.
Вернитесь на страницу с результатами поиска BLAST. В списке результатов отметьте галочками несколько
(3-5) белков (включая исследуемый белок) и отправьте их на множественное выравнивание с помощью ссылки
Multiple alignment.
5.5. Для показа консервативных позиций выравнивания выберите
Identity в выпадающем списке
Conservation Setting. После этого консервативные позиции будут показаны красным цветом, остальные – синим. Вы можете убедиться, что в данном выравнивании практически вся последовательность белка является консервативной, и выделить небольшой функциональный участок не представляется возможным. Причина – в неудачном составлении выборки последовательностей для выравнивания: все выбранные вами последовательности относятся к одному биологическому виду («организму»)
Pseudomonas aeruginosa (см. страницу результатов BLAST).
5.6. Для того чтобы в результаты поиска BLAST попали другие виды, следует изменить параметры поиска. Вернитесь (или откройте заново) начальную страницу Protein BLAST. Внизу страницы откройте раздел
Algorithm parameters и измените количество выдаваемых результатов таким образом, чтобы в результаты попали более далекие последовательности – т.е. относящиеся к другим организмам.
Отправьте запрос и убедитесь, что в списке результатов теперь присутствуют разные организмы; в противном случае продолжайте изменять параметры поиска.
5.7. Снова выполните множественное выравнивание исследуемого белка с гомологами как минимум из двух других организмов. Являются ли аминокислоты НАД
+–связывающего кармана консервативными? Обсудите результаты с преподавателем.
Работа 2. Анализ взаимодействий в комплексе
5.8. Еще одним способом определить аминокислоты, образующие функциональный центр, является анализ межмолекулярных взаимодействий в комплексе белка с лигандом. Для этого требуется пространственная структура комплекса; для исследуемого нами белка она известна. Произведите поиск по банку PDB, используя запрос «Pseudomonas exotoxin with inhibitor». Запишите на доске PDB ID найденной структуры. Скачайте и откройте ее в программе DS Viewer. Структура содержит два одинаковых комплекса экзотоксина А с НАД. Для удобства работы скройте молекулы воды командой меню
Scripts – Visualization – Show / Hide waters.
5.9. Для анализа взаимодействий включите соответствующую панель инструментов: меню
Tools – Receptor-Ligand Interactions – View interactions. Также необходимо задать части структуры, являющиеся «рецептором» и лигандом. По умолчанию вся структура задана как рецептор; чтобы задать лиганд, выделите молекулу НАД (двойным щелчком) и нажмите
Define ligand: <undefined>.
5.10. Теперь вы можете отобразить взаимодействия с помощью кнопки
Ligand interactions.
Рассмотрите взаимодействия НАД с аминокислотами и заполните таблицу:
Какие атомы и группы молекулы НАД являются критическими для взаимодействия с белком?
5.11. Включите отображение аминокислотной последовательности (
Ctrl+Q или в контекстном меню –
Show sequence). Выделите аминокислоты, взаимодействующие с НАД (т.е. все, что отображаются на экране в данный момент).
Выпишите буквы и номера этих аминокислот:
Какие из них найдены с помощью поиска BLAST в задании 5.3?
Какие из них являются консервативными (задание 5.7)?
5.12. Выключите отображение аминокислотной последовательности.
Проанализируйте физико-химические свойства НАД-связывающего кармана с использованием молекулярных поверхностей. Используйте боковую панель инструментов «Interactions», кнопки
Aromatic, H‑bond, Charge, Hydrophobic, Ionozability, SAS. Заполните таблицу:
Aromatic |
|
H-bond |
|
Charge |
|
Hydrophobic |
|
Ionozability |
|
SAS |
|
Какие свойства этой структуры наиболее выражены (а значит, обозначены наиболее яркими цветами)?
Работа 3. Дизайн и докинг
5.13. Предположите, какой структурой должна обладать молекула, способная связываться с исследуемым белком подобно НАД, но при этом ингибировать его. См. задание 5.10. Нарисуйте на доске и обсудите с группой ее структурную формулу.
5.14. Создайте PDB-файл структуры этой молекулы. Для этого откройте пустое окно в программе DS Viewer: меню
File – New – Molecule window. Для создания структуры откройте панель инструментов: меню
Tools – Small molecules – Sketch molecules.
Назначение инструментов панели «Sketch molecules» и кнопок клавиатуры
Sketch |
Добавить атом |
Select |
Выделить |
Torsion |
Вращать группы вокруг связи. Нужно щелкнуть на связь и тащить. |
Clean geometry |
Подобрать наилучшую конформацию молекулы |
H – Add |
Добавить атомы водорода |
Delete |
Удалить выделенный атом |
C, H, O, N… |
Изменить элемент выделенного атома. Также доступно в контекстном меню Element. |
Создайте структуру, добавьте атомы водорода, сохраните: меню
File – Save; тип файла –
Protein Data Bank files.
5.15. Моделирование взаимодействия созданного вами лиганда и исследуемого белка можно осуществить с помощью сервиса докинга:
swissdock.ch/docking
Изучите входные параметры программы.
Тема 6. Программирование и веб-дизайн
Изучение основ программирования является неотъемлемой частью университетского курса биоинформатики. Хотя современная биоинформатика располагает обширным арсеналом программных инструментов (во всяком случае, для решения наиболее распространенных задач), предполагается, что при возникновении нестандартных задач – а они возникают очень часто в молодой и интенсивно развивающейся науке – исследователь должен иметь навыки программирования для их самостоятельно решения. Исторически наиболее популярным языком программирования в биоинформатике является Perl благодаря его богатым возможностям работы с регулярными выражениями. Кроме того, в настоящее время для написания компьютерных программ биологами используются языки Python, Java и другие.
Как вы могли заметить при выполнении заданий предыдущих тем, практически все использованные вами программы являются веб-сервисами, т.е. доступны как веб-страницы сети Интернет. Концепция использования веб-сервисов взамен устанавливаемых приложений обозначается аббревиатурой SaaS – «Soft as a Service», и в настоящее время множество разнообразных программ уже доступно в виде веб-сервисов. У веб-сервисов перед «традиционными» программами есть ряд неоспоримых преимуществ – они не требуют установки, они доступны на любом компьютере, подключенном к интернету, они обновляются независимо от пользователя. И лишь в случаях, когда требовалась постоянная высокая вычислительная мощность – при интерактивном отображении молекулярных структур – мы использовали программу, установленную в системе, а значит, имеющую более «прямой» доступ к вычислительным устройствам компьютера.
В ходе выполнения работ данной темы вы изучите принципы создания веб-страниц, а затем, шаг за шагом осваивая основы программирования, сами создадите программу для анализа биологических последовательностей – программу, подобную одной из тех, что вы использовали ранее как пользователи.
Работа 1. Веб-дизайн. HTML – язык разметки гипертекста
Веб-страницы, или веб-сайты, являются значительной и, пожалуй, основополагающей частью современного интернета. Веб-страница – это т.н. гипертекстовый документ, т.е. текстовый файл, содержащий специальную разметку (на языке HTML); как правило, веб-страница содержит ссылки – «гиперссылки» – на другие файлы. В настоящее время для создания и управления сайтами используются сложные программные инструменты – CMS (Content Management System, системы управления содержимым), облегчающие и ускоряющие администрирование и редактирование сайтов, содержащих множество страниц (как, например, сайт университета). Эти системы обычно включают в себя
WYSIWYG-редактор, позволяющий редактировать страницы без знания языка HTML. Подобный же редактор, хотя и неявно, используется и для форматирования письма в сервисе электронной почты, и для создания записи в соцсети или блоге. Недостатком подобных редакторов является значительная ограниченность функциональных возможностей, поэтому они всегда так или иначе поддерживают два режима – WYSIWYG-режим и режим исходного HTML-кода.
Цель данной практической работы – изучить принципы HTML-разметки и основные теги и символы языка. В ходе работы вам нужно создать веб-страницу в простом текстовом редакторе. В качестве текста для веб-страницы используйте текст, доступный на сайте университета.
6.1. Откройте программу «Блокнот», вставьте в нее текст из файла с текстом (paragraph.txt). По умолчанию в Блокноте может использоваться не слишком удобный для работы шрифт; выберите удобные вам размер и гарнитуру шрифта в меню
Формат – Шрифт.
6.2. Сохраните текст как веб-страницу.
Файл – Сохранить как, выберите папку, впишите имя файла с расширением «html», например,
Иванов.html . Задайте кодировку
UTF-8. Сохраните файл. При дальнейших изменениях для быстрого сохранения нажимайте
Ctrl+S.
6.3. Откройте этот файл в веб-браузере (файлы с расширением «html» должны открываться в нем по умолчанию). При дальнейших изменениях в Блокноте вам нужно будет обновить страницу в браузере, чтобы увидеть результат этих изменений; быстрее всего обновить страницу можно, нажав
F5.
6.4. В общем случае в HTML-коде игнорируются переносы строк и повторяющиеся пробелы. Поэтому в тексте, показанном в браузере, переносы строк отсутствуют. Задайте их с помощью тега <br>; этот тег необходимо поставить везде, где требуется начать текст с новой строки, иначе говоря, везде, где в обычном редакторе вы нажали бы
Enter.
Для быстрой вставки тега скопируйте его один раз и далее вставляйте в нужные места текста.
Сохраните файл в редакторе и обновите страницу в браузере, чтобы оценить результат.
6.5. Задайте размер, начертание шрифта и ширину текстовой области.
Для задания этих параметров обычно используется атрибут
style. Он может быть указан у множества разных тегов; в данном случае целесообразно весь текст поместить в парный тег
<div>, и у этого тега задать атрибут
style.
Итак, в самом начале файла, перед текстом страницы, поставьте открывающий тег
<div>; в самом конце – закрывающий
</div>. Затем к открывающему тегу добавьте атрибут
style; значение данного атрибута должно содержать свойства
font-family (шрифт, например,
Times New Roman),
font-size (размер шрифта, например,
14pt или
20px),
width (ширина текстовой колонки, например,
500px или
80%),
line-height (междустрочный интервал, например,
120%).
<тэг атрибут=”значение” атрибут=”значение” атрибут=”свойство:значение; свойство:значение; свойство:значение”> содержимое </тэг>
Принципиальная структура парного тэга. Данный тэг содержит три атрибута, значение последнего из них состоит из трех свойств.
6.6. Выровняйте по центру заголовки глав с помощью парного тега
<center>, сделайте их полужирными с помощью парного тега
<b>. Задайте для них другой шрифт с помощью парного тега
<div> с атрибутом
style и соответствующим свойством – таким образом, данный «див» будет вложен в «див» из предыдущего задания.
6.7. Поставьте ударение в слове «большим» с помощью спецсимвола
́
6.8. Вставьте в текст изображения. Достаточно будет вставить две картинки, одна из которых сохранена на вашем компьютере, а другая – в интернете (найдите нужную картинку самостоятельно).
Найдите место в тексте, куда нужно вставить изображение. Добавьте картинку с помощью непарного тега
<img>. Обязательным его атрибутом является
src – адрес картинки. Для изображения, расположенного на компьютере, это будет имя файла – например,
picture.jpg (если html-файл и картинка находятся в одной папке) или
pictures/picture.jpg (если картинка находится в папке
pictures относительно html-файла). Для картинки из интернета – это ее адрес (URL).
Другим важным атрибутом изображения является
align – выравнивание, а вернее, режим обтекания картинки текстом. Картинка будет обтекаться текстом, если
align равен
left или
right (и будет находиться на соответствующем краю). Если
align не указан – картинка будет находиться в режиме «в тексте».
Наконец, вы можете изменить видимый (но не реальный) размер изображения с помощью уже знакомого вам атрибута
style. Используйте значение
width или
height, чтобы задать ширину или высоту в пикселях или процентах.
6.9. Создайте таблицу.
Простейшая таблица в HTML имеет иерархическую структуру парных тегов: собственно таблица (
<table>) состоит из строк (
<tr>), которые, в свою очередь, включают в себя ячейки (
<td>). Например, такая таблица:
имеет следующий код:
<table border="all" frame="box">
<tr>
<td> Раз </td>
<td> Два </td>
</tr>
<tr>
<td> Три </td>
<td> Четыре </td>
</tr>
</table>
Отступы в коде сделаны для красоты, на самом деле можно написать и так:
<table><tbody><tr><td>Раз</td><td>Два</td></tr><tr><td>Три</td><td>Четыре</td></tr></table>
Обратите внимание на атрибуты
frame и
border – без них таблица будет с прозрачными границами. Обратите также внимание, что если значение атрибута состоит из одного слова, кавычки можно не использовать (но лучше использовать всегда).
Надстрочный индекс можно сделать с помощью парного тега
<sup>, подстрочный –
<sub>. Курсив – парный тег
<i>.
6.10. Напишите уравнение.
6.11. Найдите в интернете информацию об одном из микроорганизмов, перечисленных в таблице, и создайте ссылку на нее (таким образом, чтобы само название организма в таблице и было ссылкой). Используйте парный тег
<a> и атрибут
href (его значение – адрес, куда ведет ссылка). Добавьте к ссылке всплывающую подсказку с помощью атрибута
title.
6.12. Для возможности быстрого перехода к отдельным главам документа можно использовать т.н. «якоря». Например, в данном пособии, если вы открыли его в PDF, якорь #page=69 в адресе используется для быстрого перехода к странице 69.
В вашем документе якорь для первой главы может выглядеть так:
<a name="glava1"> Глава 1 </a>
Создайте такие якоря для всех глав.
6.13. Создайте «навигационный блок» для быстрого перехода к главам документа. Например, чтобы этот блок всегда висел в правом верхнем углу страницы, он должен иметь следующий код:
<div style="position:fixed; right:0px; top:0px; padding:20px; background-color:#ddddff;
opacity:0.5">
<a href="#glava1">Глава 1</a>
</div>
Естественно, нужно добавить ссылки на остальные главы.
Обсудите с группой назначение использованных свойств стиля.
6.14. Изучите особенности работы в одном из онлайн-редакторов HTML, найденных с помощью интернет-поисковика. Отметьте, какие задания из сегодняшней работы вы могли бы выполнить с его помощью, и какие – нет.
6.15. Придумайте и сверстайте интерфейс какой-либо программы. Например, используйте теги:
<input type=text>
<button></button>
<input type="radio">
<input type="checkbox">
<textarea></textarea>
Работа 2. Основы программирования
В ходе этой работы вы изучите основы написания программ на языке Javascript. Необходимым условием для выполнения этих заданий является знание основ языка HTML, изученного в предыдущей работе.
Язык программирования Javascript преимущественно используется для создания сценариев функционирования веб-страниц. Соотвественно, для создания интерфейса программы применяется HTML-разметка. Javascript является интерпретируемым языком, то есть готовая к выполнению программа представляет собой просто исходный код. Данный код может быть записан в отдельный текстовый файл (или несколько файлов – библиотек) с расширением
js, на который затем ссылается нужная веб-страница; такой подход применяется при написании крупных и сложных программ. Другой способ заключается в том, что программный код помещается прямо в HTML-файл, в парный тег
<script>; этот способ будем использовать мы.
6.16. Итак, для написания программы – для начала, довольно простой – вам необходимо прежде всего создать ее интерфейс. Создайте HTML-файл веб-страницы с таким содержимым:
Для создания первого элемента используйте непарный тег
<input>. Для второго – парный тег
<button>. Напишите код на доске.
Как называются эти элементы графического интерфейса?
6.17. Сейчас ваша страница содержит исключительно код разметки, который не является программным кодом (в нем не содержится алгоритма действий). Чтобы действия пользователя с элементами интерфейса приводили к определенным результатам, нужно написать исходный код программы.
Код программы на языке Javascript нужно будет поместить между тегами
<script> и
</script>. Напишите в коде страницы эти теги (удобно сделать это в самом конце файла) и оставьте между ними несколько пустых строк – здесь вы будете писать программный код.
<script>
</script>
Если написать между этими тегами какие-либо команды на языке программирования, они будут выполнены один раз – сразу же после загрузки страницы браузером (или перезагрузки). Если нужно, чтобы набор команд выполнялся не один раз, а, например, при каждом действии пользователя над определенным элементом интерфейса – нужно создать функцию.
Функция – это фрагмент программного кода. Функция может выполняться при наступлении определенных событий.
В данном случае нам нужно, чтобы определенные действия выполнялись, когда пользователь нажимает «Возвести в квадрат». В данном случае событие – это щелчок мышью по кнопке. Итак, нам нужно, во-первых, создать функцию; во-вторых – задать ее выполнение при щелчке по кнопке «Возвести в квадрат».
6.18. Ниже показан код, содержащий функцию. Напишите его в своем файле.
<script>
function kva() {
}
</script>
В данном случае функция называется «kva». Эта функция не содержит никаких команд; команды будут чуть позже написаны вами внутри фигурных скобок.
6.19. Функция не будет выполнена никогда, если ее выполнение явным образом не задано. Зададим выполнение функции kva по щелчку на кнопку. Для этого у тега кнопки нужно добавить атрибут
onClick – его значением как раз и являются команды, выполняемые при щелчке мышью на данном элементе. В данном случае значением этого атрибута будет "kva()" .
Напишите на доске HTML-код этой кнопки.
6.20. Кроме кнопки, для работы этой программы (как вы, наверное, уже поняли, возводящей числа в квадрат) нужен еще один элемент интерфейса – поле, в которое пользователь вводит число.
Программа должна будет прочитать число, записанное в это поле; строго говоря, прочитать значение поля. Для того чтобы программа могла обратиться именно к этому элементу, следует присвоить ему уникальный идентификатор. Это можно сделать, добавив к тегу элемента атрибут
id.
<input id="num1">
В данном случае «айди» этого поля –
num1 .
6.21. Теперь всё готово, чтобы написать собственно код этой программы – т.е. команды, в результате которых вписанное в поле число будет помещено в память, возведено в квадрат, и квадрат записан в то же поле. Команды следует писать внутри фигурных скобок в функции kva().
Для хранения числа в памяти нам потребуется переменная; назовем ее x.
var x;
x = num1.value;
Первая строка кода – это объявление переменной. Каждый раз, начиная использовать новую переменную, ее нужно объявлять с помощью слова var.
Вторая строка – присвоение значения переменной. value – это атрибут тега input, хранящий введенные в него символы. Так, если бы мы хотели получить его размер – мы могли бы написать num1.size; чтобы узнать стиль шрифта в нем – num1.style.fontFamily; и так далее.
Для краткости объявление переменной можно совмещать с присвоением значения, вот так:
var x = num1.value;
или так:
var x = 0;
x = num1.value;
– суть в одном: когда мы пишем имя переменной в первый раз, перед ним должно стоять
var.
Теперь нужно возвести число, хранимое этой переменной, в квадрат:
x = x*x;
Формально здесь переменной присваивается новое значение – оно представляет собой старое значение, помноженное на себя же.
Наконец, полученное значение нужно показать пользователю – то есть вывести его в поле.
num1.value = x;
Уже знакомое вам
num1.value – «атрибут, обозначающий символы, вписанные в поле» – теперь в левой части операции присвоения: атрибуту тега присваивается новое значение.
Итак, код функции таков:
var x = num1.value;
x = x*x;
num1.value = x;
Напишите программу, сохраните код, обновите страницу и проверьте ее работу.
Совет: нажмите
F12 в браузере, затем
Console чтобы видеть сообщения об ошибках и иметь возможность выполнять команды непосредственно на странице.
6.22. Немного переработайте программу: пусть результат выводится в другое поле. Напишите код на доске.
6.23. Предела совершенству, как известно, нет.
В нижнее поле выводится квадрат или куб введенного числа, в зависимости от того, какая кнопка нажата. Обдумайте логику программы, обсудите и напишите код на доске. Подсказка: используйте еще одну функцию (кроме kva).
6.24. Пусть наша программа пишет в нижнее поле не просто число, а более осмысленную фразу, например: «Квадрат равен 25» или «Куб равен 125».
Для этого достаточно к выводимому числу «приклеить» заданный текст:
num2.value = "Квадрат равен " + x;
Обратите внимание, что текст взят в кавычки. Текст без кавычек интерпретируется как имя переменной.
6.25. Какой код нужен, чтобы программа выводила фразу вроде: «5 в квадрате равно 25»? Напишите код на доске.
6.26. Если пользователь введет вместо числа, например, буквы, результат будет равен NaN (not a number). Однако более правильным в этом случае было бы выводить сообщение об ошибке, например, «Нужно ввести число». Реализовать такое поведение возможно с использованием условного алгоритма.
Чтобы программа выполняла те или иные действия в зависимости от истинности определенного условия, используют следующий синтаксис:
if (условие) {действия, если истинно} else {действия, если ложно}
Допускается упрощенная форма:
if (условие) {действия, если истинно}
В фигурных скобках могут содержаться любые команды. В качестве условий используются логические выражения, например:
x == 0
num1.value == ""
x>y
Пусть ваша программа выполняет вычисления, только если введено правильное число, а в противном случае выводит сообщение об ошибке. Подумайте, с помощью какой логической функции можно отличить число от строки. Напишите код на доске.
6.27. Напишите программу, которая принимает одну из пяти букв, обозначающих нуклеотиды ДНК или РНК, и выдает букву комплементарного нуклеотида.
ц и к л ы
Для выполнения в программах однотипных команд заданное количество раз используются циклы. Чаще всего применяется цикл for:
for (var i=0; i<5; i++) {
// здесь команды – тело цикла//
}
Как и в конструкции if, собственно выполняемые команды («тело цикла») заключаются в фигурные скобки. В круглых скобках находится счетчик цикла, состоящий из трех аргументов.
var i=0 – объявление переменной
i со значением
0 – задает начальное значение счетчика.
i<5 – условие, при котором команды будут выполняться.
i++ – действие, выполняемое при каждой итерации цикла. Команда
i++ тождественна
i=i+1, то есть увеличивает
i на единицу.
Таким образом, команды из тела данного цикла будут выполнены 5 раз.
Вместо 0 и 5 можно использовать переменные или даже свойства объектов (если они числовые). Например:
for (var i=num1.value; i<x; i=i+2)
Да, шаг цикла здесь равен двум.
6.28. Напишите программу, выводящую последовательность натуральных чисел от 1 до числа, заданного пользователем. Например, пусть пользователь ввел в первое поле
6; тогда во второе будет выведено
1, 2, 3, 4, 5, 6. Пишите код на доске при выполнении этого и всех последующих заданий.
р а б о т а с о с т р о к а м и
Чтобы иметь возможность работать с длинными строками – например, достроить комплементарную последовательность для целой цепи, а не для одной буквы – вам потребуются свойство
length и метод
substring. Первое возвращает длину строки; второе – заданную подстроку.
var x = "строка";
var y = x.length;
var z = x.substring(2,5)
Здесь
y будет равно
6, а
z будет равно
"рок". Вместо
2 и
5 можно использовать переменные.
6.29. Напишите программу, выводящую заданный отрезок из введенного пользователем текста.
6.30. С использованием цикла, метода substring и свойства length напишите программу, принимающую последовательность ДНК и достраивающую комплементарную последовательность.
6.31. Доработайте программу для возможности работы с и-РНК.
6.32. Напишите программу, пишущую введенную строку задом наперед.
6.33. Напишите программу, транслирующую последовательность м‑РНК в аминокислотную последовательность. Используйте данный код:
if (c=='GCU') {a='Ala'}; if (c=='GCC') {a='Ala'};
if (c=='GCA') {a='Ala'}; if (c=='GCG') {a='Ala'};
if (c=='CGU') {a='Arg'}; if (c=='CGC') {a='Arg'};
if (c=='CGA') {a='Arg'}; if (c=='CGG') {a='Arg'};
if (c=='AGA') {a='Arg'}; if (c=='AGG') {a='Arg'};
if (c=='AAU') {a='Asn'}; if (c=='AAC') {a='Asn'};
if (c=='GAU') {a='Asp'}; if (c=='GAC') {a='Asp'};
if (c=='GUU') {a='Val'}; if (c=='GUC') {a='Val'};
if (c=='GUA') {a='Val'}; if (c=='GUG') {a='Val'};
if (c=='CAU') {a='His'}; if (c=='CAC') {a='His'};
if (c=='GGU') {a='Gly'}; if (c=='GGC') {a='Gly'};
if (c=='GGA') {a='Gly'}; if (c=='GGG') {a='Gly'};
if (c=='CAA') {a='Gln'}; if (c=='CAG') {a='Gln'};
if (c=='GAA') {a='Glu'}; if (c=='GAG') {a='Glu'};
if (c=='AUU') {a='Ile'}; if (c=='AUC') {a='Ile'};
if (c=='AUA') {a='Ile'}; if (c=='CUU') {a='Leu'};
if (c=='CUC') {a='Leu'}; if (c=='CUA') {a='Leu'};
if (c=='CUG') {a='Leu'}; if (c=='UUA') {a='Leu'};
if (c=='UUG') {a='Leu'}; if (c=='AAA') {a='Lys'};
if (c=='AAG') {a='Lys'}; if (c=='AUG') {a='Met'};
if (c=='CCU') {a='Pro'}; if (c=='CCC') {a='Pro'};
if (c=='CCA') {a='Pro'}; if (c=='CCG') {a='Pro'};
if (c=='UCU') {a='Ser'}; if (c=='UCC') {a='Ser'};
if (c=='UCA') {a='Ser'}; if (c=='UCG') {a='Ser'};
if (c=='AGU') {a='Ser'}; if (c=='AGC') {a='Ser'};
if (c=='UAU') {a='Tyr'}; if (c=='UAC') {a='Tyr'};
if (c=='ACU') {a='Thr'}; if (c=='ACC') {a='Thr'};
if (c=='ACA') {a='Thr'}; if (c=='ACG') {a='Thr'};
if (c=='UGG') {a='Trp'}; if (c=='UUU') {a='Phe'};
if (c=='UUC') {a='Phe'}; if (c=='UGU') {a='Cys'};
if (c=='UGC') {a='Cys'}; if (c=='UGA') {a='Stop'};
if (c=='UAG') {a='Stop'}; if (c=='UAA') {a='Stop'};
6.34. Напишите программу, определяющую, какую именно последовательность ввел пользователь – ДНК или РНК.
Веб–ресурсы
NCBI
BLAST
Protein Data Bank
European Bioinformatics Institute – EMBL
Discovery Studio Viewer
Sequence Manipulation Suite
Сервис просмотра и анализа структуры биомолекул
Работа с регулярными выражениями
Построение карт Рамачандрана
Поиск ORF
Предсказание вторичной структуры РНК
Докинг
Карты Рамачандрана: описание конформации белковой молекулы. Интерактивное дополнение к пособию
УДК 577.2
ББК 28.070
Ц27
Сборник заданий по биоинформатике: учебное пособие / В.О. Цветков. - Уфа: РИЦ БашГУ, 2017
ISBN 978-5-7477-4467-7
(c) Цветков В.О., 2017
(c) БашГУ, 2017