¡Buenas tardes!
Tengo una duda más que un problema.
En mi programa llego a un punto donde tengo almacenadas en un mismo
array las posiciones de inicio y fin de los ORF (en la forma de contar normal, es decir, comenzando por el 1 y hasta la base anterior al codón STOP). Tengo que rechazar aquellas cuya longitud sea menor a una cierta longitud introducida por línea de comando, que luego yo he almacenado como
$longmin.
He realizado una serie de bucles similares para cada marco de lectura, pero no sé si funcionan del modo que yo quiero. ¿Qué opina usted?
Consistiría en que si la longitud del ORF es mayor a 300 (en el fichero de ejemplo) sí las tradujera luego en el fichero de salida, y si no, no.
Quiero que si son mayores de 300 me almacene la posición de inicio en
@poslecin, la de fin en
@poslecfin y me extraiga la secuencia de ADN a
@ORFs.
He pensado que el error de mi programa debe estar aquí, porque las siguientes partes ya son de traducción e impresión en el fichero.
Este es el bucle para el marco de lectura 1:
Using perl Syntax Highlighting
do{
if(($posiciones0[$f]-$posiciones0[$i] +1)> $longmin) {
push (@poslecin, $posiciones0[$i]);
push (@poslecfin, $posiciones0[$f]);
$orf= substr($dna, $posiciones0[$i] - 1, $posiciones0[$f]-$posiciones0[$i]+1);
push (@ORFs, $orf);
$i+=2;
$f+=2;
}else{
$i+=2;
$f+=2;
}
}until($i > scalar (@posiciones0) / 2);
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Gracias