Автор: | Бойко | Ограничение времени: | 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 |
|
|