Как бы ни было, в этом случае оператор tr, означающий трансляцию или перевод, точно подходит для решения задачи. Он выглядит так же, как оператор подстановки, с 3 косыми чертами, разделяющими различные части.
Tr делает точно то, что нужно. Он переводит один набор символов в другой набор сразу целиком. На Рисунке 4-2 показано, как он работает: набор переводимых символов находится между первыми двумя косыми чертами. Набор символов, которые замещают исходные, находится между второй и третьей косыми чертами. Каждый символ первого набора переводится в символы, что на тех же позициях во втором наборе. Например, в Примере 4-4 C – это второй символ в первом наборе, и он переводится во второй символ второго набора, а именно в G. Наконец, так как цепочка ДНК может кодироваться и заглавными, и строчными буквами (не смотря на то, что в этой программе ДНК представлена только заглавными буквами), оба случая в Примере 4-4 включены в tr оператор.
Figure 4-2. The tr statement
Функция reverse реализуется так же с минимумом усилий. Как можно видеть из Примера 4-4, она создана, чтобы изменить порядок элементов, включая символьные строки, на обратный.
Пока мы создавали программы с последовательностями ДНK. Сейчас мы добавим к ним не менее важные последовательности белка. Вот кратко то, что описано в следующих разделах:
Как использовать данные белковой последовательности в Perl программе
Как считать данные белковой последовательности в файл
Массивы в языке Perl
В оставшихся главах используются и ДНК последовательности, и белковые последовательности.
Программа взаимодействует с файлами на диске компьютера. Эти файлы могут быть на жестком диске, CD, дискете, Zip накопителе, магнитной ленте – любом виде постоянного запоминающего устройства.
Давайте рассмотрим, как считывать данные белковой последовательности с файла. Для начала создайте файл на вашем компьютере (используйте текстовый редактор) и вставьте в него данные какой-нибудь белковой последовательности. Назовите файл NM_021964fragment.pep (вы можете скачать его с сайта этой книги). Вы будете использовать следующие данные (часть белка указателя человеческого цинка NM_021964):
Вы можете придумать любое название, кроме тех, которые уже использованы в той же папке.
Хорошо подобранные названия файлов и папок могут быть так же значимы, как и хорошо подобранные названия переменных важны для понимания программы. Если Ваш проект генерирует множество компьютерных файлов, Вам нужно тщательно продумывать, как называть и организовывать файлы и папки. Это необходимо как для индивидуальных разработок, так и для командных и многонациональных.
Имя файла NM_021964fragment.pep взято из GenBank ID, где и был найден этот белок. Оно также обозначает фрагментарный тип данных и содержит расширение файла .pep, давая понять, что файл содержит пептид и белковую последовательность. Конечно, может быть вам могли бы подойти лучше другие схемы, но цель этого - понять что находится в файле перед просмотром содержимого.
Сейчас, когда вы создали или скачали файл с белковой последовательностью, давайте разработаем программу, которая считывает данные белковой последовательности из файла и сохраняет их в переменную. В Пример 4-5 показана первая попытка, которая будет дорабатываться в процессе.
Example 4-5. Reading protein sequence data from a file
Заметьте, что распечатывается только первая строка файла. Сейчас я разъясню почему.
A
abbreviation - сокращение (напр., текста); аббревиатура
absolute value - абсолютное значение, абсолютная величина, модуль (числа)
abstraction - абстракция, отвлечение
access - доступ; обращение (напр., к памяти ЭВМ, базе данных, каталогу) // обращаться
accession - 1. поступление; 2. инвентаризация; регистрация (новых поступлений)
acknowledgement - подтверждение приема (сообщения)
acronym - 1. акроним, слово, образованное по первым звукам или слогам словосочетания, которое оно заменяет 2. Преим. в СМС-сообщениях и электронной почте: слово, образованное из букв и цифр, заменяющих более длинные слова или целые словосочетания: например, L8R = later, CU = see you
action - 1. действие; воздействие; 2. деятельность; линия поведения; 3. операция
adapt - адаптировать, приспосабливать
addition - сложение, суммирование; прибавление
advanced - 1. улучшенный, усовершенствованный; 2. перспективный, прогрессивный; развитый
agent - 1. агент; представитель; посредник; доверенное лицо; 2. агент (субъект действия); 3. действующая сила; фактор
allow – разрешать, предоставлять
alphanumeric - буквенно-цифровой
ambiguity - неопределенность; неясность; неоднозначность
amount – количество, величина; равняться
answer - ответ; реакция
appear - казаться
appendix - приложение
application - 1. применение; использование; 2. прикладная задача
approach - 1. подход; 2. метод; принцип
aptitude - 1. пригодность; соответствие; 2. способность выполнять (определенную) работу
arbitrary - произвольный
archive - архив; хранилище
area - 1. (предметная) область; 2. поле (записи); 3. площадь
argument - 1. аргумент, доказательство, суждение; 2. аргумент, независимая переменная; параметр
array - 1. массив; 2. строй; 3. таблица, матрица, решетка;
artificial intelligence (AI) - искусственный интеллект
assertion - 1. утверждение; 2. суждение
assign - определять, присваивать, назначать; assignment statement – оператор присваивания
associate – ассоциировать, связывать (типы файлов с приложениями)
assume - предполагать
atom - элементарный объект, атом
authority - 1. полномочия; право; власть должностного лица; 2. уполномоченное лицо; уполномоченный орган; 3. нормативный [справочный] материал (напр., указатель)
authority control - нормативный контроль
B
background - 1. фон; фоновая работа // фоновый; низкоприоритетный; 2. пробельные места (на фотокопии, микроформе и т. п.); 3. подготовка; предварительные знания; предпосылка; 4. истоки; происхождение; биографические данные; 5. теоретические основы
backspace - возвращаться; перемещать обратно; реверсировать; возвращать на одну позицию
backup - 1) опора; опорный 2) архивирование, архивация 3) резервирование; резервный ресурс 4) (техническая) поддержка;
bar - (горизонтальная) полоса; барьер
base - 1. база; основа // базировать(ся); основывать(ся); 2. база (данных); 3. корень (слова); 4. основание; подложка
behave - 1) вести себя, поступать, держаться 2) работать без перебоев (о машине)
behavior - 1. поведение, линия поведения (пользователя); 2. режим (работы)
benchmark - 1. точка отсчета, начало отсчета; контрольная точка (для сравнения); 2. контрольная задача (для определения сравнительных характеристик производительности системы); 3. аттестация (программного изделия)
benefit - выгода, прибыль
binary search - двоичный [дихотомический] поиск
binding operator - связанный оператор
bioinformatics - биоинформатика (наука, использующая достижения биологии для разработки совершенно новых практических подходов для решения проблем здравоохранения и сельского хозяйства, для разработки принципиально новых технологий и материалов в различных отраслях народного хозяйства); применение ЭВМ в биологии
blank - 1. пробельный материал; пробел; 2. пустая (незаполненная) страница; 3. бланк; 4. тире (вместо пропущенного или нецензурного слова); 5 заготовка
block - 1. блок; узел // блокировать // блочный; 2. группа, блок (напр., слов, чисел или знаков);
boolean - 1. булево выражение // булев; 2. логический
borrow - заимствовать, занимать
bracket - скобка // заключать в скобки
branch - 1. ветвление, (условный) переход (в алгоритме или программе); 2. ветвь (напр., алгоритма); 3. отделение, филиал (напр., фирмы)
breakdown - 1. распределение; расчленение; деление на категории; классификация; 2. поломка; авария
brief - краткое изложение; резюме; сводка; бюллетень //составлять краткое изложение; резюмировать
browse – просматривать
bug - 1. ошибка; дефект; 2. помеха
built-in – встроенный, свойственный, врожденый
bunch – связка, пучок, сгусток, пачка, букет
C
call - 1. вызов; обращение // вызывать; обращаться; 2. запрос// запрашивать; 3. переход к подпрограмме; 4. заявка
capability - 1. возможность; способность; 2. производительность; 3. характеристика
capital letter - заглавная [прописная] буква
capture - 1. сбор (данных)//собирать (данные); 2. фиксировать [останавливать] (изображение)
carriage return - обратный ход каретки; возврат каретки
case – наборная касса; uppercase / lowercase – верхний / нижний регистр
1. случай; обстоятельство; 2. падеж; 3. оболочка; кейс
cell - 1. ячейка; элемент; 2. (фото)элемент; 3. секция (единый участок памяти в файле)
chain - 1. цепь; цепочка; 2. последовательность; chaining - связывание; формирование цепочки; сцепление (программ)
chapter - 1. глава; 2. раздел; секция; сегмент (программы)
character - знак; символ; цифра; буква; иероглиф; character set - набор символов
characterization - определение [установление] характеристик, особенностей, свойств
chart - диаграмма; схема; таблица; график; карта
check – проверка; контролировать; checking - контроль; испытания
chip - 1. интегральная схема, ИС; чип; 2. микрокадр (на микрофише)
chunk - 1. блок (информации); 2. проф. кусок программы (на блок-схеме)
class - класс; группа; категория // класс ООП
classification - классификация, шифр [имя] класса