Главная страница 1страница 2 ... страница 5страница 6
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра иностранных языков

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.


4.2.4 Операторы


Следующая строка примера 4-1 сохраняет ДНК в переменной:

$DNA = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC';

Это очень распространенная и важная вещь, выполняемая в языке программирования, давайте рассмотрим ее не спеша. Вы увидите некоторые базовые особенности Perl и языка программирования в целом. Как раз здесь следует перестать лишь бегло просматривать, а стоит начать действительно читать. Такая строка кода называется оператором. В Perl оператор заканчивается на ; (точка с запятой). Использование ; похоже на использование этого знака для пауз в предложении в английском языке.

Точнее говоря, эта строка кода – оператор присваивания. Его назначение в этой программе - сохранить некоторую ДНК в переменную под названием $DNA. Здесь есть несколько важных моментов, вы сможете узнать о них в следующем разделе.


4.2.4.1 Переменные


Для начала давайте взглянем на переменную $DNA. Это название весьма произвольное. Вы можете подобрать другое название для неё, а программа будет работать также. Например, если вы заменяете две строки :

$DNA = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC';

print $DNA;

этими строками:

$A_poem_by_Seamus_Heaney =

'ACGGGAGGACGGGAAAATTACTACGGCATTAGC';

print $A_poem_by_Seamus_Heaney;

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

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

Компьютер не придает значения использованию названия переменой $DNA вместо $A_poem_by_Seamus_Heaney, но кто бы не читал программу, конечно же обратит внимание на это.

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

Вы заметили, что переменная $DNA начинается со знака доллара. В Perl такой вид переменой называется скалярной переменной, и эта переменная содержит один элемент данных. Скалярные переменные используются для таких типов данных как строковые или числовые типы (например, строка hello, или числа 25, 6,234, 3,5Е10, -0,8373). Скалярная переменная содержит только один элемент данных в каждый момент.


4.2.4.2. Символьная строка


В примере 4-1 , скалярная переменная $DNA содержит некую ДНК, представленную обычным образом буквами A, C, G, и T. Как говорилось ранее, в компьютерной науке последовательность букв называется символьной строкой. В Perl, чтобы определить символьную строку, нужно заключить её в кавычки. Можно использовать одинарные кавычки, как в примере 4-1, или двойные кавычки. (Вы узнаете их различие немного позже). Таким образом ДНК выглядит так:

'ACGGGAGGACGGGAAAATTACTACGGCATTAGC'


4.2.4.3.Присваивание


В Perl, чтобы присвоить определенное значение переменной используется знак =. Этот знак = называется оператором присваивания. В Примере 4-1, значение 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC'

присваивается переменой $DNA. После присваивания Вы можете использовать название переменной, чтобы получить это значение, например как в операторе print в примере 4-1.

В операторе присваивания важен порядок частей. Значение, присвоенное чему-то, указывается справа от оператора присваивания.

Переменная, которая присваивает значение, всегда слева от оператора присваивания. В справочниках по программированию вы иногда встречаете термины lvalue и rvalue слева или справа от оператора присваивания.

Использование знака = имеет долгую историю в языке программирования. Однако, он может натолкнуть на определенный вывод: например, в математике использование знака = означает равенство двух значений по сторонам от знака. Итак, важно отметить, что в Perl знак = не означает равнозначность. Он присваивает значение переменной (Далее мы увидим, как показать равнозначность).

Итак, чтобы подвести пока итог того, что мы узнали об этом операторе:

$DNA = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC';

Это оператор присваивания, который присваивает скалярной переменной $DNA значение символьную строку, означающую некую ДНК.


4.2.4.4. Печать


Оператор: print $DNA;

выводит ACGGGAGGACGGGAAAATTACTACGGCATTAGC на экран компьютера. Заметьте, что оператор print работает со скалярными переменными, распечатывая их значение, в этом случае символьную строку, которую содержит переменная $DNA. Позже вы узнаете о печати больше.


4.2.4.5. Выход


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

следующая страница >>

Смотрите также:
Проблемы современной лингвистики и методики преподавания иностранных языков
152.32kb.
1 стр.
Формирование у учащихся мотивации к изучению иностранных языков
98.21kb.
1 стр.
Кафедра иностранных языков
461.78kb.
6 стр.
Учебно-тематический план дополнительной профессиональной образовательной программы повышения квалификации профессорско
126.84kb.
1 стр.
План график курсовых мероприятий на 2011 год
1907.65kb.
11 стр.
Пути мотивации учащихся к изучению иностранных языков Вопросам повышения мотивации, сохранения и развития у школьников интереса к предмету «Иностранный язык»
65.22kb.
1 стр.
Внеклассное мероприятие для обучающихся 5-6 классов «Европейский день языков»
62.04kb.
1 стр.
Рабочая программа учебной дисциплины моделирование учебного процесса преподавания иностранных языков в вузе
125.12kb.
1 стр.
Компьютерные программы обучения иностранному языку
189.69kb.
1 стр.
О. В. Попова Теоретическая фонетика английского языка
206.23kb.
6 стр.
Проблема интерпретации библейских текстов в истории культуры
353.03kb.
1 стр.
Роль иноязычной лексики в объективации взаимодействия картин мира
412.32kb.
2 стр.