Распределения аппроксимации, степень согласия, значение p. Можно ли сделать это с помощью Scipy (Python)?

ВВЕДЕНИЕ: Я биоинформатик. В своем анализе, который я выполняю для всех генов человека (около 20 000), я ищу конкретный мотив короткой последовательности, чтобы проверить, сколько раз этот мотив встречается в каждом гене.

Гены «записаны» в линейной последовательности четырьмя буквами (A, T, G, C). Например: CGTAGGGGGTTTAC ... Это четырехбуквенный алфавит генетического кода, который похож на секретный язык каждой клетки, именно так ДНК на самом деле хранит информацию.

Я подозреваю, что частые повторения определенной последовательности коротких мотивов (AGTGGAC ) в некоторых генах имеют решающее значение для определенного биохимического процесса в клетке. Поскольку сам мотив очень короткий, с помощью вычислительных инструментов трудно отличить истинные функциональные примеры в генах от тех, которые выглядят похожими случайно. Чтобы избежать этой проблемы, я получаю последовательности всех генов, объединяю их в одну строку и перемешиваю. Сохраняли длину каждого из исходных генов. Затем для каждой исходной длины последовательности была построена случайная последовательность путем многократного случайного выбора A, T, G или C из объединенной последовательности и передачи ее в случайную последовательность. Таким образом, результирующий набор рандомизированных последовательностей имеет такое же распределение длины, как и общий состав A, T, G, C. Затем я ищу мотив в этих рандомизированных последовательностях. Я выполнил эту процедуру 1000 раз и усреднил результаты.

15000 генов, не содержащих данный мотив 5000 генов, содержащих 1 мотив 3000 генов, содержащих 2 мотива 1000 генов, содержащих 3 мотива ... 1 ген, содержащий 6 мотивов

Таким образом, даже после 1000-кратной рандомизации истинного генетического кода не существует генов с более чем 6 мотивами. Но в истинном генетическом коде есть несколько генов, которые содержат более 20 вхождений мотива, что позволяет предположить, что эти повторения могут быть функциональными, и маловероятно, что они будут обнаружены в таком количестве случайно.

ПРОБЛЕМА: Я хотел бы знать вероятность нахождения гена, скажем, с 20 встречами мотива в моем распределении. Поэтому я хочу знать вероятность случайного обнаружения такого гена. Я хотел бы реализовать это в Python, но не знаю, как.

Могу ли я провести такой анализ в Python?

Любая помощь будет признательна.

18
задан Saullo G. P. Castro 19 November 2015 в 08:22
поделиться