Автор: | Бойко | Ограничение времени: | 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- будет a0G − = 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 − }, затем переходные вероятности для каждого state1 − state2, где state ∈ {A − , C − , G − , T − , A + , C + , G + , T + }. Порядок вывода вероятности лексиграфический, в соответствии с порядком в state.
При расчетах вероятности выражаем в натуральном логарифме и округляем до 5-го знака после запятой.
C < 12
L < 100000.
№ | Входной файл (input.txt ) |
Стандартный выход |
---|---|---|
1 |
|
|