Finnigan

 view release on metacpan or  search on metacpan

bin/mzxml-scan  view on Meta::CPAN


    if ( /<spectrum[^>]+scan=(\d+)/s ) {
      next if $1 < $args->{'-n'}{'<n>'};
      if ( s/^(.*<binaryDataArrayList\s+count\s*=\s*"(\d+)">)(.+)$//s ) {
        my ($tag, $n, $tail) = ($1, $2, $3);
        die "don't know what to do with <binaryDataArrayList> of size != 2 (read: $n)" unless $n == 2;
        
        my $chunk_no = 0;
        my @key = qw/mz intensity/;
        my $table;
        foreach my $chunk ( split m{</binaryDataArray>\s*}, $tail) {
          if ( $chunk =~ m{^(.*<binaryDataArray.+<binary>)(.*)(</binary>.*)$}s ) {
            my ($head, $data, $tail) = ($1, $2, $3);

            my ($size) = ( $head =~ /<cvParam.+name="(\d\d-bit)/ );

            if ( $size eq '32-bit' ) {
              $table->{$key[$chunk_no]} = [unpack("f<*", decode_base64($data))];
            }
            elsif ( $size eq '64-bit' ) {
              $table->{$key[$chunk_no]} = [unpack("d<*", decode_base64($data))];

bin/mzxml-unpack  view on Meta::CPAN

    }

    if ( /<spectrum[^>]+scan=(\d+)/s ) {
      next unless $1 >= $from and $1 <= $to;
    }

    if ( s/^(.*<binaryDataArrayList\s+count\s*=\s*"(\d+)">)(.+)$//s ) {
      my ($tag, $n, $tail) = ($1, $2, $3);
      print "$_$tag";

      foreach my $chunk ( split m{</binaryDataArray>\s*}, $tail) {
        if ( $chunk =~ m{^(.*<binaryDataArray.+<binary>)(.*)(</binary>.*)$}s ) {
          my ($head, $data, $tail) = ($1, $2, $3);

          my ($size) = ( $head =~ /<cvParam.+name="(\d\d-bit)/ );

          say $head;

          my @list;
          if ( $size eq '32-bit' ) {
            @list = unpack("f<*", decode_base64($data));

bin/uf-mzml  view on Meta::CPAN

tie my %fileContentAttr2, 'Tie::IxHash';
%fileContentAttr2 = (
                     cvRef => 'MS',
                     accession => 'MS:1000580',
                     name => 'MSn spectrum',
                     value => '',
                   );

# Source File list ------------------------------------------------------
tie my %sourceFileAttr, 'Tie::IxHash';
my @path = split m{[\\/]}, $seq_row->file_name;
my $name = pop @path;
my $path = $seq_row->path || join "/", @path;
%sourceFileAttr = (
                   id => 'RAW1',
                   name => $name,
                   location => "file:///$path"
                  );

tie my %sourceFileAttr1, 'Tie::IxHash';
%sourceFileAttr1 = (



( run in 1.491 second using v1.01-cache-2.11-cpan-71847e10f99 )