Kodomo

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

Учебная страница курса биоинформатики,
год поступления 2014

В процессе...

Советы по подготовке к контрольной

Разбор задачи получения последовательностей белков, закодированных в данной прокариотической нуклеотидной последовательности

Немного различающиеся варианты были предложены первой и второй группе. Здесь могут появиться разные варианты.

Вход: имя входного файла, имя выходного файла, минимальная длина последовательности белка. Параметры задаются в командной строке.

Параметры, хранящиеся внутри программы.

Выход: файл со списком последовательностей белков. <Имя последовательности белка> = <имя нукл последовательности>_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.

Завершение работы

Реализация

  1. Фукнция infile, outfile, min_prot_len = get_parameters()

  2. Функция nucl_sequences = read_fasta(infile)

  3. 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