Test Foro de elhacker.net SMF 2.1

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
CitarSuponiendo 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 (perl) [Seleccionar]


my $arreglo = "ATTCCTGATGCGACCCCT";

my @a = split(//, $arreglo);
my $contador = 0;

for ( my $numero = 0 ; $numero < length(@a); $numero++ ) {

    if ( $a[$numero] . $a[$numero] . $a[$numero] =~ /CCT/ ) {

$contador = $contador+1;
    }
}

print "Existen  " . $contador . " Juegos de CCT\n";


Citar2.- 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 (perl) [Seleccionar]


my @a = split(//, $arreglo);
my ($contador1, $contador2, $contador3, $contador4);

  for (my $numero = 0; $numero < length($arreglo); $numero++) {

if ( $a[$numero] =~ /A/ ) {
    $contador1 = $contador1+1;
} elsif ( $a[$numero] =~ /T/ ) {
    $contador2 = $contador2+1;
} elsif ( $a[$numero] =~ /C/ ) {
    $contador3 = $contador3+1;
}
     
}

  printf("Existe %i:A\n", $contador1);
  printf("Existe %i:T\n", $contador2);
  printf("Existe %i:C\n", $contador3);



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