Автор: | Бойко | Ограничение времени: | 8 сек | |
Входной файл: | input.txt | Ограничение памяти: | 10 Мб | |
Выходной файл: | output.txt |
Дано N строк, состоящих из заглавных латинских букв (аминокислот). Требуется написать программу, определяющую пару строк с наименьшим расстоянием Левенштейна, включающего вставки, удаления и замены символов. Вес замены равен 2, вес вставки и удаления равен 1.
Во входном файле содержатся N строк.
Выходной файл должен содержать три целых числа — два различных номера строк, расстояние между которыми наименьшее, и само расстояние. Строки нумеруются от 1 до N.
N = 25. Длина строк не превосходит 1000 символов. Если существует несколько решений, выведите c минимальным N, минимизировать сначала первый номер, потом второй. Например 1 10, а не 2 9.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Бойко | Ограничение времени: | 8 сек | |
Входной файл: | input.txt | Ограничение памяти: | 10 Мб | |
Выходной файл: | output.txt |
Дано N строк, состоящих из заглавных латинских букв (аминокислот). Требуется написать программу, определяющую пару строк с наименьшим расстоянием Левенштейна, включающего вставки, удаления и замены символов. Вес удаления/вставки принять равным частоте данной аминокислоты. Частоты округлять до 5-го дробного знака. Замена, соответственно, складывается из суммы частот двух аминокислот.
Во входном файле содержатся N строк.
Выходной файл должен содержать три числа (два целых и одно дробное) — два различных номера строк, расстояние между которыми наименьшее, и само расстояние (округлить до 2 дробных знаков). Строки нумеруются от 1 до N.
N = 25. Длина строк не превосходит 1000 символов. Если существует несколько решений, выведите c минимальным N, минимизировать сначала номер, потом второй. Например 1 10, а не 2 9.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | М. Спорышев | Ограничение времени: | 8 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 1024 Мб | |
Выходной файл: | Стандартный выход |
Дано N строк одинаковой длины L, состоящих из заглавных латинских букв (аминокислот).
Требуется написать программу, вычисляющую BLOSUM Scoring Matrix
для букв, встречающихся в заданном наборе строк.
Во входном файле содержатся N строк.
Выходной файл должен содержать C строк, где C — это количество аминокислот (букв), встречающихся в строках.
i-я строка (нумерация с единицы) содержит i целых чисел — элементы BLOSUM
матрицы. Вместо элементов матрицы, вычисление которых некорректно из-за отсутствия соответствующих пар во входных данных, требуется вывести 0.
N ≤ 5000
L ≤ 1000
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | М. Спорышев | Ограничение времени: | 10 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 1024 Мб | |
Выходной файл: | Стандартный выход |
Вам даны:
Числа D, E — штрафы за начало нового разрыва в выравнивании строк и штраф за его продолжение соответственно.
Алфавит символов в виде строки A, состоящей из заглавных латинских букв.
Матрица замен символов R, соответствующая стоимости сопоставления каждой пары символов при выравнивании строк. Строки и столбцы матрицы соответствуют символам алфавита в том порядке, в котором они указаны в строке A
Две строки P и Q.
Требуется найти выравнивание строк P и Q, максимизирующее функцию стоимости данного выравнивания.
Выравнивание двух строк это также пара строк (Q1, Q2) одинаковой длины L, состоящих из символов алфавита, и символа "-", означающего разрыв.
Стоимость выравнивания S вычисляется по формуле: S(Q1, Q2) = ∑L − 1i = 0f(Q1[i], Q2[i]),
где f(Q1[i], Q2[i]) = D, если выполнено хотя бы одно из условий
f(Q1[i], Q2[i]) = E, если выполнено хотя бы одно из условий
Иначе f(Q1[i], Q2[i]) = R[Q1[i]][Q2[i]]
Первая строка содержит целые числа D, E.
Вторая строка содержит строку-алфавит A.
Далее |A| строк содержат по |A| целых чисел — элементы матрицы R.
Последние две строки содержат строки P и Q.
В первой строке выходного файла выведите стоимость выравнивания.
В последующих двух строках выведите выравнивание.
Если оптимальных решений несколько, выведите любое из них.
|D, E| ≤ 1000
− 10 ≤ Rij ≤ 10
Длина строк не превосходит 500. Строки состоят только из символов алфавита и не могут быть пустыми.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Автор: | Бойко | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 150 Мб | |
Выходной файл: | Стандартный выход |
Дано C строк, где последняя является нуклеотидной последовательностью длины L с CpG островками, а остальные содержат координаты островков в последовательности. Требуется написать программу, расcчитывающую по этим данным начальные и переходные вероятности для 8 состояний — 4 нуклеотида c "-" или "+" состояниями. "+" соответствует нуклеотидам в CpG островке. Псевдокаунт в числителе для каждого состояния принять равным 10 − 30, в знаменателе — 1. То есть переходная вероятность для С+G+ будет aC + G + = CC + G + + 10 − 30CC + N + 1.
A начальная вероятность для G- будет a0 G − = CG − + 10 − 30CN − + 1.
Где N − ∈ {A − , C − , G − , T − } и N ∈ {A − , C − , G − , T − , A + , C + , G + , T + }.
Во входном файле содержатся C строк. Последняя содержит нуклеотидную последовательность длины L, а первые C − 1 строк содержат координаты CpG островков. Отсчет идет с 1, координаты включают первый и последний символ островка.
Выходной файл должен содержать 68 строк, сначала начальные вероятности для каждого state, где state ∈ {A − , C − , G − , T − }, затем переходные вероятности для каждого state 1 − state 2, где state ∈ {A − , C − , G − , T − , A + , C + , G + , T + }. Порядок вывода вероятности лексиграфический, в соответствии с порядком в state.
При расчетах вероятности выражаем в натуральном логарифме и округляем до 5-го знака после запятой.
C < 12
L < 100000.
№ | Входной файл (input.txt ) |
Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Бойко | Ограничение времени: | 5 сек | |
Входной файл: | input.txt | Ограничение памяти: | 100 Мб | |
Выходной файл: | Стандартный выход |
Дано N строк, где последняя является нуклеотидной последовательностью длины L с CpG островками, а остальные содержат начальные и переходные вероятности для HMM. Эмиссионные вероятности считать равными log(10 − 30) или log(1) в зависимости от соответствия состояния наблюдаемому нуклеотиду. Требуется написать программу, находящую координаты CpG островков в соответствии с заданной HMM с помощью алгоритма Витерби.
Во входном файле содержатся N строк, где последняя содержит нуклеотидную последовательность длиной L с CpG островками, а остальные N − 1 строк содержат начальные и переходные вероятности.
Вероятности выражены через натуральный логарифм и имеют формат state probability для начальных вероятностей и state 1 state 2 probability для переходных вероятностей, где state ∈ {A − , C − , G − , T − , A + , C + , G + , T + }.Выходной файл должен содержать координаты CpG островков, за начало отчета принять 1. Значения координат соответствуют первому и последнему символу островка.
C = 73
L < 100000.
№ | Входной файл (input.txt ) |
Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Бойко | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 200 Мб | |
Выходной файл: | Стандартный выход |
Дана нуклеотидная последовательность РНК длины L. Требуется написать программу, моделирующую вторичную структуру РНК с помощью алгоритма Нуссинов (при обратном проходе последовательность возможных ходов по матрице не менять местами! См. стр. 13 из 4-й лекции
). Длина петель должна быть не менее 3 нуклеотидов, при ветвлении между шпильками должно быть не менее 2 нуклеотидов. Учитывать лишь Уотсон-Криковские пары G-C, A-T и обратные им.
Во входном файле содержится одна строка.
Выходной файл должен содержать число комплементарных пар нуклеотидов, образующих шпильки и саму структуру, где спаренные нуклеотиды обозначены знаком < или > , а неспаренные точками. Например последовательность GGGAAAATCC будет записана как . < < < ... > > > .
L < 100.
№ | Входной файл (input.txt ) |
Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Бойко | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 200 Мб | |
Выходной файл: | Стандартный выход |
Даны N нуклеотидных последовательностей ридов длиной L, полученных с участков генома коронавируса SARS-CoV2. Требуется написать программу, создающую граф де Брюйна, проверяющую наличие эйлерова пути и строящую по этому пути искомую нуклеотидную последовательность (геном). Кратными ребрами (мультиграф) пренебрегаем, то есть считаем за одно, если направление ребер одинаковое. Между альтернативными ребрами выбирается лексиграфически наименьшее. Длина вершины/узла графа должна быть равна 30 нуклеотидам, а ребро — 31. Количество вершин в графе обычно не более количества ридов.
Входной файл имеет формат FASTA и содержит L ридов.
Выходной файл должен содержать одну нуклеотидную последовательность (геном), если есть эйлеров путь по графу, иначе None
N < 4000
L ≤ 100.
№ | Входной файл (input.txt ) |
Стандартный выход |
---|---|---|
1 |
|
|