кластеризовать короткие, однородные строки (ДНК) в соответствии с общими подструктурами и извлечь консенсус классов - PullRequest
5 голосов
/ 02 октября 2009

Задача:
сгруппировать большой пул коротких фрагментов ДНК в классах, которые имеют общие шаблоны подпоследовательностей, и найти консенсусную последовательность каждого класса.

  • Бассейн: ок. 300 последовательностей фрагментов
  • 8 - 20 букв на фрагмент
  • 4 возможных буквы: a, g, t, c
  • каждый фрагмент структурирован в трех областях:
    1. 5 общих букв
    2. 8 или более позиций g и c
    3. 5 общих букв
      (В качестве регулярного выражения это будет [gcta]{5}[gc]{8,}[gcta]{5})

План:
выполнить множественное выравнивание (то есть withClustalW2), чтобы найти классы, которые имеют общие последовательности в области 2 и их согласованные последовательности.

Вопросы:

  1. Являются ли мои фрагменты слишком короткими, и поможет ли это увеличить их размер?
  2. Является ли область 2 слишком однородной, только с двумя разрешенными типами букв, для отображения шаблонов в ее последовательности?
  3. Какие альтернативные методы или инструменты вы можете предложить для этой задачи?

С уважением,

Simon

Ответы [ 2 ]

2 голосов
/ 16 ноября 2009

Да, 300 ДАЛЕКО СЛИШКОМ МНОГО, учитывая, что это человеческий геном, и вы, по сути, просто ищете конкретный 8-член. В геноме имеется 65 536 возможных 8-членных и 3 000 000 000 уникальных оснований (при условии, что вы смотрите на весь геном, а не только на генные или кодирующие области). Вы найдете G / C, содержащий последовательности 3 000 000 000/65 536 * 2 ^ 8 = ~ 12 000 000 раз (и, вероятно, намного больше, поскольку геном полон островков CpG по сравнению с другими вещами). Почему выбирают только 300?

Вы не хотите использовать регулярные выражения для этой задачи. Просто начните с хромосомы 1, найдите первый CG или GC и продолжайте, пока не получите свой первый не-G-или-C. Затем возьмите эту последовательность, ее контекст и сохраните ее (в БД). Промыть и повторить.

Для этого проекта Clustal может быть излишним - но я не знаю ваших целей, поэтому не могу быть уверен. Если вас интересует только регион GC, то вы можете сделать несколько простых кластеров, например:

  1. Создайте запись в базе данных для каждого главного счетчика (2 ^ 8 = 256 всего).
  2. Возьмите каждый GC-регион и пройдите по нему, чтобы увидеть, в каких 8-членах он содержится.
  3. Пометить каждый GC-регион последовательностями, которые он содержит.

Теперь для каждого 8-го числа у вас есть тысячи последовательностей, которые его содержат. Я оставлю анализ данных на ваше усмотрение.

1 голос
/ 02 октября 2009

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

...