Учебная страница курса биоинформатики,
год поступления 2020
Все файлы со скриптами сохраняйте в папку ~/term1/block2/homeworks, название скрипта – <название_задания>.py
Если в заданиях не оговорено иначе, то считается, что пользователь всегда передает вам верные аргументы.
1. count_a_fasta
Программа принимает в качестве аргумента командной строки название файла с одной аминокислотной последовательностью в формате fasta (последовательность может занимать несколько строк). Программа печатает на стандартный поток вывода количество каждого типа аминокислот. Порядок вывода любой, должна быть выведена информация о всех 20 аминокислотах
Пример запуска программы
python3 count_a_fasta.py /nfs/srv/www/htdocs/FBB/year_20/examples/prot_single.fasta
Пример входного файла:
>seq1 ATGCVNMNMNMNMDAERERASWQ
2. one_to_three
Программа принимает в качестве аргумента командной строки однобуквенный код одной из 20 канонических аминокислот (в верхнем или нижнем регистре). На выход программа выводит трёхбуквенный код соответствующей аминокислоты. Если пользователь ввёл не однобуквенный код аминокислоты, то программа пишет "Invalid code".
Пример запуска программы
python3 one_to_three.py A
Пример вывода
ALA
3. kmer_count
Программа принимает на вход в качестве аргументов командной строки:
- название fasta-файла с одной нуклеотидной последовательностью;
длина k-мера (k-mer, то есть слово длины k, см. https://en.wikipedia.org/wiki/K-mer, по этой же ссылке можете глянуть, а зачем они нужны) — положительное целое число.
Гарантируется правильность ввода. Последовательность в файле может быть записана в несколько строк, как заглавными, так и строчными буквами.
Необходимо вывести на stdout для каждого имеющегося в последовательности k-мера, сколько раз он встретился в последовательности. Порядок вывода k-меров роли не играет.
Указание: сначала убедитесь, что вы написали код, который действительно учитывает все kmer в последовательности.
Пример запуска программы
python3 kmer_count.py /nfs/srv/www/htdocs/FBB/year_20/examples/single.fasta 2
Пример вывода
AT 1 TT 1 TG 1 GC 1 CC 1 CA 1 AA 2
Пример входного файла:
>name desc ATTGCCA AA
4. kmer_count_tab
Программа принимает на вход в качестве аргументов командной строки:
- название fasta-файла с одной нуклеотидной последовательностью
- длину k-мера.
(все условия на входные данные те же, что в предыдущей задаче).
Необходимо вывести на stdout для всех возможных k-меров заданной длины, сколько раз они встретились в последовательности. Нуклеотидные "слова" (то есть k-меры) выводить в алфавитном порядке.
Пример запуска программы
python3 kmer_count.py /nfs/srv/www/htdocs/FBB/year_20/examples/single.fasta 2
Пример вывода
AA 2 AC 0 AG 0 AT 1 CA 1 CC 1 CG 0 CT 0 GA 0 GC 1 GG 0 GT 0 TA 0 TC 0 TG 1 TT 1
Пример входного файла:
>name desc ATTGCCA AA
5. water_pdb
Программа принимает в командной строке pdb-код (четыре символа), считает число записей об атомах воды в файле pdb (HOH) и выводит это число
Пример запуска программы
python3 water_pdb.py 4ATE
вывод в этом случае:
450
Указание. Атомы воды в записях PDB находятся в строках, начинающихся с HETATM. Формат таких строк тот же, что и строк, начинающихся с ATOM, см. в лекции раздел "Работа с PDB". Атомы воды отличаются от других тем, что в поле resName (Residue Name) у них стоит "HOH".
6. dif_ligs
Программа принимает в командной строке pdb-код (четыре символа) и считает число разных типов лигандов в файле.
Информация об атомах лигандов, как и информация об атомах воды — в строках, начинающихся с HETATM. Тип лиганда — три символа в поле resName. Нужно посчитать не число таких атомов, а именно число разных типов лигандов. В этом задании воду тоже считаем лигандом типа "HOH".
Пример запуска программы
python3 dif_ligs.py 4ATE
вывод в этом случае
4
(потому что в PDB-записи с кодом 4ATE четыре типа лигандов: хлор (тип " CL"), кальций (тип " CA"), сульфат (тип "SO4") и вода).
7. proteinhost
Программа принимает в командной строке так называемый "номер доступа" (accession number, AC) банка последовательностей белков Uniprot и выдаёт на консоль название организма, из которого взят этот белок.
Запись банка Uniprot находится по адресу https://www.uniprot.org/uniprot/<AC>.txt. Например, если AC — это "I3WE50", то по адресу https://www.uniprot.org/uniprot/I3WE50.txt . В этой записи название организма находится в строке, начинающейся с букв "OS", название начинается с шестого символа (и до конца строки).
Примеры валидных AC: P02088, P02008, P02091, P68871, Q7AP54.
Пример запуска программы
python3 proteinhost.py Q7AP54