• Publicidad

Sustituciones con substr

Perl aplicado a la bioinformática

Sustituciones con substr

Notapor intentos » 2011-03-20 21:09 @923

Hola:
Tengo un problema que no sé muy bien por donde cogerlo, tengo que crear un programa que me haga una secuencia complementaria a una cadena de DNA es decir, si tengo la secuencia ATGC me la tiene que cambiar por TACG. Esos son los cambios siempre A->T, T->A, C->G y G->C.

El problema es que no puedo usar no la instrucción s/// ni tr///. Me recomiendan usar substr() y mirar cada base en la original mientras se crea la complementaria. Únicamente he sido capaz de separar las letras y que el programa me devuelva qué letra se cambia por qué letra.

Únicamente necesito saber si existe alguna otra instrucción que me deje sustituir o bien saber cómo hacer para que con substr() se me sustituyan las letras.

Gracias.
intentos
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2011-03-20 20:54 @912

Publicidad

Re: Sustituciones con substr

Notapor explorer » 2011-03-21 06:49 @326

Bienvenido a los foros de Perl en Español, intentos.

Bueno, el chiste sería que, si no se puede usar s/// ni tr///, entonces puedes usar y///:

$cadena =~ y/ATCG/TAGC/;

Haciéndolo con substr()... Debes usar la forma de cuatro parámetros de esta función:

substr($cadena, $posición, $longitud, $nueva_subcadena);

La $nueva_subcadena se colocará dentro de $cadena, en la $posición, a lo largo de la $longitud indicada.

Más información en perldoc -f substr.

P.D. La solución que te he puesto antes se refiere a crear la cadena complementaria en la misma variable que contiene la cadena original. Como seguro que no es eso lo que quieres usar, la solución real es que: con substr($cadena, $posición, 1) obtienes el valor de la $cadena en la $posición. De ahí deduces la base complementaria, y la guardas con las demás (por ejemplo, concatenándolas).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
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 2 invitados