{
fprintf( stderr, "Counting oligos in: %s ... ", entry->seq_name );
+ /* ---- Sense strand ---- */
+
+ bin = 0;
+ j = 0;
+
+ for ( i = 0; entry->seq[ i ]; i++ )
+ {
+ bin <<= 2;
+
+ switch( entry->seq[ i ] )
+ {
+ case 'A': case 'a': j++; break;
+ case 'T': case 't': bin |= T; j++; break;
+ case 'C': case 'c': bin |= C; j++; break;
+ case 'G': case 'g': bin |= G; j++; break;
+ default: bin = 0; j = 0; break;
+ }
+
+ if ( j >= OLIGO_SIZE )
+ {
+ array[ ( bin & mask ) ]++;
+/*
+ printf( "\n" );
+ printf( "mask : %s\n", bits2string( mask ) );
+ printf( "bin : %s\n", bits2string( bin ) );
+ printf( "bin & mask: %s\n", bits2string( bin & mask ) );
+*/
+ }
+ }
+
+ /* ---- Anti-sense strand ---- */
+
+ revcomp_dna( entry->seq );
+
bin = 0;
j = 0;