• Publicidad

Duda sencilla sobre algoritmo de traducción ADN-Proteina

Perl aplicado a la bioinformática

Duda sencilla sobre algoritmo de traducción ADN-Proteina

Notapor Hamtaro » 2016-08-16 14:04 @627

Hola a todos y muchas gracias por el trabajo que realizáis. No sabéis qué bien me ha venido vuestra ayuda.

Actualmente estoy haciendo un máster de bioinformática, pero vengo de la rama de biología y estoy aprendiendo programación. Mi duda es "teórica" más que "práctica" y viene con este algoritmo para dado un codón convertirlo en aminoácido.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $codon = <STDIN>;
  2. if    ( $codon =~ /GC./i)        { print 'A'; } # Alanine
  3. elsif ( $codon =~ /UC.|AG[UC]/i) { print 'S'; } # Serine
  4. elsif ( $codon =~ /UG[UC]/i)     { print 'C'; } # Cysteine
  5. elsif ( $codon =~ /GA[UC]/i)     { print 'D'; } # Aspartic Acid
  6. elsif ( $codon =~ /GA[AG]/i)     { print 'E'; } # Glutamic Acid
  7. elsif ( $codon =~ /UU[UC]/i)     { print 'F'; } # Phenylalanine
  8. else {print "No se ha encontrado el codón";}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Lo que no llego a comprender son algunas partes del algoritmo, ya que en los apuntes que me estoy estudiando no aparece.

- ¿Qué significa $codon =~ /GC./i ?
He usado =~ y sé que es el operador binding, pero no entiendo el '.' ahí ni el 'i'. ¿Por qué no 'g'?

- ¿Qué significa /UC.|AG[UC]/i?
He usado el operador '||' pero no '|' y el '[ ]' tampoco lo he visto en mi vida.


Muchas gracias y saludos.
Avatar de Usuario
Hamtaro
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2015-11-19 17:34 @773

Publicidad

Re: Duda sencilla sobre algoritmo de traducción ADN-Proteina

Notapor explorer » 2016-08-16 15:54 @704

Hamtaro escribiste:- ¿Qué significa $codon =~ /GC./i ?
He usado =~ y sé que es el operador binding, pero no entiendo el '.' ahí ni el 'i'. ¿Por qué no 'g'?

El operador '=~' es el de confrontación entre una cadena y un patrón, lo que llamamos normalmente una operación de expresiones regulares.

El '.' es el comodín principal. Equivale a cualquier carácter. Así que /GC./ significa que estamos buscando por las letras 'G', 'C', y seguidas por una letra más.

El modificador 'i' indica que queremos hacer una búsqueda independiente del tamaño de caja de las letras. O sea, que nos da igual buscar mayúsculas que minúsculas. Así, /GC./i significa que estamos buscando por 'GC' (y una letra más), o 'gc' (y una letra más) o incluso 'Gc' o 'gC' (y una letra más).

El modificar 'g' sirve para hacer búsquedas repetidas (búsqueda global). Pero no estamos haciendo eso. En esa parte del código solo queremos saber si existe, en alguna parte de $codon, la cadena que coincida con el patrón. Si es así, hace un print, y termina. Otro caso sería si queremos buscar por todas las ocurrencias del patrón dentro del $codon.

Hamtaro escribiste:- ¿Qué significa /UC.|AG[UC]/i?
He usado el operador '||' pero no '|' y el '[ ]' tampoco lo he visto en mi vida.

Los patrones de expresiones regulares tienen su propio lenguaje (mira el enlace que te he puesto antes). Entonces, los caracteres que, en Perl significan una cosa, dentro de un patrón significan algo completamente distinto.

/UC.|AG[UC]/i quiere decir que estamos buscando (independientemente del tamaño de caja, 'i') por:
  • 'UC', seguido por un carácter más, o ('|')
  • 'AG', seguido por un carácter más, que puede ser, 'U' o 'G'. Los corchetes conforman "clases de caracteres", y coinciden con un único carácter
Tienes una introducción rápida a las exp. reg. en tu propio ordenador en perldoc perlrequick, y en la Web (traducido al español). Y una referencia rápida en perlreref.

Más información en tu propio ordenador sobre las exp. reg. en perldoc perlre, y en la Web (traducido al español).

Un tutorial sobre exp. reg. en tu propio ordenador en perldoc perlretut, y en la Web (traducido al español).

Mayor explicación sobre las clases de caracteres, en tu propio ordenador en perldoc perlrecharclass, y en la Web (traducido al español).


Para cualquier duda, aquí mismo :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
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