• Publicidad

Contar apariciones de tripletas en secuencias de bases

Perl aplicado a la bioinformática

Contar apariciones de tripletas en secuencias de bases

Notapor sonsetaa » 2010-01-22 11:48 @534

¡Hola! Tengo que hacer una práctica para la universidad y hay algunos ejercicios que no sé cómo empezarlos.

Aquí os los dejo... espero que alguien me pueda ayudar a resolverlos... ¡por favor...!

Suponiendo que tenemos una secuencia de bases en una string:
$a="ATTCCTGATGCGACCCCT";
Puede ser útil utilizar la función length(), que devuelve el tamaño de un string.

1.- Decir cuántas veces aparece la tripleta CCT (estas 3 bases o letras) (en este caso, 2).

2.- Contar cuántas bases hay de cada tipo. Utilizar un hash. Al final debéis mostrar cada base y su número de apariciones (en este caso A:3 T:5 C:7 G:3).


¡¡¡Muchas graciaas!!! Es un poco urgente así que cuanto antes me podáis contestar, ¡¡mejor!!
¡¡¡GRACIAS!!!
sonsetaa
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2010-01-22 11:36 @525

Publicidad

Re: Contar apariciones de tripletas en secuencias de bases

Notapor explorer » 2010-01-22 11:57 @539

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

Para la primera pregunta, debes hacer un bucle por la longitud de la cadena de caracteres. En cada posición, tienes que ver si la base que ocupa esa posición en la cadena es 'C', y si la siguiente es 'C' también, y si la siguiente es 'T'. Si es cierto, entonces sumas uno a un contador, que será lo que devuelvas al final (hay más formas de hacer lo mismo pero de distinta manera).

Para la segunda, te vale lo que te están diciendo: recorre cada carácter de la cadena y suma una aparición al elemento hash con clave igual a esa base. Al final, haces un bucle por todas las bases que han aparecido, sacando sus valores (número de veces que han aparecido en la cadena).

Prueba a poner algo de código, y lo vemos.
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

Re: Contar apariciones de tripletas en secuencias de bases

Notapor sonsetaa » 2010-01-22 12:10 @548

La idea ya la sé porque hice un año de Pascal y los algoritmos son similares. El problema está a la hora de pasarlo en lenguaje de Perl... ¡que de esto sí que no tengo prácticamente nada de idea...!

¡Muchas gracias de todas formas! Pero necesitaría como ya he dicho el "programa" en sí para hacer lo que me piden!
sonsetaa
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2010-01-22 11:36 @525

Re: Contar apariciones de tripletas en secuencias de bases

Notapor explorer » 2010-01-22 12:16 @553

No es lógico que te pidan hacer un programa Perl si no sabes programar en Perl.

Tampoco es lógico que te demos el programa hecho, si no lo vas a entender. ¿Cómo vas a explicar su funcionamiento?

A ver, a ver... ¿por qué te piden una práctica en Perl, y no sabes nada del lenguaje?

Ten en cuenta que tu profesor será un miembro más de este foro, por lo que estará vigilando lo que haces o dices.

(A nosotros también nos vigilan los profesores :) )
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

Re: Contar apariciones de tripletas en secuencias de bases

Notapor sonsetaa » 2010-01-22 12:28 @561

Si no me quieres ayudar no es necesario que respondas.

Si no sé el lenguaje es porque lo hemos trabajado durante 2 horas a la semana no más de 5-6 semanas... lo siento, no soy ninguna especialista en esto ni tan solo estoy estudiando informática ni nada por el estilo. Y siempre habrá gente que se le de bien y otra a la que se le de peor, ¡¡mira por donde soy del segundo grupo!!

Muchas gracias por tu gran aportación.

Atentamente,
sonsetaa (creo que mi profesor me llama así en clase....¬¬)
sonsetaa
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2010-01-22 11:36 @525

Re: Contar apariciones de tripletas en secuencias de bases

Notapor explorer » 2010-01-22 13:02 @585

Vaaalee... ¡tranquila!

Con diez horas de clase deberías al menos saber inicializar una variable escalar con una cadena de caracteres y recorrer cada uno de los caracteres. Es más, seguro que lo tienes en los apuntes de clase.

Yo lo único que pido es que enseñes algo del código tuyo para ver qué nivel es. Porque puede ser algo tan complejo como esto:
perl -le '$a="ATTCCTGATGCGACCCCT"; $v = () = $a =~ /CCT/g; print "Aparece $v veces"'

Empieza así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$a = "ATTCCTGATGCGACCCCT";
for ($i = 0; $i < length($a); $i++) {
    $base = substr($a, $i, 1);
    # ...
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y en cuanto a la segunda cuestión, es muy típico de los problemas de Perl, el contar aparición de elementos. De hecho, en este foro de Básico ha salido bastantes veces.

Se podría hacer con algo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$a = "ATTCCTGATGCGACCCCT";
for ($i = 0; $i < length($a); $i++) { # para todas las posiciones a lo largo de la longitud
    $base = substr($a, $i, 1);        # extraemos la base
    $hash{$base}++;                   # suma uno a las apariciones de $base
}

# ... (presentar las veces que aparece cada base)
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Ves?, ya solo quedan 4 líneas más y lo tienes hecho. ¿No es complicado, no?

Bueno, es complicado si para el segundo problema ponemos esto:
perl -le '$a="ATTCCTGATGCGACCCCT"; $hash{$_}++ for split //, $a; for(keys%hash){print "$_:$hash{$_}"}'

P.D.: Por favor, no odies a Perl. Ódiame a mí.
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