План реализации
Программа состоит из модулей check_align.py и multi_align.py.
Представление данных
- выравнивание последовательностей представляется в виде словаря, где ключом является имя последовательности, а значением является последовательность.
- матрица попарных соответствий представляется в виде словаря, где ключом является кортеж, состоящий из имён двух сравниваемых аминокислот, а значением – число (вес соответствия).
Модуль check_align.py состоит из функций:
- parse_fasta получает на вход объект типа file, на выходе выдает внутреннее представление выравнивания последовательности.
- write_fasta получает на вход объект типа file и внутреннее представление выравнивания.
- parse_blosum получает на вход объект типа file, на выходе выдает внутреннее представление матрицы попарных соответствий.
- score получает на вход две последовательности, матрицу соответствий, значения для штрафов и порога; возвращает пару из веса выравнивания и ответа, есть ли выравнивание.
- main отвечает за взаимодействие с пользователем.
Модуль multi_align.py состоит из функций:
- импортируемые из check_align.py функции parse_fasta, parse_blosum и score
- edges получает на вход внутреннее представление выравнивания, все параметры для score; возвращает результаты оценки попарных выравниваний для всех возможных пар последовательностей из выравнивания в виде словаря, ключами которого являются пары имен последовательностей, а значениями - веса соответствия (если выравнивания не было, записи в словаре для этой пары последовательностей нет!)
- clicques получает на вход внутреннее представление графа соответствия, возвращает найденые клики в виде списка списков имен последовательностей.
- connection_groups получает на вход внутреннее представление графа соответствия, возвращает найденые группы связности в виде списка списков имен последовательностей.
- main отвечает за взаимодействие с пользователем.