CracTools

 view release on metacpan or  search on metacpan

lib/CracTools/Utils.pm  view on Meta::CPAN

  }
  return $encoded_str;
}


# Decode base 64 error list
sub decodePosListInBase64 {
  my $encoded_str = shift;

  my @encoded_list = split "", $encoded_str;
  my (@index,@decoded_list);

  #Looking for index of each char
  foreach my $j (@encoded_list) {
    my @ind = grep { $Base64_ENCODING[$_] eq $j } 0 .. $#Base64_ENCODING;
    push(@index,$ind[0]);
  }

  # Convert into list position
  for (my $e = 0; $e < (0+@encoded_list);$e++) {
    for(my $i=0; $i<$Base64_BITNESS; $i++) {
      if ($index[$e] & (1 << $i)) {
        my $pos = (int($i+$Base64_BITNESS*$e));
        push(@decoded_list,$pos);
      }
    }
  }

  return @decoded_list;
}




sub seqFileIterator {
  my ($file,$format) = @_;

  croak "Missing file in argument of seqFileIterator" if !defined $file;

lib/CracTools/Utils.pm  view on Meta::CPAN

Add the "chr" prefix to the given string

=head1 ENCODING

=head2 encodePosListToBase64

Encode a (0-based) list of increasing position to a string using Base64
encoding scheme : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

  my $encoded_list = CracTools::Utils::encodePosListToBase64(1,3,5,8,12,32);
  my @decoded_list = CracTools::Utils::decodePosListInBase64($encoded_list);

=head2 decodePosListInBase64

Decode position list encoded by encodePosListToBase64.

=head1 PARSING

This are some tools that aim to read (bio) files like

=over

t/CracTools-Utils.t  view on Meta::CPAN

  is($cigar[2]->{nb},  1);
  is($cigar[3]->{op}, 'I');
  is($cigar[3]->{nb},  2);
  is($cigar[4]->{op}, 'M');
  is($cigar[4]->{nb},  3);
}

# Encoding in Base64
{
  my $encoded_list = CracTools::Utils::encodePosListToBase64(1,3,5,8,12,32);
  my @decoded_list = CracTools::Utils::decodePosListInBase64($encoded_list);
  is(@decoded_list,6);
  is($decoded_list[0],1);
  is($decoded_list[1],3);
  is($decoded_list[2],5);
  is($decoded_list[3],8);
  is($decoded_list[4],12);
  is($decoded_list[5],32);
}


__FASTQ__
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
TTAATTGGTAAATAAATCTCCTAATAGCTTAGATNTTACCTTNNNNNNNNNNTAGTTTCTTGAGATTTGTTGGGGGAGACATTTTTGTGATTGCCTTGAT
+HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
efcfffffcfeefffcffffffddf`feed]`]_Ba_^__[YBBBBBBBBBBRTT\]][]dddd`ddd^dddadd^BBBBBBBBBBBBBBBBBBBBBBBB
@SRR1107833.1 DHCDZDN1:5:1101:1102:1069 length=101
GTGGGGAAGGATCGCAGGCGAGATTACGAGGCGAGGCTCGCGCGCCCGCCCCCGCCCTGGCCCCCAGTGCCCACCCGGTCGGCCCGGCACAGCCATGATCA



( run in 0.350 second using v1.01-cache-2.11-cpan-26ccb49234f )