• Регистрация
savella
savella 0.00
н/д

Вопрос по обработке цифрового сигнала

28.11.2019
Здравствуйте.Расскажу о задаче над которой работаю.Есть подход представления биомолекул в виде последовательности качественно отличающихся друг от друга состояний. Например для молекулы ДНК, в состав...

Здравствуйте.

Расскажу о задаче над которой работаю.

Есть подход представления биомолекул в виде последовательности качественно отличающихся друг от друга состояний. Например для молекулы ДНК, в состав которой входит 4 разных вида оснований (A C G T) любую последовательность можно представить в виде набора букв ACCGTTGGGTTCGCGCGC... Для молекулы ДНК характерны длины 50-100*10^6 букв.
То есть 1D массив, где каждой букве соответствует индекс от 1 до..


Для молекулы ДНК, кроме ее "буквенного состава" известны различные биологические и физические параметры.
Например какие-то участки отвечают за одно а какие-то за другое. Одни обладают постоянством состава в эволюции ( то есть очень похожи у ящериц, рыб, человека мыши), какие-то наоборот. Кроме того есть физические параметры, например структура связей между "буквам", для исследования которой можно преобразовать 4х буквенный код ( A C G T) В более или менее вырожденные коды. Например для типов оснований ( CG - сильные AT - слабые) код будет двухбуквенным ( 1 - сильные, 0 - слабые), а для каких-то исследований - 4 буквы превращаются в 6 и более разных букв. Кроме того есть задача маскировки ( исключения из области наблюдения) определенных фрагментов последовательности. То есть когда часть последовательности я приравниваю к non significant.

В общем задача, в первом приближении, сводится к сопоставлению массивов(одинаковой размерности) вида

Массив ДНК : ACGTTTTGCGCGC...
Массив данных о ДНК ( например данные о консервации в эволюции): 0 0 0 0 0 0 0 25 27 28 28 27 25
Массив перекодированной ДНК ( сильные\слабые) 0 1 1 0 0 0 0 1 1 1 1 1 1 
и так далее.

Нужно научиться видеть закономерности ( периодичность, фрактальность, иные закономерности ) внутри массивов ДНК и перекодированной ДНК ( статистически достоверно, с возможностью понять с чем та или иная закономерность связана)
Нужно сопоставлять массивы ДНК ( и в перекодированном виде тоже) и массивы данных о ДНК, для изучения корреляций, статистической значимости итд.

Приведу пример(смотрите P.S).

Мне интересно, существует ли внутренняя периодичность у последовательности ДНК ( оригинальной, то есть A C G T, и в различных перекодировках) внутренняя периодичность с шагом 80 букв.
То есть если взять участок в 800 букв, то будет ли там автокорреляции на длине 80, насколько она отличается от других автокорреляций ( с шагом 10 например), и как мне ее увидеть (различить) не на тестовой ( искусственной последовательности) а на достаточно большом массиве данных ( сотни тысяч - миллионы букв).
Нужно научиться сравнивать автокорреляцию шага 80, с автокорреляцией других шагов ( например 65) и видеть, что для таких последовательностей автокорреляция на 80 статистически значимо выше чем 65, а для других - нет.

Моя мысль состоит в том, что бы перевести ДНК в универсальный цифровой вид ( заменить буквы числами) и исследовать ее как сигнал ( спектр, фурье, фильтры и пр). Практическим навыкам нужно учиться. 

Буду очень признателен за интерес к теме, вопросы советы, и подсказки.

С уважением Иван Викторович

 

P.S.

Существует дискретная последовательность (5 возможных различных состояний)

На сейчас я представляю различные состояния исходной последовательности в численном виде ( например 1 состояние - 50, 2 состояние - 100, 3 состояние - 150, 4 состояние - 200 5 состояние - 0)

Есть тестовая последовательность длинной 80 букв  повторенная 10 раз

_80_.....х10_80.  

В функци autocorr вижу так ( четкий пик на 80, взят лаг 320)

 

Хочется увидеть результат в виде единого пика на 80.

Подскажите пожалуйста, как это сделать ?

 

Спасибо

Теги

    28.11.2019

    Комментарии

    • _______ ____________
      _______ ____________ -1.52
      4.12.2019 09:14

      Приведите Ваш код, пожалуйста.

      • savella
        savella0.00
        9.12.2019 16:52

        Уважаемые Nameless.

         

        Для желающих попробовать себя на реальных данных я подготовил папку с набором данных

        В ней лежит описание файлов и возникших методических вопросов.

        Буду рад интересным решениям на базе Матлаб. Спасибо за интерес к теме.

        Ниже я коротко опишу задачу ( подробнее в документе по ссылке):

        В подпапке test seq находятся 2 тестовые последовательности, плюс различные варианты их представлений.

        1 тестовая последовательность 1 : 10 раз последовательно повторенные 80 букв геномного алфавита ( ACGT). 

        Последовательность представлена в 3 вариантах

        Pri_10_80.fa - 80 букв расположены в 10 строках (одна под другой) - должна читаться линейно (то есть после 80 символа первой строки идет 1 символ второй строки и так далее).

        hd41_10_80_BTYPE.fa - эта же последовательность, представленная в вырожденном виде

        Буквам AG соответствует r а буквам CT - y

        \Number\pri_10_80_num.fa - та же последовательность, переведенная в численный вид, в которой A = 50 C = 100 G = 150 T = 200 

        Задача увидеть четкий период в 80 букв

        --------------

         

        2 тестовая последовательность 2: состоящая из двух противоположных друг другу участков ( rrrrrrrrrryryrryyyrr и yyyyyyyyyyryryyrrryy) повторенных 20 раз ( общая длинна 800 = ((20+20)*20)

        Последовательность представлена в 2 вариантах

        Hd41_test20.fa - в виде r и y букв

        \Number\hd41_test20_num.fa - численный вид ( r = 50 y = 150)

        Задача - увидеть четкую корреляцию на 40 и антикорреляцию на 20

         

        ---------------

         

        В подпапке real data находятся вариации реальных данных (размер 500000 букв), на которых можно проверять методы и гипотезы.

      • _______ ____________
        _______ ____________ -1.52
        9.12.2019 17:09

        Я попробую, как выйду из отпуска.