Kodomo

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

Учебная страница курса биоинформатики,
год поступления 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

Программа принимает на вход в качестве аргументов командной строки:

  1. название fasta-файла с одной нуклеотидной последовательностью;
  2. длина 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

Программа принимает на вход в качестве аргументов командной строки:

  1. название fasta-файла с одной нуклеотидной последовательностью
  2. длину 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