Eliminar "padding" de archivo .SAM
Publicado: 2012-03-08 06:16 @303
Hola,
Tengo un archivo de alineamiento en formato SAM que tiene un encabezado y una sucesión de líneas con varios campos, os muestro un trozo:
El campo 6 conocido como CIGAR es una sucesión de números y letras. Las letras posibles son MIDNSHP, aunque en mi ejemplo no tengo todas. Este campo se distribuye por parejas de número/letra. por tanto, en la primera línea del ejemplo podemos leer algo así como 41H-23M-1P-6M-1P... etc.
La letra P significa que se ha hecho "padding" en el alineamiento.
Mi objetivo es eliminar la letra P y su correspondiente número en todas las líneas. En el ejemplo el número es siempre '1' pero puede ser cualquiera de uno o más de un dígito. He intentado hacer lo siguiente pero me deja el archivo igual:
¿Alguien me puede ayudar?
Gracias
Tengo un archivo de alineamiento en formato SAM que tiene un encabezado y una sucesión de líneas con varios campos, os muestro un trozo:
Using text Syntax Highlighting
- @HD VN:1.0 GO:none SO:coordinate
- @SQ SN:APB LN:360
- @RG ID:I245 SM:Sample_Mult_1
- @PG ID:AA PN:DataAnalyzer VN:2.6
- @CO Sequencing System.
- APB 0 APB 42 255 41H23M1P6M1P4M1P5M1P6M1P6M1P12M1P5M1P2M1P15M1P2M1P59M1P23M1P2M1P2M1P2M1P7 * 0 0 AGCTTAGCTTGGAAAGCCTCACCTCTTACTTTTCCATTGAGTCATCTACCAAAGGA * MD:Z:319 NM:i:0
- HEWCEEE01A0C7I 0 APOBex26_M13 42 255 41H23M1P6M1P4M1P5M1P6M1P6M1P12M1P5M1P2M1P15M1P2M1P59M1P23M1P2M1P2M1P2M1P7M1P * 0 0 AGCTTAGCTTGGAAAGCCTCACCTCTTACTTTTCCATTGAGTCATCTACCAAAGGAGATGTCAAGGGTTCGGTTC * MD:Z:319 NM:i:0
- HEWCEEE01A2AQM 0 APOBex26_M13 42 255 41H23M1P6M1P4M1P5M1P6M1P6M1P12M1P5M1P2M1P15M1P * 0 0 AGCTTAGCTTGGAAAGCCTCACCTCTTACTTTTCCATTGAGTCATCTACCAAAGGA * MD:Z:319 NM:i:0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
El campo 6 conocido como CIGAR es una sucesión de números y letras. Las letras posibles son MIDNSHP, aunque en mi ejemplo no tengo todas. Este campo se distribuye por parejas de número/letra. por tanto, en la primera línea del ejemplo podemos leer algo así como 41H-23M-1P-6M-1P... etc.
La letra P significa que se ha hecho "padding" en el alineamiento.
Mi objetivo es eliminar la letra P y su correspondiente número en todas las líneas. En el ejemplo el número es siempre '1' pero puede ser cualquiera de uno o más de un dígito. He intentado hacer lo siguiente pero me deja el archivo igual:
Using perl Syntax Highlighting
- #! usr/bin/perl -w
- # use strict
- open (IN, $ARGV[0]) || die "File IN not found\n";
- my @salida= split /./, $ARGV[0];
- my $nombre= $salida[0] . "_unpad_" . $salida[1];
- open OUT, ">", $nombre or die $!;
- while (<IN>) {
- chomp;
- my $pattern =~ '([MIDNSH])(\d+P)'; #texto a buscar. Quiero eliminar la segunda parte, por eso meto cada bloque entre paréntesis. No hace falta incluir P en la primera parte porque lee de izda. a dcha.
- foreach($_)
- {
- s/$2//g; #solo quiero que me elimine la P con su número
- print OUT $_,"\n";
- }
- }
- close (IN);
- close (OUT);
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
¿Alguien me puede ayudar?
Gracias