Encontrar proteínas en la secuencia de ADN

Tengo que hacer una tarea para una tarea universitaria y necesito entender algunas cosas antes de saber cómo hacerlo.

La tarea es la siguiente:

Encuentre coincidencias de proteínas conocidas (ADN-PolyI,II,III) con la secuencia específica de ADN de E.Coli.

Descargué en formato FASTA la secuencia proteica de DNA-Poly3 DNA-Poly1 de E.coli (cepa K-12) y toda la secuencia de DNA de E.Coli.

He estudiado un poco en línea y utilizando la gema BioRuby y el lenguaje de programación Ruby, escribí un programa que traduce el ADN en secuencias de proteínas. Luego traté de hacer coincidir la secuencia conocida de ADN-Poly3 pero no coincidió. Después de buscar un poco en línea nuevamente, aprendí sobre ORF y las 6 posibles formas de lectura de cada cuadro. Cuanto más largo, en términos de codones, se elige la conformación ORF, pero no hay forma de saber con seguridad que la proteína se hizo usando este marco.

Luego leí sobre cajas TATA, pero no puedo usarlas ya que solo se pueden encontrar en Eucariotas y Archaea.

Entonces, ¿cómo debo proceder para resolver este problema? ¿Cómo puedo probar que el ADN-Poly3 es producido por un área específica (gen) en la secuencia de ADN?

Gracias por tu tiempo,

PD. Las ideas y sugerencias son muy bienvenidas, ya que esto es solo la punta del iceberg para mí y estoy muy dispuesto a estudiar bioinformática :-)

EDITAR : esta es una actualización de la información solicitada en la respuesta relevante

Los archivos que he usado son los siguientes:

➜  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]

Puedes descargarlos aquí: E.Coli DNA y E.Coli DNA-Poly1 .

NOTA : Mi proteína de muestra es ADN polimerasa I (y no 3).

¿Necesita escribir un programa que haga esto o las herramientas existentes estarán bien?
Debería escribir el programa y poner una interfaz web.
Bien, pero ¿necesita un algoritmo totalmente nuevo o puede usar herramientas existentes como BLAST? Si se trata de un curso de informática, debe implementar los algoritmos usted mismo (supongo), si se trata de un curso de bioinformática, no debe reinventar la rueda. Hay muchos, muy, muy buenos, programas que ya hacen lo que necesitas. ¿Está bien integrarlos en su interfaz web?
Sí, no debería (de ninguna manera) reinventar nada. Puedo usar algoritmos que ya están en uso. Sé que hay herramientas muy sofisticadas para el trabajo. Lo que realmente quiero saber para empezar es cómo funciona, luego puedo usar algoritmos listos.
Para dar un ejemplo claro, todos mis datos provienen de ncbi (BLAST). ¿Cómo es que no puedo igualarlo? ¡He probado las 6 conformaciones posibles de ORF y todavía no puedo "producir" una secuencia que coincida con el ADN-Poly3! :-/
¿No son las secuencias RBS y Shine Delgarno un término de búsqueda mucho mejor?
Hola @bobthejoe, ¿podría darme enlaces y ofrecer una pista rápida sobre por qué son más adecuados?
La secuencia de ADN que tienes es el genoma completo de la bacteria. Contiene multitud de ORF que codifican todo tipo de proteínas. Lo que debe hacer es usar BLAST, o mucho mejor, exonerar como se describe en mi respuesta. Traducir el genoma completo y luego tratar de encontrar una sola proteína es increíblemente ineficiente y propenso a errores, además de muy difícil.
Estoy tratando de crear algunos resultados. Después de leer los manuales -tiene una cantidad increíble de opciones- usé el siguiente cli: exonerate -Q protein -T dna -E -m protein2genome:bestfit dna-polyI.e-coli.fasta e-coli-K12.fasta y estoy esperando a que termine. Mi hardware es un macbook air i5 1.7 Ghz con SSD.
Aquí solo le interesa el mejor resultado, ya que ese será el gen codificador. NO desea exhaustiva (E), que solo es útil para secuencias muy divergentes, no cuando se trabaja en la misma especie. Intente esto: exonerate -m p2g dna-polyI.e-coli.fasta e-coli-K12.fastatomó alrededor de 2 segundos en mi computadora portátil y el primer resultado es lo que desea.

Respuestas (3)

EDICIÓN IMPORTANTE: en su caso particular, si está trabajando con genes bacterianos, el empalme no es un problema ya que las bacterias no tienen intrones. Dejo la información aquí ya que le puede ser útil a alguien más. Sin embargo, le recomiendo que se concentre en los UTR, ya que probablemente sean los que le están causando problemas.


Hay tres cosas que podrían estar causándote problemas. Me referiré brevemente a cada uno. Hablaré de todos los genes, tenga en cuenta que las bacterias no tienen intrones, por lo que cualquier discusión sobre empalme y/o intrones y exones no es directamente relevante para su problema.

1. UTR

Las regiones no traducidas (UTR) son secuencias al principio y al final de un gen que no se traducen en proteína. Las UTR son regiones que forman parte de la secuencia genómica original, también forman parte del ARNm maduro (de hecho, las UTR a veces se modifican mediante eventos de empalme, son exones, no intrones) pero no se traducen en proteínas. Para ilustrar, eche un vistazo a esta representación simplificada de una molécula de ARNm:

ingrese la descripción de la imagen aquí

Solo los exones verdes llegarán a la proteína final. Los intrones se empalman y los UTR no se traducen.

Por lo tanto, si traduce el gen completo, no obtendrá la proteína correcta.

2. Marcos de lectura

Los genes se leen en palabras de tres letras (los codones). La secuencia ATGTGTACCTGA tiene seis marcos de lectura posibles (tres en cada hebra) que se pueden leer y traducir de la siguiente manera:

  • Marco 1 de 5'3'

        ATG TGT ACC TGA
         M   C   T  Stop
    
  • Marco 2 de 5'3'

        a TGT GTA CCT ga
           C   V   P    
    
  • Marco 3 de 5'3'

        at GTG TAC CTG a
            V   Y   L    
    
  • Marco 1 de 3'5'

    TCA GGT ACA CAT
     S   G   T   H  
    
  • Marco 2 de 3'5'

    t CAG GTA CAC at
       Q   V   H    
    
  • Marco 3'5' 3

    tc AGG TAC ACA t
        R   Y   T    
    

El ADN es de doble cadena. La secuencia de una hebra es complementaria a la de la otra, por lo tanto si tienes una hebra puedes inferir la secuencia de su complementaria. Los genes se pueden encontrar en cualquier hebra, los dos son biológicamente equivalentes. Sin embargo, los proyectos de secuenciación eligen uno de los dos hilos (al azar) y lo llaman el hilo más (+) y luego guardan todas las secuencias con respecto a ese hilo. Esto significa que, a veces, la secuencia genómica que descarga de una base de datos puede ser el complemento de la secuencia real que está buscando.

3. Nombres

Una vez escuché a alguien decir en una conferencia que

Los biólogos preferirían compartir un cepillo de dientes que el nombre de un gen.

Si bien eso puede ser un poco exagerado, las convenciones de nombres varían entre las comunidades de investigación y las especies y bases de datos. Entonces, ¿estás seguro de que has descargado el gen correcto? ¿De donde lo sacaste? ¿Cómo lo identificaste? ¿La secuencia también contiene regiones reguladoras aguas arriba/abajo, promotores, potenciadores y similares? Si publica la secuencia exacta que está intentando usar, puedo brindarle una ayuda más específica.

Por ejemplo, los primeros 20 resultados de la búsqueda de E. coli DNA Polymerase 3 en la base de datos de nucleótidos de ncbi son secuencias aleatorias del genoma completo. Estos no corresponden a la secuencia del gen que está buscando. Son piezas enormes del genoma (o incluso del genoma completo) que contendrán su gen y muchos otros. Mire la sección Herramientas a continuación para obtener sugerencias sobre cómo extraer su gen de todo el genoma.


4. Empalme (irrelevante para las bacterias)

Otro posible problema es el empalme . Comencemos con lo básico, el proceso de producción de una proteína eucariota (las bacterias no tienen intrones) a partir de una secuencia genómica se resume en la siguiente imagen (modificada ligeramente desde aquí ):

ingrese la descripción de la imagen aquí

La transcripción comienza en el sitio de inicio de la transcripción (TSS), pero no toda la secuencia transcrita se traduce en proteína. En primer lugar, los intrones se separan del ARNm para producir el ARNm maduro (otras cosas, como la protección y la adición de poli-A, también ocurren, pero no son relevantes aquí). Entonces, el ARNm maduro contiene los exones del gen codificante. Esto significa que una traducción lineal de la secuencia del gen no se corresponderá con la proteína producida. Deberá tener en cuenta el empalme.

Además, tenga en cuenta que el empalme cambiará el marco de lectura .

Ahora, si la secuencia ATGTse empalmara, por ejemplo, en AT/gt(la mayoría de los eventos de empalme se cortan/unen en los sitios GT/AG) y se unió con la secuencia agATTATT, la secuencia resultante (empalmada) sería (el proceso de empalme eliminará el gtde la primera secuencia y el agdel segundo):

ATATTATT

Como puede ver, el marco de lectura ahora ha cambiado. Donde antes, en el primer marco de lectura, teníamos el codón ATG, el codón canónico de iniciación de la traducción, ahora tenemos ATAlos códigos para la isoleucina (I). Espero que quede claro, el punto principal es que el empalme puede cambiar el marco de lectura.


5. Herramientas

Bien, ese fue el fondo. Ahora, lo que deberá hacer es usar programas existentes que modelen sitios de empalme y puedan alinear correctamente una secuencia de proteína con el ADN genómico. Mis favoritos personales son exonerate y genewise . En una distribución de Linux basada en Debian, puede instalarlos con este comando:

sudo apt-get install exonerate wise

Luego, para alinear la proteína con su gen, haga lo siguiente:

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

o

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

En mi experiencia, exonerar es (mucho) más rápido, pero genewise es un poco más preciso. Usualmente uso exonerar si estoy tratando con un genoma completo y genewise si solo tengo unas pocas kilobases de secuencia. Ambos son muy buenos y ambos podrán alinear una proteína con su genoma de origen.

No explicaré todas estas opciones porque eso está más allá del alcance de este sitio. Eche un vistazo a su documentación (que es bastante buena y clara) y si aún tiene problemas, puede hacer una pregunta en nuestro sitio hermano, Bioinformatics Stackexchange

Alternativamente, puede vincular su aplicación web al servicio BLAT del navegador ucsc genoma . Haga clic aquí para ver los resultados al alinear la proteína RPB1 de la subunidad RPB1 de la ARN polimerasa II dirigida por ADN humano .

¡Gracias por la respuesta! ¡Estudiaré la respuesta en un par de horas cuando tenga tiempo! ¡Gracias por tu tiempo!
Solo para hacerle saber, la forma de agradecer en los sitios de la red de Stack Exchange es votar a favor de la respuesta y, si (y solo si) responde a su pregunta, aceptarla. Las gracias siempre son apreciadas, por supuesto, solo les estoy informando cómo funcionan estos sitios. De todos modos, de nada :).
El OP preguntó sobre una proteína de E. coli y el genoma de E. coli. No creo que su problema tenga nada que ver con el empalme.
@AlanBoyd ah, tienes un buen punto. Probablemente hasta los UTR entonces. Editaré mi respuesta.
Hola, gracias por la explicación, fue esclarecedor, intentaré trabajar en eso esta noche. ¿Sabes cuál es el principal procedimiento por el cual la proteína se alinea al ADN? :-) ¡Gracias de nuevo!
Vuelva a leer mi respuesta, hice una edición sustancial. Puedes ignorar todo lo que dije sobre el empalme. Como @AlanBoyd señaló muy correctamente, si está trabajando con bacterias, no es un factor. En cuanto a la alineación de proteínas con el ADN, use exonerar o genewise como se describe. También puede usar un navegador de genoma como ucsc o ensembl.
¡Claro, ya lo hice! ¡Gracias de nuevo por los consejos!
@terdon Modifiqué mi pregunta inicial y agregué algunas preguntas más específicas. Gracias por tu ayuda, es muchísima ! ¡Me ahorraste bastante tiempo!
@terdon Sin embargo, los proyectos de secuenciación eligen uno de los dos hilos (al azar) y lo llaman el hilo más (+) y luego guardan todas las secuencias con respecto a ese hilo. Esto significa que, a veces, la secuencia genómica que descarga de una base de datos puede ser el complemento de la secuencia real que está buscando. ¿Cuáles son las serias implicaciones de este método? Explíquelo. Gracias.
@Raghavakrishna, ¿qué quieres decir? ¿Qué método? Si te refieres a las dos herramientas que mencioné, exonerar busca en ambos hilos de forma predeterminada y genewise lo hace si le das la -trevbandera.
@terdon Me refiero a los métodos utilizados por los proyectos de secuenciación para elegir uno de los dos hilos (al azar) y llamarlo hilo más (+) y luego guardar todas las secuencias con respecto a ese hilo
@Raghavakrishna Todavía no entiendo lo que estás preguntando. Los proyectos de secuenciación secuencian una hebra y la llaman +hebra y luego extrapolan la secuencia de la -hebra. Si tiene alguna pregunta sobre esto, formule una nueva pregunta para que pueda explicarla claramente y obtener una respuesta completa.

Por lo que vale, he replicado lo que está tratando de hacer usando un script de Python. Esto no es elegante, pero solo quería comprobar que es posible y que realmente hay una coincidencia.

pseudocódigo es

tomar la secuencia del genoma

hacer una secuencia de complemento inversa

para cada una de las dos secuencias de ADN, para cada uno de los tres marcos de lectura:

traducir el ADN en una sola cadena de aminoácidos con "*" en los codones de parada

divide la cadena en los caracteres "*", llama a estas palabras

encuentre el primer residuo Met en cada palabra, la cadena desde ese Met hasta el final de la palabra es un ORF

si el ORF es >99 (corte arbitrario) póngalo en una gran lista de ORF

ahora tiene una lista de todos los ORF en los 6 marcos de lectura

busque en esta lista una coincidencia con la secuencia polI (en realidad solo busqué la primera línea en la secuencia fasta).

El hit es idéntico a toda la secuencia polI en una alineación CLUSTAL.

Tenga en cuenta que este algoritmo no detecta ningún ORF que cruce el punto de ruptura en la secuencia lineal que representa el genoma circular de E coli . También se supone que todos los codones de iniciación son ATG/Met, pero me parece recordar que algunos codones de iniciación de E.coli son GTG/Val

En lugar de hacerlo todo desde cero, si tuviera su propia instancia de BLAST, crearía una base de datos ampliable de su secuencia de e.coli y haría tblastn, con su supuesta secuencia de proteína polimerasa como consulta.

Esto encontraría la mejor secuencia coincidente en el genoma y funcionará incluso si hay una buena cantidad de diferencias entre la proteína que le diste y lo que realmente se traduce en tu secuencia de ADN.