Учебная страница курса биоинформатики,
год поступления 2020
Все файлы со скриптами сохраняйте в папку ~/term1/block2/sem10, название скрипта – <название_задания>.py
Если в заданиях не оговорено иного, то считается, что пользователь всегда передает вам верные аргументы.
1. reverse_complement
Файл reverse_complement.py должен содержать функцию с именем reverse_complement, которая принимает единственный аргумент — строку, представляющую последовательность цепи ДНК (строку из символов a, t, g, c) и возвращает последовательность комплементарной цепи.
При проверке ваш файл будет тестироваться путём импорта вашей функции в тестирующую программу (соответственно и вы, чтобы протестировать свою функцию, должны будете написать тестирующую программу. Ваша тестирующая программа проверяться и оцениваться не будет).
Пример применения:
>>> import reverse_complement >>> reverse_complement.reverse_complement("attgcatt") 'aatgcaat'
2. read_sfasta
Файл read_sfasta.py должен содержать функцию read_sfasta, которая принимает на вход путь к файлу в fasta-формате, для которого гарантируется, что каждая последовательность в нём записана двумя строкам — строкой с описанием и строкой с собственно последовательностью. Функция должна возвращать словарь формата {имя_последовательности:последовательность}
Пример применения:
>>> from read_sfasta import read_sfasta >>> read_sfasta("example.fasta") {"name1": "ATGC", "name2": "ACGCGG"}
3. write_sfasta
Файл write_sfasta.py должен содержать функцию write_sfasta, которая принимает на вход словарь с последовательностями в формате {имя_последовательности:последовательность} и имя файла, а также аргумент to_upper со значением по умолчанию — False. Функция записывает в этот файл последовательности в формате fasta, если to_upper=True, то все нуклеотиды должны быть записаны верхнем регистре.
>>> from write_sfasta import write_sfasta >>> dt = {"name1": "ATGC", "name2": "ACGCGG"} >>> write_sfasta(dt, "out.fasta") >>> write_sfasta(dt, "out_u.fasta", to_upper=True)
4. reverse_fasta
Файл reverse_fasta.py должен содержать функцию reverse_fasta, которая принимает на вход путь к файлу с последовательностями в формате fasta, для которого гарантируется, что каждая последовательность в нем записана двумя строками — строкой с описанием и строкой с собственно последовательностью. Помимо этого она принимает путь к файлу, куда должна записать reverse_complement последовательностей в формате fasta, сохраняя имена последовательностей без изменений.
Указание: можно использовать функции из предыдущих задач.
5. count_a
Необходимо написать программу, которая принимает файл в формате fasta в качестве аргумента командной строки, с последовательностями в формате fasta, для которого гарантируется, что каждая последовательность в нем записана двумя строками — строкой с описанием и строкой с собственно последовательностью.
После этого для каждой последовательности считается среднее содержание в ней аденинов. Программа выводит для каждой последовательности содержание аденинов с точностью до второго знака.
Входной файл
>name1 AAAAA >name2 AAAAT
Вывод
name1 1.00 name2 0.80
6. random_seq
Файл random_seq.py должен содержать функцию random_seq, которая принимает на вход длину последовательности и вероятности 4-х нуклеотидов в виде словаря, по умолчанию равные {"A":0.25, "T": 0.25, "C": 0.25, "G":0.25}.
Функция должна проверять, что сумма вероятностей равна 1.
Функция генерирует случайную последовательность нуклеотидов, в которой нуклеотиды в каждой позиции берутся в заданной вероятностью.
Пример применения:
>>> from random_seq import random_seq >>> random_seq(5) ATGCA >>> random_seq(4, dt={"A":1, "T": 0, "C": 0, "G":0}) AAAA