Нахождение белков в последовательности ДНК

Мне нужно выполнить задание для университетского задания, и мне нужно понять некоторые вещи, прежде чем понять, как это сделать.

Задача следующая:

Найдите совпадения известных белков (ДНК-PolyI,II,III) с определенной последовательностью ДНК E.Coli.

Я скачал в формате FASTA белковую последовательность DNA-Poly3 DNA-Poly1 E.coli (штамм К-12) и всю последовательность ДНК E.Coli.

Я немного изучил онлайн и, используя гем BioRuby и язык программирования Ruby, написал программу, которая переводит ДНК в последовательность белка. Затем я попытался сопоставить известную последовательность ДНК-Poly3, но она не совпала. Снова немного поискав в сети, я узнал об ORF и 6 возможных способах чтения каждого кадра. Выбирается более длинная, с точки зрения кодонов, конформация ORF, но нет возможности с уверенностью сказать, что белок был создан с использованием этой рамки.

Затем я читал о коробках ТАТА, но я не могу их использовать, так как они есть только у эукариот и архей.

Итак, как мне действовать, чтобы решить эту проблему: как я могу доказать , что ДНК-Poly3 производится определенной областью (геном) в последовательности ДНК?

Спасибо за ваше время,

пс. Идеи и подсказки очень приветствуются, так как для меня это только вершина айсберга, и я очень хочу изучать биоинформатику :-)

РЕДАКТИРОВАТЬ : это обновление для информации, запрошенной в соответствующем ответе.

Файлы, которые я использовал, следующие:

➜  Bioinfo  ruby dogma.rb 
----------------
DNA Length: 4639675
gi|48994873|gb|U00096.2| Escherichia coli str. K-12 substr. MG1655, complete genome
----------------
DNA Poly-1 sample: 928
gi|16131704|ref|NP_418300.1| fused DNA polymerase I 5'->3' polymerase/3'->5' exonuclease/5'->3' exonuclease [Escherichia coli str. K-12 substr. MG1655]

Вы можете скачать их здесь: E.Coli DNA и E.Coli DNA-Poly1 .

ПРИМЕЧАНИЕ . Белок моего образца представляет собой ДНК-полимеразу I (а не 3).

Вам нужно написать программу, которая делает это, или существующие инструменты будут в порядке?
Я должен написать программу и установить веб-интерфейс.
Хорошо, но нужен ли вам совершенно новый алгоритм или вы можете использовать существующие инструменты, такие как BLAST? Если это курс компьютерных наук, вы должны реализовать алгоритмы самостоятельно (я думаю), если это курс биоинформатики, вы не должны изобретать велосипед. Есть много, очень, очень хороших программ, которые уже делают то, что вам нужно. Можно ли интегрировать их в ваш веб-интерфейс?
Да, я не должен (ни в коем случае) ничего изобретать заново. Я могу использовать уже используемые алгоритмы. Я знаю, что есть очень сложные инструменты для работы. Что я действительно хочу знать для начала, так это то, как это работает, а затем я могу использовать готовые алгоритмы.
Чтобы привести ясный пример, все мои данные взяты из ncbi (BLAST). Почему я не могу соответствовать этому? Я испробовал все 6 возможных конформаций ORF, но до сих пор не могу «создать» последовательность, которая соответствует ДНК-Poly3! :-/
Разве последовательности RBS и Shine Delgarno не намного лучше для поиска?
Здравствуйте, @bobthejoe, не могли бы вы дать мне ссылки и подсказать, почему они лучше подходят?
Последовательность ДНК, которая у вас есть, представляет собой полный геном бактерии. Он содержит множество ORF, кодирующих все виды белков. Что вам нужно сделать, так это использовать BLAST или, что еще лучше, реабилитировать, как описано в моем ответе. Перевод всего генома, а затем попытка найти один единственный белок невероятно неэффективны и подвержены ошибкам, а также очень сложны.
Я пытаюсь создать некоторые результаты. Почитав мануалы - вариантов у него невероятное количество - воспользовался следующим cli: exonerate -Q protein -T dna -E -m protein2genome:bestfit dna-polyI.e-coli.fasta e-coli-K12.fasta и жду когда закончит. Мое оборудование — MacBook Air i5 1,7 ГГц с SSD.
Здесь вас интересует только лучший результат, поскольку он будет кодирующим геном. Вам НЕ нужен исчерпывающий (E), который полезен только для сильно расходящихся последовательностей, а не при работе с одними и теми же видами. Попробуйте это: exonerate -m p2g dna-polyI.e-coli.fasta e-coli-K12.fastaна моем ноутбуке это заняло около 2 секунд, и первый результат — это то, что вы хотите.

Ответы (3)

ВАЖНАЯ РЕДАКТИРОВКА: В вашем конкретном случае, если вы работаете с бактериальными генами, сплайсинг не является проблемой, поскольку у бактерий нет интронов. Я оставляю информацию здесь, так как она может быть полезна кому-то еще. Тем не менее, я рекомендую вам сосредоточиться на UTR, поскольку они, вероятно, вызывают у вас проблемы.


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

1. УТР

Нетранслируемые области (UTR) — это последовательности в начале и в конце гена, которые не транслируются в белок. UTR - это области, которые являются частью исходной геномной последовательности, они также являются частью зрелой мРНК (действительно, UTR иногда модифицируются в результате сплайсинга, это экзоны, а не интроны) , но они не транслируются в белок. Для иллюстрации взгляните на это упрощенное представление молекулы мРНК:

введите описание изображения здесь

Только зеленые экзоны превратятся в конечный белок. Интроны сплайсируются, а UTR не транслируются.

Поэтому, если вы транслируете весь ген, вы не получите правильный белок.

2. Рамки чтения

Гены читаются словами из трех букв (кодоны). Последовательность ATGTGTACCTGA имеет шесть возможных рамок считывания (по три на каждой цепи), которые можно прочитать и перевести следующим образом:

  • 5 футов 3 фута Кадр 1

        ATG TGT ACC TGA
         M   C   T  Stop
    
  • 5 футов 3 фута Рама 2

        a TGT GTA CCT ga
           C   V   P    
    
  • 5 футов 3 фута Рама 3

        at GTG TAC CTG a
            V   Y   L    
    
  • 3'5' Кадр 1

    TCA GGT ACA CAT
     S   G   T   H  
    
  • 3'5' Кадр 2

    t CAG GTA CAC at
       Q   V   H    
    
  • 3'5' Кадр 3

    tc AGG TAC ACA t
        R   Y   T    
    

ДНК двухцепочечная. Последовательность одной нити комплементарна последовательности другой, поэтому, если у вас есть одна нить, вы можете сделать вывод о последовательности комплементарной ей. Гены могут быть найдены на любой цепи, они биологически эквивалентны. Однако проекты секвенирования выбирают одну из двух цепочек (случайным образом) и называют ее плюсовой (+) цепочкой, а затем сохраняют все последовательности, относящиеся к этой нити. Это означает, что иногда геномная последовательность, которую вы загружаете из базы данных, может дополнять искомую фактическую последовательность.

3. Имена

Однажды я услышал, как кто-то сказал на конференции, что

Биологи скорее поделятся зубной щеткой, чем именем гена.

Хотя это может быть немного преувеличено, соглашения об именах различаются между исследовательскими сообществами, видами и базами данных. Итак, вы уверены , что загрузили правильный ген? Откуда вы это взяли? Как вы это определили? Содержит ли последовательность также выше/ниже регуляторные области, промоторы, энхансеры и т.п.? Если вы опубликуете точную последовательность, которую вы пытаетесь использовать, я могу дать вам более конкретную помощь.

Например, первые 20 совпадений при поиске E. coli DNA Polymerase 3 в базе данных нуклеотидов ncbi представляют собой последовательности дробовика всего генома. Они не соответствуют последовательности генов, которую вы ищете. Это огромные фрагменты генома (или даже всего генома), которые будут содержать ваш ген и многие другие. Посмотрите в разделе «Инструменты» ниже предложения по извлечению вашего гена из всего генома.


4. Сплайсинг (не относится к бактериям)

Другой возможной проблемой является сплайсинг . Давайте начнем с основ, процесс производства эукариотического (у бактерий нет интронов) белка из геномной последовательности показан на изображении ниже (слегка изменено отсюда ):

введите описание изображения здесь

Транскрипция начинается с сайта начала транскрипции (TSS), но не вся транскрибируемая последовательность транслируется в белок. Во-первых, интроны вырезаются из мРНК с образованием зрелой мРНК (другие вещи, такие как кэпирование и добавление поли-А, также имеют место, но здесь не имеют значения). Итак, зрелая мРНК содержит экзоны кодирующего гена. Это означает, что линейная трансляция последовательности гена не будет соответствовать полученному белку. Вам нужно будет принять во внимание сплайсинг.

Также имейте в виду, что сплайсинг изменит рамку считывания .

Теперь, если последовательность ATGTбыла сплайсирована, например, AT/gt(большинство событий сплайсинга вырезаются/соединяются в сайтах GT/AG) и соединяется с последовательностью agATTATT, результирующая (сплайсированная) последовательность будет (процесс сплайсинга удалит gtиз первой последовательности и agвторой):

ATATTATT

Как видите, рамка считывания теперь изменилась. Там, где раньше в первой рамке считывания у нас был кодон ATG, кодон инициации канонической трансляции, теперь у нас есть ATAкоды изолейцина (I). Надеюсь, это понятно, главное, что сплайсинг может изменить рамку считывания.


5. Инструменты

Хорошо, это был фон. Теперь вам нужно использовать существующие программы, которые моделируют сайты сплайсинга и могут правильно выровнять последовательность белка с геномной ДНК. Мои личные фавориты - реабилитационные и генетические . В дистрибутиве Linux на основе Debian вы можете установить их с помощью этой команды:

sudo apt-get install exonerate wise

Затем, чтобы выровнять белок с его геном, выполните:

exonerate -m protein2genome -n 1 prot.fa dna.fa > out.txt 

или же

genewise -pep -pretty -gff -cdna prot.fa dna.fa > out.txt 

По моему опыту, exonerate (намного) быстрее, но Genewise немного точнее. Я обычно использую exonerate, если имею дело с целым геномом, и генетически, если у меня есть только несколько килобаз последовательности. Оба очень хороши, и оба смогут привести белок в соответствие с его исходным геномом.

Я не буду объяснять все эти варианты, потому что это выходит за рамки этого сайта. Взгляните на их документацию (которая довольно хороша и понятна), и если у вас все еще есть проблемы, вы можете задать вопрос на нашем дочернем сайте, Bioinformatics Stackexchange.

Кроме того, вы можете связать свое веб-приложение со службой BLAT браузера генома ucsc. Щелкните здесь, чтобы просмотреть результаты выравнивания белка RPB1 субъединицы РНК-полимеразы II, управляемой ДНК человека .

Спасибо за ответ! Изучу ответ через пару часов, когда будет время! Спасибо за ваше время!
Просто чтобы вы знали, способ поблагодарить на сетевых сайтах Stack Exchange - это проголосовать за ответ и, если (и только если) он отвечает на ваш вопрос, принять его. Спасибо, конечно, всегда приветствуется, я просто сообщаю вам, как работают эти сайты. В любом случае, вам очень рады :).
ОП спросил о белке E. coli и геноме E. coli. Я не думаю, что его проблема как-то связана со сплайсингом.
@AlanBoyd ах, ты правильно заметил. Тогда, вероятно, вплоть до UTR. Я отредактирую свой ответ.
Привет, спасибо за объяснение, это было поучительно, я попробую поработать над этим сегодня вечером. Знаете ли вы, какова основная процедура, с помощью которой белок выравнивается с ДНК? :-) Спасибо еще раз!
Пожалуйста, перечитайте мой ответ, я внес существенные изменения. Вы можете игнорировать все, что я сказал о сплайсинге. Как очень правильно заметил @AlanBoyd, если вы работаете с бактериями, это не имеет значения. Что касается выравнивания белков с ДНК, используйте exonerate или genewise, как описано. Вы также можете использовать браузер генома, такой как ucsc или ensembl.
Конечно, уже сделал! Еще раз спасибо за советы!
@terdon Я изменил свой первоначальный вопрос и добавил несколько конкретных вопросов! Спасибо за помощь, очень- очень ! Вы спасли меня довольно много времени!
@terdon Однако проекты секвенирования выбирают одну из двух цепочек (случайным образом) и называют ее плюсовой (+) цепочкой, а затем сохраняют все последовательности, относящиеся к этой нити. Это означает, что иногда геномная последовательность, которую вы загружаете из базы данных, может быть дополнением к реальной последовательности, которую вы ищете. Каковы серьезные последствия этого метода? Пожалуйста, уточните.
@ Рагхавакришна, что ты имеешь в виду? Какой метод? Если вы имеете в виду два инструмента, которые я упомянул, exonerate ищет обе нити по умолчанию, и Genewise делает это, если вы установите для него -trevфлаг.
@terdon Я имел в виду методы, используемые в проектах секвенирования, чтобы выбрать одну из двух цепочек (случайным образом) и назвать ее плюсовой (+) цепочкой, а затем сохранить все последовательности, относящиеся к этой цепочке.
@ Рагхавакришна, я до сих пор не понимаю, о чем ты спрашиваешь. Проекты секвенирования секвенируют одну цепочку и называют ее +цепочкой, а затем экстраполируют последовательность -нити. Если у вас есть вопрос по этому поводу, пожалуйста, задайте новый вопрос , чтобы вы могли четко объяснить его и получить полный ответ.

Что бы это ни стоило - я воспроизвел то, что вы пытаетесь сделать, используя скрипт Python. Это не элегантно, но я просто хотел проверить для вас, что это возможно, и что совпадение действительно есть.

псевдокод

взять последовательность генома

составить обратную комплементарную последовательность

для каждой из двух последовательностей ДНК, для каждой из трех рамок считывания:

перевести ДНК в единую цепочку аминокислот со знаком «*» на стоп-кодоне

разбить строку по символам "*", назвать эти слова

найти первый остаток Met в каждом слове, строка от этого Met до конца слова является ORF

если ORF> 99 (произвольное отсечение), поместите его в большой список ORF.

теперь есть список всех ORF во всех 6 рамках считывания

найдите в этом списке совпадение с последовательностью polI (на самом деле я только что искал первую строку в последовательности fasta).

Попадание идентично всей последовательности polI в выравнивании CLUSTAL.

Обратите внимание, что этот алгоритм не обнаруживает ORF, которые пересекают точку разрыва в линейной последовательности, представляющей кольцевой геном кишечной палочки . Также предполагается, что все инициирующие кодоны - ATG/Met, но я, кажется, припоминаю, что некоторые инициирующие кодоны E.coli - GTG/Val.

Вместо того, чтобы делать все это с нуля, если бы у вас был собственный экземпляр BLAST, вы бы создали взрывоопасную базу данных вашей последовательности e.coli и сделали tblastn с вашей предполагаемой последовательностью белка полимеразы в качестве запроса.

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