Página 1 de 1

Buscar posiciones en cadena de ADN

NotaPublicado: 2006-04-15 14:24 @641
por DETA
:lol: Hola a todos.
No sé si lo que quiero hacer se puede, porque le estoy dando muchas vueltas y no lo consigo. Os cuento: quiero trabajar con una secuencia de ADN, y me gustaría crear un programa que me pidiera las posiciones de principio y fin de una secuencia y me seleccionara todas las posiciones intermedias, para así poder meterlas en un archivo y así tener una maravillosa proteína separada del resto del ADN.
Hasta ahora lo que utilizo es una busqueda por patrones y me devuelve la posición en la que se encuentra esa base, pero no lo puedo hacer al contrario.
me gustaria vuestra ayuda. :P
Código: Seleccionar todo
open (ADN,"cadena.txt");
@adn = <ADN>;
print "Introduce el patron que quieras buscar en tu cadena:  ";
$patron=<STDIN>;
chomp $patron;
print "\n\nEL PATRON $patron APARECE EN: \n\n";

for ($i=0;$i<scalar @adn; $i=$i+1){
   if ($adn[$i]=~ /$patron/){
   $antes= $-[0]+ ($i*60);
   $despues = $+[0] + ($i*60);
      print "LINEA $i : $antes -------- $despues\n";
   }
}
print "\n\n";
close (ADN);
close (GEN);
exit;

Re: Buscar posiciones en cadena de ADN

NotaPublicado: 2006-04-15 15:08 @672
por explorer
No sé si lo he entendido bien.
Creo que lo que quieres es sacar una secuencia de caracteres entre una posición inicial y otra final, por cada línea de entrada.
Para eso, lo más sencillo es usar la función substr:
Código: Seleccionar todo
substr($secuencia, $pos_inicial, $pos_final-$pos_inicial);

NotaPublicado: 2006-04-27 04:08 @213
por preiddy
¿conoces bioperl?
http://search.cpan.org/~birney/bioperl-1.4/bioperl.pod
Echale un ojo, hace lo que quieres y mas.

Re: Buscar posiciones en cadena de ADN

NotaPublicado: 2006-04-27 12:31 @563
por explorer
Código: Seleccionar todo
use Bio::Seq;

my $seq = Bio::Seq->new(
    -seq => 'ATGGGGGTGGTGGTACCCT',
    -id  => 'human_id',
    -accession_number => 'AL000012',
);
my $proteina = $obj->subseq(7,13);