• Publicidad

Extraer columnas de un hash

Perl aplicado a la bioinformática

Extraer columnas de un hash

Notapor abraham03 » 2018-05-31 17:43 @780

Hola, buenos días a todos.

Tengo un archivo delimitado por tabs, algo similar a esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. data    S1  S2  S3  S4  S5  S6
  2. data1   0   0   0   0   0   0
  3. data2   0   5   3   5   0.1 0.9
  4. data3   0   3   9   3   0   0.01
  5. data4   0   0   4   4   0   0
  6. data5   2   5   11  7   5   0.2
  7. data6   0   0   0   8.  0   0
  8. data7   0   1   5   2   06  0.04
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


En realidad es un poco más complicado, pero sirve para simplificar la pregunta.

Son datos de metagenómica, algo así:
D_0__Archaea;D_1__Euryarchaeota;D_2__Thermoplasmata;D_3__Thermoplasmatales;D_4__Marine Group II;D_5__uncultured archaeon 0 0 0 0 0 0 0 0 0.0035 0.00293 0.00834 0

de: D_0__ to D_5__ = primera columna
cada número representa de la columna 2 en adelante (ejemplo: S3=0)


Lo que quiero es extraer siempre la primera columna (data) con una de las columnas S, e imprimirla en un txt con el nombre de la columna S.

Suponiendo que quiero extraer la columna s3 y s6, sería algo así:


Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. S3_file.txt: #nombre del archivo
  2.  
  3. 0    data1
  4. 3    data2
  5. 9    data3
  6. 4    data4
  7. 11   data5
  8. 0    data6
  9. 5    data7
  10.  
  11. y
  12.  
  13. S6_file.txt:
  14.  
  15. 0    data1
  16. 0.9  data2
  17. 0.01 data3
  18. 0    data4
  19. 0.2  data5
  20. 0    data6
  21. 0.04 data7
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


El código que he hecho es el siguiente. Solo que no sé exactamente en qué parte poner un array que me extraiga siempre la primera columna y agregarle a su vez la columna deseada (que en el caso del ejemplo son la columna data y s3 = @array = data, s3), luego la siguiente ( @array = data, s6 ) y esos dos elementos usarlos en la sección del hash %row para extraerlo de dos en dos, y hacer el print OUTPUT "s3\tdata".

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings;
  4. use List::MoreUtils qw(uniq);
  5. use Data::Dumper qw(Dumper);
  6. use Getopt::Long;
  7. use List::Util qw(sum);
  8.  
  9.  
  10. my ($infile_taxon, $search_label, $output_file, $help, $help_desc, $options, $options_desc, $keep_file);
  11.  
  12. GetOptions (
  13.     't=s'       =>\$infile_taxon,
  14.     's=s'       =>\$search_label,
  15.     'kf'        =>\$keep_file,
  16.     'o=s'       =>\$output_file,
  17.     'h'         =>\$help,
  18.     'op'        =>\$options
  19. );
  20.  
  21. #---------------------------Subrutin to clean the selected Taxon  --------------------
  22. sub Taxon_Clean {
  23.     my (@clean_result);
  24.     foreach (@_){
  25.         chomp;
  26.         if ($_ =~ s/D_0__//g | s/;D_\d__/\t/g | s/;/\t/g){
  27.             push @clean_result, $_;
  28.         }
  29.     }
  30.  
  31.     return @clean_result;
  32. }
  33.  
  34. #------------------------------------------------------ Open Files-------------------
  35. open INFILE_TAXONOMY, '<', "$infile_taxon" or die $!;
  36.  
  37. my (@taxon, @sample_names);
  38.  
  39. #------------------------------------------------------ Taxon -----------------------
  40. my ( @header, @label_match, @not_match, @taxon_filter);
  41. while (<INFILE_TAXONOMY>){
  42.     chomp;
  43.     if ($_=~ m/^$|Constructed from biom file/g)  {
  44.         next;
  45.     }
  46.     elsif ($_=~ s/OTU ID/Taxon/g){
  47.         chomp ( @header = split '\t', $_ );
  48.  
  49. #------------------------------------------------------ Search Label ----------------
  50.         if ($search_label){
  51.             my @label_wanted= split (/\,/, $search_label);
  52.             unshift @label_wanted, '#Taxon';
  53.             @label_wanted = uniq (@label_wanted);
  54.             foreach (@label_wanted){
  55.                 my $unit =$_;
  56.                 chomp $unit;
  57.                 if (my @match_wanted= grep (/$unit/, @header)){
  58.                     push (@label_match, @match_wanted);
  59.                 }
  60.                 else {
  61.                     push (@not_match, $unit);
  62.                 }
  63.             }
  64.  
  65.         # creo que en esta sección es en donde debo hacer un loop foreach para anexar siempre la primera columna, con cada una de las deseadas
  66.  
  67.         # aunque no sé exactamente cómo ligarlo con el %hash
  68.  
  69.  
  70. #                                --------- Check Point ---------
  71.  
  72.             push (my @defined_elements, @label_match);
  73.             shift @defined_elements;
  74.  
  75.             if (! @defined_elements){
  76.                 print "\n\tNON of the Search Samples \" $search_label \" "
  77.                   . "Were Found in \" $infile_taxon \" File !!!\n\n";
  78.                 exit;
  79.             }
  80.  
  81.             elsif (grep {defined($_)} @defined_elements){  
  82.                 if (grep {defined($_)} @not_match){
  83.                     print "\n\tSamples No Found: @not_match\n\n";
  84.                 }
  85.             }
  86.         }
  87.     }
  88.     elsif ($_=~ m/^#/g){
  89.         next;
  90.     }
  91.  
  92.     elsif ($search_label) {  
  93.         my %row;
  94.         @row{@header} = split '\t';
  95.         my @filter= join "\t", @row{@label_match}, "\n";
  96.         push (@taxon_filter, @filter);
  97.         #print Dumper (\%row);
  98.     }
  99.     else {
  100.         push (@taxon, $_);
  101.     }
  102. }
  103.  
  104.  
  105. # La siguiente sección es para extraer todos los elementos buscados, pero hasta ahora ¡¡ el código imprime todos en un mismo archivo !!
  106.  
  107. open OUTPUT, '>', "Taxonomic_results_file.txt", or die "can't create the output file";
  108.  
  109. foreach (@taxon_filter){
  110.     chomp $_;
  111.     my ($tax, @values) = split '\t', $_;
  112.     my $unit_val = join("\t", map { $_ } @values);
  113.     my $sum_elements = sum (@values);
  114.     if ($sum_elements == 0){
  115.         next;
  116.     }
  117.     else {
  118.         push (my @tx, $tax);
  119.         @tx = Taxon_Clean (@tx);
  120.         print OUTPUT "$unit_val\t@tx\n";
  121.     }
  122. }
  123.  
  124.  
  125. close INFILE_TAXONOMY;
  126. close OUTPUT;
  127. exit;
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Muchas gracias.
abraham03
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2016-08-05 15:52 @703

Publicidad

Re: Extraer columnas de un hash

Notapor explorer » 2018-06-01 15:44 @697

Sería... interesante... ver cómo es la entrada inicial. Quiero decir: un trozo de texto de $infile_taxon. No me queda claro a partir de la descripción que pones.

Pero, si nos quedamos con la pregunta principal, se podría resolver de esta manera:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use v5.20;
  3. use feature ':5.20';
  4. use autodie;                            # No regresar con deshonor --Proverbio Kinglon
  5.  
  6. # Leemos el archivo de datos
  7. # (aquí usaremos el espacio <DATA>, al final del programa)
  8.  
  9. my $cabecera = <DATA>;                  # leemos la primera línea donde está la cabecera
  10. chomp $cabecera;
  11. my @nombres_col = split " ", $cabecera;
  12.  
  13. my @tabla_data;
  14.  
  15. while (<DATA>) {                        # resto de líneas
  16.     chomp;
  17.  
  18.     my(@campos) = split;                # suponemos que los espacios en blanco separan las columnas
  19.    
  20.     push @tabla_data, [ @campos ];      # las guardamos como filas en una matriz (array de arrays)
  21. }
  22.  
  23. # Resultado
  24.  
  25. for my $i ( 1 .. $#nombres_col ) {      # recorremos los índices de las columnas
  26.  
  27.     my $nombre_col = $nombres_col[$i] . "_file.txt";
  28.  
  29.     say $nombre_col;
  30.     #open my $FH, '>', $nombre_col;
  31.  
  32.     for my $j ( 0 .. $#tabla_data ) {   # recorremos los indices de las filas
  33.  
  34.         say "$tabla_data[$j][$i]\t$tabla_data[$j][0]";
  35.     }
  36.  
  37.     #close $FH;
  38. }
  39.  
  40. __DATA__
  41. data    S1  S2  S3  S4  S5  S6
  42. data1   0   0   0   0   0   0
  43. data2   0   5   3   5   0.1 0.9
  44. data3   0   3   9   3   0   0.01
  45. data4   0   0   4   4   0   0
  46. data5   2   5   11  7   5   0.2
  47. data6   0   0   0   8.  0   0
  48. data7   0   1   5   2   06  0.04
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

La salida es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
S1_file.txt
0       data1
0       data2
0       data3
0       data4
2       data5
0       data6
0       data7
S2_file.txt
0       data1
5       data2
3       data3
0       data4
5       data5
0       data6
1       data7
S3_file.txt
0       data1
3       data2
9       data3
4       data4
11      data5
0       data6
5       data7
S4_file.txt
0       data1
5       data2
3       data3
4       data4
7       data5
8.      data6
2       data7
S5_file.txt
0       data1
0.1     data2
0       data3
0       data4
5       data5
0       data6
06      data7
S6_file.txt
0       data1
0.9     data2
0.01    data3
0       data4
0.2     data5
0       data6
0.04    data7
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Como ves, no usa hashes, sino solo un array que almacena una matriz. Solo es cuestión de recorrer la matriz de forma adecuada.

Más información, en tu propio ordenador con el comando perldoc perllol, y en la Web (traducido al español).

El truco... es que recorro toda la matriz. Si solo necesitaras unas columnas específicas, entones... se podría poner control dentro del bucle para localizar qué columna me interesa extraer. O usar hashes, para guardar los valores por columnas.

Si lo quieres hacer con hashes, en que las claves sean los nombres de las columnas, podemos hacerlo de esta manera:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use v5.20;
  3. use feature ':5.20';
  4. use autodie;                            # No regresar con deshonor --Proverbio Kinglon
  5.  
  6. # Leemos el archivo de datos
  7. # Aquí usamos el campo DATA
  8.  
  9. my $cabecera = <DATA>;                  # leemos la primera línea donde está la cabecera
  10. chomp $cabecera;
  11. my @nombres_col = split " ", $cabecera;
  12.  
  13. my %tabla_data;
  14.  
  15. my $col1 = $nombres_col[0];             # titular de la primera columna. Es la clave de la primera columna
  16.  
  17. while (<DATA>) {
  18.     chomp;
  19.  
  20.     my(@campos) = split;                # suponemos que los espacios en blanco separan las columnas
  21.    
  22.     for my $col (@nombres_col) {        # recorremos las columnas
  23.  
  24.         push @{ $tabla_data{$col} }, shift @campos;     # guardamos cada campo en la columna indexada por nombre
  25.     }
  26. }
  27.  
  28. my $num_filas = @{ $tabla_data{$col1} };
  29.  
  30. # aspecto de la estructura creada
  31. #use Data::Dumper;
  32. #say Dumper \%tabla_data;
  33. #exit;
  34.  
  35. # Resultado
  36.  
  37. # Archivos a sacar
  38. my @archivos = qw( S3 S6 );
  39.  
  40. for my $archivo (@archivos) {
  41.  
  42.     my $nombre_archivo = "${archivo}_file.txt";
  43.     say $nombre_archivo;
  44.  
  45.     for my $fila ( 0 .. $num_filas-1 ) {
  46.  
  47.         say "$tabla_data{$archivo}[$fila]\t$tabla_data{$col1}[$fila]";
  48.     }
  49. }
  50.  
  51.  
  52. __DATA__
  53. data    S1  S2  S3  S4  S5  S6
  54. data1   0   0   0   0   0   0
  55. data2   0   5   3   5   0.1 0.9
  56. data3   0   3   9   3   0   0.01
  57. data4   0   0   4   4   0   0
  58. data5   2   5   11  7   5   0.2
  59. data6   0   0   0   8.  0   0
  60. data7   0   1   5   2   06  0.04
  61.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Salida:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
S3_file.txt
0       data1
3       data2
9       data3
4       data4
11      data5
0       data6
5       data7
S6_file.txt
0       data1
0.9     data2
0.01    data3
0       data4
0.2     data5
0       data6
0.04    data7
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer columnas de un hash

Notapor abraham03 » 2018-06-01 17:04 @752

Hola, gracias por la respuesta.

El formato del archivo es como este (adjunto un archivo completo):
Sintáxis: (otu_table_L6.txt) [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. # Constructed from biom file
  2. #OTU ID sample2 sample3 sample1 sample4
  3. D_0__Archaea;D_1__Aenigmarchaeota;D_2__Deep Sea Euryarchaeotic Group(DSEG);Ambiguous_taxa;D_4__;D_5__   0.0     0.00014961101137        0.0     0.0
  4. D_0__Archaea;D_1__Aenigmarchaeota;D_2__Deep Sea Euryarchaeotic Group(DSEG);D_3__uncultured archaeon;D_4__;D_5__ 0.0     0.0     0.0     0.000150738619234
  5. D_0__Archaea;D_1__Aenigmarchaeota;D_2__Deep Sea Euryarchaeotic Group(DSEG);D_3__uncultured archaeon 'KTK 18A';D_4__;D_5__       0.0     0.00014961101137        0.0     0.0
  6. D_0__Archaea;D_1__Aigarchaeota;D_2__Aigarchaeota Incertae Sedis;D_3__Unknown Order;D_4__Unknown Family;D_5__Candidatus Caldiarchaeum    0.000449977501125       0.00014961101137        0.000443262411348       0.0
  7. D_0__Archaea;D_1__Aigarchaeota;D_2__Terrestrial Hot Spring Gp(THSCG);Ambiguous_taxa;D_4__;D_5__ 0.000149992500375       0.00014961101137        0.0     0.0
  8. D_0__Archaea;D_1__Aigarchaeota;D_2__Terrestrial Hot Spring Gp(THSCG);D_3__uncultured archaeon;D_4__;D_5__       0.0     0.000299222022741       0.000886524822695       0.000452215857703
  9. D_0__Archaea;D_1__Ancient Archaeal Group(AAG);D_2__uncultured archaeon;D_3__;D_4__;D_5__        0.0     0.00014961101137        0.0     0.0
  10. D_0__Archaea;D_1__Bathyarchaeota;Ambiguous_taxa;D_3__;D_4__;D_5__       0.000749962501875       0.000897666068223       0.00103427895981        0.000904431715405
  11. D_0__Archaea;D_1__Bathyarchaeota;D_2__uncultured archaeon;D_3__;D_4__;D_5__     0.000449977501125       0.000598444045482       0.00147754137116        0.00105517033464
  12. D_0__Archaea;D_1__Bathyarchaeota;D_2__uncultured crenarchaeote;D_3__;D_4__;D_5__        0.0     0.0     0.000295508274232       0.000301477238468
  13. D_0__Archaea;D_1__Candidate division YNPFFA;Ambiguous_taxa;D_3__;D_4__;D_5__    0.0     0.0     0.000147754137116       0.000150738619234
  14. D_0__Archaea;D_1__Crenarchaeota;D_2__Thermoprotei;D_3__Acidilobales;Ambiguous_taxa;Ambiguous_taxa       0.0     0.0     0.000147754137116       0.000150738619234
  15. D_0__Archaea;D_1__Crenarchaeota;D_2__Thermoprotei;D_3__Acidilobales;D_4__Caldisphaeraceae;D_5__Caldisphaera     0.0     0.0     0.000147754137116       0.000150738619234
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Y suponiendo que partimos del archivo anexo quiero que la muestra sample1 generara algo así (¡¡todo los que contienen ceros son omitidos !!):
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. 0.000443262411348       Archaea Aigarchaeota    Aigarchaeota Incertae Sedis     Unknown Order   Unknown Family  Candidatus Caldiarchaeum
  2. 0.000886524822695       Archaea Aigarchaeota    Terrestrial Hot Spring Gp(THSCG)        uncultured archaeon            
  3. 0.00103427895981        Archaea Bathyarchaeota  Ambiguous_taxa                 
  4. 0.00147754137116        Archaea Bathyarchaeota  uncultured archaeon                    
  5. 0.000295508274232       Archaea Bathyarchaeota  uncultured crenarchaeote                       
  6. 0.000147754137116       Archaea Candidate division YNPFFA       Ambiguous_taxa                 
  7. 0.000147754137116       Archaea Crenarchaeota   Thermoprotei    Acidilobales
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Si es una muestra no hay problema, pero si yo quisiera dos o más (para este caso fueron las 4), lo que obtengo hasta donde está escrito mi código es esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. 0.0     0.00014961101137        0.0     0.0     Archaea Aenigmarchaeota Deep Sea Euryarchaeotic Group(DSEG)     Ambiguous_taxa         
  2. 0.0     0.0     0.0     0.000150738619234       Archaea Aenigmarchaeota Deep Sea Euryarchaeotic Group(DSEG)     uncultured archaeon            
  3. 0.0     0.00014961101137        0.0     0.0     Archaea Aenigmarchaeota Deep Sea Euryarchaeotic Group(DSEG)     uncultured archaeon 'KTK 18A'          
  4. 0.000449977501125       0.00014961101137        0.000443262411348       0.0     Archaea Aigarchaeota    Aigarchaeota Incertae Sedis     Unknown Order   Unknown Family  Candidatus Caldiarchaeum
  5. 0.000149992500375       0.00014961101137        0.0     0.0     Archaea Aigarchaeota    Terrestrial Hot Spring Gp(THSCG)        Ambiguous_taxa         
  6. 0.0     0.000299222022741       0.000886524822695       0.000452215857703       Archaea Aigarchaeota    Terrestrial Hot Spring Gp(THSCG)        uncultured archaeon            
  7. 0.0     0.00014961101137        0.0     0.0     Archaea Ancient Archaeal Group(AAG)     uncultured archaeon                    
  8. 0.000749962501875       0.000897666068223       0.00103427895981        0.000904431715405       Archaea Bathyarchaeota  Ambiguous_taxa                 
  9. 0.000449977501125       0.000598444045482       0.00147754137116        0.00105517033464        Archaea Bathyarchaeota  uncultured archaeon
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Sin embargo requiero que cada muestra (sample) salga su columna de valores más toda la clasificación de bacterias (Archaea Aigarchaeota Terrestrial Hot Spring, etc.) y se imprima en tu archivo txt, es decir en el archivo adjunto hay 4 muestras, si yo escojo solo 3 (sample1, sample3, sample4), obtendría 3 archivos txt (sample1.txt, sample3.txt, sample4.txt), todos tendrían sección de clasificación de bacterias (Archaea Aigarchaeota Terrestrial Hot Spring, etc.) pero ¡¡¡su correspondiente columna de valores para cada sample!!!

¡¡¡ Muchas gracias por todos los consejos !!!

Saludos
abraham03
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2016-08-05 15:52 @703

Re: Extraer columnas de un hash

Notapor explorer » 2018-06-09 11:19 @513

Esta es la solución más corta y cómodo que se me ocurre.

Se trata de guardar toda la información inicial en forma de tabla (un array de filas, que cada fila es otro array).
Además, las cabeceras de las columnas las usaremos para buscar luego qué columna sacar. Para esto usaremos un hash, que nos transformará la etiqueta al número de columna dentro de la tabla. Por ejemplo, si el usuario nos pide la columna "sample1", sabemos que se trata de la columna número 3.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use v5.20;
  3. use feature ':5.20';
  4. use strict;
  5. use warnings;
  6.  
  7. use autodie;                            # No regresar con deshonor --Proverbio Kinglon
  8. use Getopt::Long;
  9.  
  10. # Interpretar las opciones -----------------------------------------------------
  11. my ($help, $infile_taxon, @search_label);
  12.  
  13. GetOptions (
  14.     't=s'       => \$infile_taxon,
  15.     's=s'       => \@search_label,      # admite varios valores
  16.     'h'         => \$help,
  17. );
  18.  
  19. if ($help or not $infile_taxon) {
  20.     die "Uso: $0 [-h|-t <archivo taxon>|-s <etiqueta1> [-s <etiqueta2> ...]]\n";
  21. }
  22.  
  23. # Leemos el archivo de datos ---------------------------------------------------
  24. open my $INFILE_TAXONOMY, '<', $infile_taxon;
  25.  
  26. my %header;
  27. my @tabla;
  28.  
  29. while (<$INFILE_TAXONOMY>) {
  30.     chomp;
  31.  
  32.     if (/^#OTU ID\s+(.+)/) {            # detectada cabecera
  33.         my @cols = split "\t", $1;
  34.         my $i = 1;                      # creamos un mapa de nombre de columna a número de columna
  35.         for (@cols) {
  36.             $header{$_} = $i++;         # spam2 => 0, spam3 => 1, ...
  37.         }
  38.     }
  39.  
  40.     next if /^#/;                       # los comentarios no interesan
  41.  
  42.     my($data, @cols) = split "\t";
  43.  
  44.     $data =~ y/;/ /;                    # transformación de la primera columna
  45.     $data =~ s/D_\d__//g;
  46.     $data =~ s/ +$//;
  47.  
  48.     push @tabla, [ $data, @cols ];      # la estructura es un array de array
  49. }
  50.  
  51. close $INFILE_TAXONOMY;
  52.  
  53. # Buscar etiqueta --------------------------------------------------------------
  54. for my $column (@search_label) {
  55.  
  56.     if (not exists $header{$column}) {
  57.         die "ERROR: la columna [$column] no existe en el archivo Taxon\n";
  58.     }
  59.  
  60.     my $i = $header{$column};
  61.  
  62.     my $archivo = "$column.txt";
  63.     open my $SALIDA, '>', $archivo;
  64.     say "Salida hacia el archivo $archivo";
  65.  
  66.     for my $fila_ref (@tabla) {
  67.         next if $fila_ref->[$i] == 0;
  68.  
  69.         # salida de la columa i-ésima y la primera columna
  70.         say $SALIDA "$fila_ref->[$i]\t$fila_ref->[0]";
  71.     }
  72.  
  73.     close $SALIDA;
  74. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Si lo ejecutamos con esta línea:

perl metagenomica.pl -t otu_table_L6.txt -s sample1 -s sample2

y obtenemos el resultado pedido (dos archivos, con las líneas que sean distintas de cero, de las columnas leídas antes).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados