Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР / ЛР4 / ПиАГМ ЛР4

.pdf
Скачиваний:
15
Добавлен:
25.06.2023
Размер:
707.03 Кб
Скачать

def write_structure(sequence, structure):

'''Создает представление сворачивания цепочки'''

dot_bracket = ["." for _ in range(len(sequence))] for s in structure:

dot_bracket[min(s)] = "(" dot_bracket[max(s)] = ")"

return "".join(dot_bracket)

def nussinov_algorithm(sequence, min_loop_length = 1):

'''Алгоритм Нуссиновой'''

size = len(sequence)

mat = initialize(size, sequence, min_loop_length) structure = []

traceback(0,size-1, structure, mat, sequence, min_loop_length)

return (structure, mat, write_structure(sequence, structure))

def get_adj_mat_by_sequence(sequence):

'''Создание матрицы смежности по графа по переданной последовательности'''

num_seq = [i+'('+str(n)+')' for n, i in enumerate(sequence)] result = nussinov_algorithm(sequence)

print('Заполненная матрица алгоритма Нуссиновой:\n', pd.DataFrame(result[1], columns=num_seq, index=num_seq)

,'\n\nПердставление свернутой цепочки: ', result[2]

,'\nМеста соединения цепочки: ', *result[0])

size = len(sequence)

adj_mat = [[1 if row-col == 1 or col-row == 1 else 0 for col in range(size)] for row in range(size)]

print('\nМатрица смежности исходного графа (невзвешенный неориентированный граф вида цепочка):', pd.DataFrame(adj_mat, columns=num_seq, index=num_seq), sep='\n')

view_graph(adj_mat, num_seq)

for i in result[0]: adj_mat[i[0]][i[1]] = adj_mat[i[1]][i[0]]

= 9

print('\nМатрица смежности полученного графа (невзвешенный неориентированный граф вида цепочка):', pd.DataFrame(adj_mat, columns=num_seq, index=num_seq), sep='\n')

view_graph(adj_mat, num_seq) return adj_mat

def main():

 

# rna

= get_RNA_chain(10)

 

#

rna

= 'CUGGGCAACUUCACA'

# тестовый пример

#

rna

= input('Задайте последовательность цепочки РНК: ')

rna =

'CAUGCUCUUU'

 

print('rna: ', rna) get_adj_mat_by_sequence(rna) return 1

if __name__ == "__main__": main()

21

Соседние файлы в папке ЛР4