Учебная страница курса биоинформатики,
год поступления 2014
В процессе...
Советы по подготовке к контрольной
Разбор задачи получения последовательностей белков, закодированных в данной прокариотической нуклеотидной последовательности
Немного различающиеся варианты были предложены первой и второй группе. Здесь могут появиться разные варианты.
Вход: имя входного файла, имя выходного файла, минимальная длина последовательности белка. Параметры задаются в командной строке.
Параметры, хранящиеся внутри программы.
Таблица генетического кода: кодон -> аминокислота или стоп
- Инициаторные (старт) кодоны: ATG или ATG, GTG, TTG
Выход: файл со списком последовательностей белков. <Имя последовательности белка> = <имя нукл последовательности>_protein_i где i - номер белка в данной последовательности
Этапы
Номер |
Название |
Вход |
Выход |
Обозначение выходов |
1. |
Получение параметров |
данные из командной строки |
параметры |
infile, outfile, min_prot_len |
2. |
Чтение файла |
infile |
словарь последовательностей |
nucl_sequenses = {name1:seq1, name2:seq2,...} |
3.a |
Открытие файла на запись |
outfile |
file_out = open(outfile, 'w') |
file_out - открытый объект типа файл |
3.b. |
Цмкл по последовательностям |
nucl_sequences |
файл, посл. и ее имя |
(file_out, name, sequence) |
3.c |
Для данной нукл. посл. mполучение и запись последовательностей белков |
name, sequence, file_out, min_prot_len |
записанные в файл последовательности белков |
|
4. |
Завершение работы |
|
|
|
Реализация
Фукнция infile, outfile, min_prot_len = get_parameters()
Функция nucl_sequences = read_fasta(infile)
- c Функция 'get_and_write_proteins(file_out, name, sequence)'
Код основной программы
infile, outfile, min_prot_len = get_parameters() print("Wait..") nucl_sequences = read_fasta(infile) print ("Fasta file read") file_out = open(out_file,'w') for name in nucl_sequences.keys(): get_and_write_proteins(file_out, name, sequence) file_out.close() print("..Done")
Остается написать несколько функций
Функции
def get_parameters(): """ Read sys.argv and returm (1) infile (str); (2) outfile (str); (3) min_prot_len (int). """ ........ return (infile, outfile, min_prot_len)
2.
def read_fasta(infile) """ infile is name of file in fasta format return dict of sequences, key is sequence name (without ">"), value is sequence in upper letters The function can be used in multile programs dealing with sequences """ # Open file .... # make name of current sequence empty (name = "") and creat empty dict sequences .... # read file strings one by one into line # if line is empty continue # if line[0] equals ">" store sequence name in name; creat sequences[name] = ""; continue # if line[0] is not ">" reformat line to upper and strip it; add line to approprite sequence in dict ( sequences[name] = sequences[name] + line ) ..... ..... ..... # return result return sequences
3.c
def get_and_write_proteins(file_out, name, sequence) """ file_out is opened file; it means that file_out.write("string") adds the string to output file ...... """ orfs = get_orfs(sequence) # orfs is list of orf, orf is a sequence from start to stop codons for orf in orfs: get_and_write_protein(file_out, name, orf) return
get_orfs