Учебная страница курса биоинформатики,
год поступления 2015
Задания
Результатом выполнения практикума являются файлы:
kodomo.fbb.msu.ru:~/term2/linux/credits/cds.py
kodomo.fbb.msu.ru:~/term2/linux/credits/cds.sh
kodomo.fbb.msu.ru:~/term2/linux/credits/times.txt
В ходе выполнения практикума вам необходимо написать программы на языках Python (cds.py) и Bash (cds.sh) и сравнить времена их разработки и выполнения. Время разработки (то есть то время, которые вы затратили на написание программы) необходимо замерять самостоятельно. Время выполнения программы можно измерить при помощи команды time (man time) — вас будет интересовать графа real (астрономическое, то есть реально время выполнения программы).
Содержимое файла kodomo.fbb.msu.ru:~/term2/linux/credits/times.txt должно иметь следующий вид:
Python development XX.XX h execution YY.YY s Bash development XX.XX h execution YY.YY s <Ваши комментарии о том, на каком из языков вам было комфортнее и быстрее решать поставленную задачу. И вообще любые комментарии и впечатления от использования командной строки>
Ваши программы должны проделывать следующие операции:
- Принимать на вход имя файла, содержащего набор неких идентификаторов и имя файла, куда будет записана выдача скрипта.
Достаточно в формате mypgrog <input_file> <output_file> Для тестирования используйте файл /P/y15/term2/Block2/id_list.txt (рекомендуется скопировать его в свою рабочую директорию)
Напечатать в <STDERR> сообщение о начале работы
- Далее для каждого ID из списка:
Скачать соответствующий .gbk файл (ссылка для скачивания: http://vsb.fbb.msu.ru/share/gbk/<ID>.gbk)
Записать все строчки с квалификатором CDS из .gbk файла в файл <output_file>
Напечатать в <STDOUT> имя скачанного .gbk файла и количество строк, записанных в выходной файл, разделенные табулятором
Напечатать в <STDERR> сообщение о завершении работы
Учтите, что файл id_list.txt создан в операционной системе Windows и для корректной работы с ним вы должны конвертировать переносы строк в формат, совместимый с UNIX/Linux.
Например так:
dos2unix -n <infile> <outfile>
Обратите внимание на флаг -n !
Скрипты на языке Python можно также запускать из командной строки на kodomo, аналогично тому, как вы делали это в FAR:
python <scriptname.py> <infile> <outfile>
Для вывода информации в <STDERR> в языке Python можно использовать следующий сниппет:
import sys sys.stderr.write('TEXTGOESHERE\n')
Чтобы вспомнить как пользоваться модулем urllib2, посмотрите памятку к практикуму 9 из предыдущего семестра.
Предполагаемый список команд (задачу можно решить более чем одним способом!) для Bash скрипта:
echo cat for wget grep
При поиске квалификаторов CDS обратите внимание на то, чтобы в ответе не оказались посторонние строчки со словом CDS! (например, цистеин, аспарагиновая кислота, серин из последовательности
В качестве подсказок, конспекты предыдущих лет: