¿Alineación de codones a través de Python? [cerrado]

Tengo pares de secuencias de ADN codificantes que deseo realizar alineaciones de codones por pares a través de Python , he "completado la mitad" del proceso.

Hasta ahora..

  • Recupero pares de secuencias de ADN ortólogas del genbank usando Biopythonel paquete.
  • Traduzco los pares ortólogos en secuencias de péptidos y luego los alineo usando EMBOSS Needleel programa.

Yo deseo..

  • Transfiera las lagunas de las secuencias peptídicas a las secuencias de ADN originales.

Pregunta

Agradecería sugerencias de programas/códigos (llamados desde Python) que puedan transferir espacios de pares de secuencias peptídicas alineadas a codones de los pares de secuencias de nucleótidos correspondientes. O programas/código que pueden llevar a cabo la alineación de codones por pares desde cero.

ingrese la descripción de la imagen aquí

¿Por qué no simplemente alineas las secuencias de nucleótidos en primer lugar? Simplemente use cualquier software de alineación.
Las alineaciones de codones tienen un propósito, solo de esta manera puede obtener valores de tasas de mutación no sinónimas (dN) y sinónimas (dS) ... que luego pueden usarse para obtener la relación dN / dS utilizada para inferir la selección
Puede hacerlo con bastante facilidad a partir de la secuencia de ADN, sin necesidad de traducir. Simplemente alinee y lea los codones de la alineación. Parece que te estás complicando la vida innecesariamente. Dicho esto, esto es probablemente demasiado geek de la computadora para este sitio y sería mejor que preguntaras en biostars .
De todos modos, simplemente crearía un hash (un dictado que creo que se llaman en Python) que vincula cada aminoácido a su codón. Luego, una vez que tenga su alineación, léala y use el dict para volver a traducir a los codones originales insertando los espacios a medida que los encuentre.
Esta pregunta parece estar fuera de tema porque se trata de programación y no de biología. Las preguntas de bioinformática están en el tema aquí si se trata de los conceptos subyacentes, está preguntando un problema muy técnico cuya respuesta será el código.
Buen punto sobre el "demasiado técnico", hmm, aunque he visto varias preguntas técnicas con respecto al software y al protocolo de laboratorio. Además, si realmente usara alineaciones de ADN, ¿no obtendría codones superpuestos debido a los tamaños de los espacios que no son un múltiplo de 3? Estoy haciendo alineaciones de codones, ya que es un procedimiento estándar para el análisis de dN/dS; aquí hay una explicación: hiv.lanl.gov/content/sequence/CodonAlign/…
Lo conozco bastante, gracias :). Hice mi doctorado en genómica comparativa y reconstrucción de historias evolutivas, he hecho más alineaciones de las que quisiera recordar. Necesita saber si dos codones son sinónimos o no para obtener el dN/dS, pero no necesariamente para traducirlos, es solo una manera fácil de verificar. De todos modos, usando mi sugerencia de dictado, esto es bastante trivial. Siéntete libre de enviarme un @ping en Biology Chat si necesitas más ayuda.
Guarde el código genético en un diccionario; Use algún codón predeterminado para cada uso de aminoácido ---para un espacio indicado en la secuencia peptídica por -. La forma de hacerlo en python es: gcode={} gcode['M']='ATG' gcode['-']='---'... y así sucesivamente. Luego, divida la secuencia de entrada y busque cada letra en el diccionario.

Respuestas (1)

El proceso básico sería (en pseudocódigo, no sé Python lo suficiente, soy un geek de Perl):

$seq1=ATGCCAGGCTGA
$seq2=ATGGGACCATAA;
for ($i=0;$i<length($seq1);$i++){
   codons1[$i]=amino_acid
}
for ($i=0;$i<length($seq2);$i++){
       codons2[$i]=amino_acid
}

En este punto, tendrá dos matrices o hashes o tuplas o dictados o lo que sea que contenga el aminoácido que corresponde a cada posición de codón de las secuencias de entrada. Usted va y hace su traducción y lo de dS/dN y luego puede usar estas listas para mapear de nuevo a los nucleótidos originales:

for ($i=0;$i<length($ProteinSseq1);$i++){
  print codons1[$i]
}

Deberá adaptar esto para manejar los codones correctamente (i ++ solo se incrementará en uno, debe extraer los tripletes) y luego leer los espacios, pero todos estos son problemas de programación que no tienen nada que ver con el lado biológico de las cosas.