Финальная контрольная по Python
Можно выбрать любой вариант или сделать оба. Одного правильно сделанного варианта достаточно для зачёта. Результат (файл cw4a.py или cw4b.py) должен лежать в директории ~/term1/block2/credits к 12:30, скачивание автоматическое.
Вариант 1
Программа cw4a.py принимает в командной строке единственный аргумент — имя fasta-файла с несколькими нуклеотидными последовательностями.
Программа считает в каждой последовательности отдельно количество букв a, c, g и t, а также общую длину последовательности, и выдаёт на stdout таблицу из пяти столбцов через табулятор.
Первая строка выдачи: "ID Length a c g t".
Следующие строки содержат в первой позиции имена (они же идентификаторы) последовательностей, найденных в файле, во второй — длину последовательности (суммарное количество букв a, с, g и t) а в последующих — количества букв a, c, g и t по отдельности, в соответствующей последовательности.
Для тестирования используйте файлы test1.fasta и test2.fasta, правильные ответы — в файле vara.txt , все эти файлы — в директории /P/y19/term1/block2 (скопируйте их в свою директорию для тестирования).
Описание fasta-формата см. здесь.
Вариант 2
Программа cw4b.py принимает в командной строке два параметра: имя pdb-файла и название атома в формате <номер остатка>:<цепь>.<имя атома>, например 15:C.CA. В данном случае имя атома задаётся в "раздетом" виде, то есть без начальных и конечных пробелов.
Программа выдаёт координатами этого атома в виде (X, Y, Z), например:
(0.156, 32.671, -5.017)
Для тестирования используйте файлы 1WET.pdb и 2BBJ.pdb, правильные ответы — в файле varb.txt, все эти файлы — в директории /P/y19/term1/block2 (скопируйте их в свою директорию для тестирования).
Формат строки ATOM pdb-файла (позиции, в которых лежит информация) смотрите здесь. Номер остатка — это Residue sequence number, цепь — это Chain identifier, имя атома — Atom name. Перед сравнением с именем атома, заданным на входе, имя атома из строки ATOM нужно освободить от начальных и конечных пробелов.