From 41d33155bff30592aace21965ab3761673016854 Mon Sep 17 00:00:00 2001 From: martinahansen Date: Mon, 25 Aug 2008 00:20:17 +0000 Subject: [PATCH] added revcomp_dna to repeat-O-matic git-svn-id: http://biopieces.googlecode.com/svn/trunk@220 74ccb610-7750-0410-82ae-013aeee3265d --- code_c/Maasha/src/repeat-O-matic.c | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/code_c/Maasha/src/repeat-O-matic.c b/code_c/Maasha/src/repeat-O-matic.c index dcfa1dd..765b4ef 100644 --- a/code_c/Maasha/src/repeat-O-matic.c +++ b/code_c/Maasha/src/repeat-O-matic.c @@ -94,6 +94,40 @@ void oligo_count( char *path, uint **array_ppt, uint mask ) { 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; -- 2.39.5