• Publicidad

Duda con ORF

Perl aplicado a la bioinformática

Duda con ORF

Notapor lalou28 » 2011-09-09 21:17 @928

¡¡¡Hola!!!
Soy una principiante en esto de programación y estoy haciendo un programa para hallar ORF e imprimir las posibles proteínas.

Algunos de los inconvenientes que he tenido son:

* cuando imprimo $proteina me muestra las proteínas juntas y he intentado imprimir el salto cuando encuentra
un codón de parada pero no he sido capaz de hacerlo
*cuando le doy la opción de abrir un archivo con lo impreso, me abre solo las proteínas del primer marco de lectura.

¡¡¡Agradezco su ayuda!!!

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. #programa para determinar ORF en una secuencia de DNA
  4. $secuencia = 'SeqBacillus_DNA.fasta';
  5. open( SECUENCIA, $secuencia );
  6. @secuencia = <SECUENCIA>;              ####Creación de fichero
  7. close SECUENCIA;
  8.  
  9. my $nuevav = join( "", @secuencia );   #convierto el array en un string
  10.  
  11. ###HAY Q TENER VARIAS COSAS EN CUENTA ANTES DE INICIAR, LO PRIMERO ES QUE PARA
  12. ##DETERMINAR LOS ORF DE UNA SECUENCIA ES NECESARIO BUSCAR EN TODOS LOS MARCOS DE LECTURA DE LAS DOS CADENAS
  13. ##QUE SERÍAN TRES PARA CADA UNA, ESO QUIERE DECIR QUE HAY QUE BUSCAR LOS ORF POSIBLES INICIANDO EN CUALQUIERA
  14. ##DE LOS 3 NUCLEÓTIDOS...O SEA PARTIRIAMOS DE UNA POSICIÓN 0 A LA 1 Y LA 2
  15.  
  16. #Para los 3 marcos de lectura de la cadea 5'----->3'
  17.  
  18. {
  19.     print "Las potenciales proteinas en la cadena complementaria son:\n";
  20.  
  21.     for my $pos ( 0 .. 2 ) {
  22.  
  23.         my (@posinicial);              ###defino posición inicial y final de los nucleótidos
  24.         my (@posifinal);
  25.  
  26.         my @orf = hallarorf( $pos, $nuevav, \@posinicial, \@posifinal );    ##defino array para mis variables
  27.  
  28.         $orf = join( "", @orf );       ###convierto el array en un string
  29.  
  30.         $proteina = traducir($orf), "\n";    ###defino mi nueva variable que contiene una subrutina para traducir el DNA
  31.  
  32.         print "$proteina\n";
  33.         print "=" x 60, "\n";          ####me ubica separadores
  34.  
  35.         open OUTPUT, ">ORFcomp.txt";
  36.         print OUTPUT " $proteina\n";
  37.         close OUTPUT;
  38.  
  39.     }
  40.  
  41. }
  42.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2011-09-10 09:08 @422, editado 1 vez en total
Razón: Formateado de código con Perltidy
lalou28
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2011-09-09 21:01 @917

Publicidad

Re: Duda con ORF

Notapor explorer » 2011-09-10 09:14 @426

Bienvenida a los foros de Perl en español, lalou28.

Yo veo que en la línea 36 se imprime la $proteina seguida de una carácter de fin de línea, así que el fichero se está guardando con las proteínas separadas, una por fila.

De la otra pregunta no podemos decirte nada, porque no sabemos qué es lo que hace hallarorf(). Además, a esa subrutina le estás pasando las referencias a @posinicial y @posfinal, pero luego no haces nada con ellas.

¿Este código lo has hecho tu?

Podría ser que hallarorf() devuelva una lista con todos los ORF encontrados. Entonces, el problema está en la línea 28, ya que les estás uniendo en una sola cadena de caracteres, y por eso, $proteina, solo consta de una sola cadena, y salen todos los ORF juntos.

Si quieres los ORF separados, deberás hacer un bucle por cada uno de los elementos de @orf.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron