Смекни!
smekni.com

книга Основы Perl для БиоИнформатиков (стр. 1 из 8)

КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра иностранных языков

Beginning Perl for Bioinformatics

James Tisdall

Publisher: O'Reilly

First Edition October 2001

ISBN: 0-596-00080-4, 384 pages

Перевод выполнила: Аспирантка кафедры ИК
Габидинова А.Р.

Научный руководитель: Д.т.н., профессор
Шарифуллин В.Н.

Проверил: Доцент кафедры ИЯ
Молюков И.М.


КАЗАНЬ 2007

Глава 4. Цепочки и строки

Изучая эту главу Вы сможете начать писать Perl-программы для манипуляций данными биологических последовательностей ДНК и белков.

Если файлы с последовательностями есть на Вашем компьютере, то создаваемые программы позволят проводить следующие операции с последовательностями:

- переводить генетический код ДНК в РНК
- сцеплять последовательности
- читать комплементарную последовательность в обратном направлении

- считывать последовательности из файлов
А так же напишем программу, которая выдает информацию о последовательностях, насколько ценный генетический код ДНК, какова гидрофобность протеинов. Вы познакомитесь с методологией программирования и сможете решить эти и аналогичные задачи.

После прочтения данной главы Вы обретете основные навыки языка Perl. Вот некоторые из них:

- скалярные переменные

- массивы

- операции со строками: подстановка и преобразование

- чтение данных из файла

4.1 Представление данных цепочки

Большинство действий, описанных в этой книге, это обработка символов, которые составляют записи цепочек ДНК и протеинов. В БиоИнформатике для аналитического представления биологических цепочек используются такие же обозначения как в литературе.

Как известно, ДНК состоит из 4 структурных видов - нуклеиновых кислот, которые так же называются нуклеотидами или основаниями. Белки состоят из 20 структурных видов - аминокислот, иначе - радикалов. Фрагменты белков называются пептидами. И ДНК, и протеины по существу полимеры, которые сформированы из структурных видов, скрепленных конец к концу. Таким образом, можно просуммировать структуру молекулы ДНК или белка просто сложив цепочки оснований или аминокислот.

Это краткие определения. Предполагаю, что Вы или уже знакомы с ними, или можете познакомиться поподробнее в вводном учебнике по молекулярной биологии. В табл. 4-1 представлены азотистые основания; добавьте сахарозу и Вы получите нуклеотиды - аденозин, гуанозин, цитидин, тимидин и уридин. Кроме того, добавив фосфат, Вы можете получить нуклеотиды - адениловую кислоту, гуанилиновую кислоту, цитидиновую кислоту, тимидиловую кислоту и уридиловую кислоту. Нуклеиновая кислота – это химически связанная последовательность нуклеотидов. Пептид – это небольшое число объединенных аминоксилот; длинная цепочка полипептидов. Протеин – это биологически функциональное соединение, составленное из одного или нескольких полипептидов. Радикал – это аминокислота в полипептидной цепи.

Для целесообразности, имена нуклеиновых кислот и аминокислот чаще представлены как одно- или трехсимвольные коды, как показано в Табл. 4-1 и Табл. 4-2. (В этой книге по большей части используются односимвольные коды аминокислот.)

Table 4-1. Standard IUB/IUPAC nucleic acid codes

Table 4-2. Standard IUB/IUPAC amino acid codes

Коды нуклеиновых кислот в Табл. 4-1 включают символы 4 основных нуклеиновых кислот. В большинстве случаев в этой книге я использую только A, C, G, T, U и N. Буквы A, C, G и T задают нуклеиновые кислоты для ДНК. U заменяется на T, когда ДНК переводится в РНК. N – общепринятое обозначение для “неизвестного”, как например, когда секвенсер не может определить азотистое основание с достоверностью. Позже, в Главе 9, нам понадобятся другие коды для групп нуклеиновых кислот, для программирования рестрикционных карт. Надо заметить, версии со строчными буквами этих однобуквенных кодов так же используются по случаю, чаще для ДНК, реже для белков.

В научных компьютерной и биологической терминологиях имеются небольшие различия в кодах Табл. 4-1 и Табл. 4-2. На научно-компьютерном языке эти таблицы определяют два алфавита с конечными наборами символов, которые могут составлять строки. Последовательность символов называется строкой. Например, это предложение является строкой. Язык (конечный или бесконечный) – это набор строк. В этой книге языки, в основном, последовательностей данных ДНК и белков. Вы чаще слышите, что биоинформатики говорят о реальной последовательности ДНК или белка как о “строке”, в противопоставление их представлению как о последовательности данных. Это пример терминологии двух дисциплин, пересекающихся в чем-то.

Как Вы видели в таблицах, данные изображены как простые буквы, подобно тем, которые написаны на странице. Но, в действительности, компьютеры используют дополнительные коды для изображения простых букв. Не беспокойтесь об этом, просто помните это при использовании текстового редактора, что их нужно сохранять как ASCII или простой текст.

Посредством ASCII компьютер загружает текстовую (и управляющую) информацию в память. Затем, когда программой, такой как текстовый редактор, читаются данные, о которых известно, что это ASCII, программа в действительности способна вывести на экран символы в понятном виде, поскольку запрограммировано распознавать этот конкретный код. То есть нижняя строка это: ASCII – это код для записи текста в компьютер.

Новая кодировка символов, называемая Юникодом, которая может обрабатывать все символы всех языков в мире, становится широко применимой, и поддерживается и в Perl.

4.2 Программа сохранения цепочки ДНК

Давайте напишем небольшую программу, которая сохраняет ДНК в переменной и распечатывает на экран. ДНК записана в обычном виде, как строка из букв A, C, G и T и мы назовем переменную $DNA. Другими словами, $DNA это название данных цепочки ДНК, использованных в программе. Заметьте, что в Perl переменная это в действительности название для используемых данных. Название дает полный доступ к данным. Пример 4-1 показывает всю программу.

Example 4-1. Запись ДНК в компьютер

Используя то, что вы узнали о текстовых редакторах и запуске Perl программ в Главе 2, введите код (или скопируйте его с сайта учебника) и сохраните в файл. Не забудьте сохранить программу в формате ASCII или ASCII-файл без элементов форматирования, иначе могут быть затруднения в Perl при чтении исходного файла.

Второй шаг – запуск программы. Как запустить программу зависит от типа вашего компьютера (см.Главу 2). Допустим, программа на вашем компьютере находится в файле с названием example4-1. Как вы помните из Главы 2 , если вы запускаете программу на Unix или Linux , то должны набирать в окне интерфейса следующее:

perl example4-1

А на Макинтош откройте файл в приложении MacPerl и сохраните его как droplet, и затем просто дважды щелкните на droplet. В Windows наберите следующее в командном окне MS-DOS:

perl example4-1

Если программа успешно запустилась, то вы увидите вывод результатов на экран компьютера.

4.2.1 Процесс управления

Пример 4-1 иллюстрирует много понятий, на которых основана наша Perl программа. Одно из этих понятий Control Flow – процесс управления или порядок, в котором задачи выполняются компьютером.

Каждая программа начинается с первой строки и выполняет команды одну за другой, пока не дойдет до конца, если не задано иначе. Пример 4-1 просто выполняется с верху до низу, без изменений.

В следующих главах вы узнаете как можно контролировать порядок выполнения в программе.

4.2.2 Переработка комментариев

А сейчас давайте обратим внимание на часть Примера 4-1. Вы заметите много пустых строк. Они использованы для того, чтобы сделать программу легкой для чтения человеком. Затем, обратите внимание на комментарии, которые начинаются со знака #. Вы помните из Главы 3, что при компиляции Perl отбрасывает их вместе с пустыми строками. По сути, для Perl следующий код, это точно такая же программа как Пример 4-1.

#!/usr/bin/perl -w

$DNA = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC'; print $DNA;

exit;

В примере 4-1 комментарии свободно использовались. Комментарии в начале кода могут объяснять для чего программа, кто ее написал и представить другую информацию, которая может быть полезна, когда кому-то нужно понять код. Комментарии также объясняют, для чего каждая часть кода и иногда объясняют как код выполняет свою задачу.

Чтобы понять значимость комментариев, достаточно сказать, что на университетском уровне программа без комментариев обычно оценивается низко или неудовлетворительно, а программист, который в работе не комментирует ответственно свой код, не может сделать хорошей карьеры.

4.2.3 Интерпретация команд

Первая строка выглядит как комментарий, поскольку начинается со знака #, но кажется не очень информативной.

#!/usr/bin/perl -w

Это специальная строка, которая называется интерпретацией команд и объясняет компьютеру под UNIX или LINUX, что это программа на Perl. Она может выглядеть немного по-разному на разных компьютерах. На некоторых компьютерах она, к тому же, и не нужна, так как компьютер узнает, что это Perl из другой информации. Конфигурация компьютеров под Windows обычно сконфигурированы ассоциировать любую программу, заканчивающуюся на .pl как Perl программу. В UNIX или LINUX , в командном окне Windows или в оболочке MacOS X, можно набрать perl my_program и тогда Perl программе my_program не нужно специальных строк. Однако, они часто используются, и будут встречаться в начале всех наших программ.

Обратите внимание, что в первой строке используется флаг –w. –w означает предупреждения и заставляет Perl выводить сообщения в случае ошибок. Очень часто сообщение об ошибке указывает номер строки, в которой, предположительно, начинается ошибка. Иногда номер строки бывает неверным, но обычно ошибка именно в той строке или в предыдущей строке. Далее в книге вы так же увидите формулировку use warnings, как альтернатива –w.