Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2013

Задание

1. (1 балл) Напишите программу sum-sqrt.py, которая получает на вход таблицу из двух столбцов в формате CSV, и записывает выходной файл её же, добавляя 3-й колонкой квадратный корень из суммы первых двух, либо 4-й колонкой сообщение об ошибке, если случилась проблема (например, неправильно записано число, число отрицательное или неправильное число столбцов во входной таблице). Программа должна принимать аргументы командной строки: опция -i (--in-file) определяет имя входного файла; опция -o (--out-file) определяет имя выходного файла. Пример входного файла:

   1 2,2
   2 
   3 3,-4
   4 4,-3
   5 hello,1
   6 1,2,3
   7 3,6

Для него выход должен быть примерно таким (с точностью до вида сообщений и количества лишних запятых):

   1 2,2,2,
   2 ,,,need more than 0 values to unpack
   3 3,-4,,math domain error
   4 4,-3,1,
   5 hello,1,invalid literal for int () with base 0: 'hello'
   6 1,2,,too many values to unpack
   7 3,6,3,

2. (1.5 балла) Напишите программу, которая берет на вход bed файл с координатами генетических интервалов на хромосоме chr19, длина хромосомы 58 617 616. Ваша программа считает среднюю длину интервала. Для всех участков длинной меньше 100 п.о. выведите предупреждение в stderr(не учитывайте эти участки при подсчете средней длины). Для случая встречи не попадающего на хромосому интервала напишите выброс исключения и прекращение работы программы. По завершении работы программы(если она добирается до конца) должно выводиться сообщение в stderr о удачном завершении работы с некоторым числом предупреждений. Файлы - file1 , file2

3. (3 балла) Для системы геометрических фигур из конспекта создать список и заполнить его случайными фигурами. Написать функцию, которая упорядочивает фигуры в списке по возрастанию площади. Например, методом пузырька http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%83%D0%B7%D1%8B%D1%80%D1%8C%D0%BA%D0%BE%D0%BC.