Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: nodens91 en 22 Enero 2010, 18:57 pm



Título: practica perl
Publicado por: nodens91 en 22 Enero 2010, 18:57 pm
Contar apariciones de tripletas en secuencias de bases
¡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!!!


Título: Re: practica perl
Publicado por: [L]ord [R]NA en 22 Enero 2010, 19:40 pm
Lee las reglas, aqui no se hacen tareas para otras personas, no se hacen practicas de la universidad, no se hacen tesis, ni codigos por pedido.



Título: Re: practica perl
Publicado por: kyps en 25 Enero 2010, 20:22 pm
len($a)


Título: Re: practica perl
Publicado por: ^Tifa^ en 25 Enero 2010, 21:47 pm
Citar
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).

Algo mas o menos asi te podria servir...

Código
  1.  
  2. my $arreglo = "ATTCCTGATGCGACCCCT";
  3.  
  4. my @a = split(//, $arreglo);
  5. my $contador = 0;
  6.  
  7. for ( my $numero = 0 ; $numero < length(@a); $numero++ ) {
  8.  
  9.    if ( $a[$numero] . $a[$numero] . $a[$numero] =~ /CCT/ ) {
  10.  
  11. $contador = $contador+1;
  12.    }
  13. }
  14.  
  15. print "Existen  " . $contador . " Juegos de CCT\n";
  16.  

Citar
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).

Conste que no utilizo 'hash' en el siguiente ejemplo, sino un arreglo...

Código
  1.  
  2. my @a = split(//, $arreglo);
  3. my ($contador1, $contador2, $contador3, $contador4);
  4.  
  5.  for (my $numero = 0; $numero < length($arreglo); $numero++) {
  6.  
  7. if ( $a[$numero] =~ /A/ ) {
  8.    $contador1 = $contador1+1;
  9. } elsif ( $a[$numero] =~ /T/ ) {
  10.    $contador2 = $contador2+1;
  11. } elsif ( $a[$numero] =~ /C/ ) {
  12.    $contador3 = $contador3+1;
  13. }
  14.  
  15. }
  16.  
  17.  printf("Existe %i:A\n", $contador1);
  18.  printf("Existe %i:T\n", $contador2);
  19.  printf("Existe %i:C\n", $contador3);
  20.  
  21.  

Son ejemplos funcionales, si quieres usar hash deberas crear primero el indice de referencia al valor o sea:

my %variable = 'a' => 5

Asi cuando llames a $variable{a} obtendras el valor 5.... (Lo hice en un arreglo a proposito... ya que te piden hash en el segundo ejercicio, lo posteado por mi es un ejemplo que te serviria de guia).