From: martinahansen Date: Thu, 21 Aug 2008 03:55:34 +0000 (+0000) Subject: fixed bug in vmatch_index X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=353364cfca10ca6c01437465d3a53532009d978f;p=biopieces.git fixed bug in vmatch_index git-svn-id: http://biopieces.googlecode.com/svn/trunk@214 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/code_c/Maasha/src/gmon.out b/code_c/Maasha/src/gmon.out index 4c6cbd9..330a6bc 100644 Binary files a/code_c/Maasha/src/gmon.out and b/code_c/Maasha/src/gmon.out differ diff --git a/code_c/Maasha/src/inc/fasta.h b/code_c/Maasha/src/inc/fasta.h index a0f5619..6d7c5c4 100644 --- a/code_c/Maasha/src/inc/fasta.h +++ b/code_c/Maasha/src/inc/fasta.h @@ -1,3 +1,4 @@ +#define MAX_SEQ_NAME 1024 #define FASTA_BUFFER 256 * 1024 #define isseq( x ) ( x > 32 && x < 127 ) ? TRUE : FALSE @@ -15,6 +16,9 @@ typedef struct _seq_entry seq_entry; /* Count all entries in a FASTA file given a file pointer. */ size_t fasta_count( FILE *fp ); +/* Get the next FASTA sequence name from a stream. */ +bool fasta_get_seq_name( FILE *fp, char **seq_name_ppt ); + /* Get next sequence entry from a FASTA file given a file pointer. */ bool fasta_get_entry( file_buffer **buffer_ppt, seq_entry **entry ); diff --git a/code_c/Maasha/src/lib/fasta.c b/code_c/Maasha/src/lib/fasta.c index 3e5880c..493cbe7 100644 --- a/code_c/Maasha/src/lib/fasta.c +++ b/code_c/Maasha/src/lib/fasta.c @@ -118,6 +118,34 @@ bool fasta_get_entry( file_buffer **buffer_ppt, seq_entry **entry_ppt ) } +bool fasta_get_seq_name( FILE *fp, char **seq_name_ppt ) +{ + /* Martin A. Hansen, August 2008 */ + + /* Get the next FASTA sequence name from a stream. */ + + char *pt; + char buffer[ MAX_SEQ_NAME ]; + + while ( 1 ) + { + if ( ( pt = fgets( buffer, MAX_SEQ_NAME, fp ) ) ) + { + printf( "buffer: %s\n", buffer ); + + if ( buffer[ 0 ] == '>' ) + { + *seq_name_ppt = &buffer[ 1 ]; + + return TRUE; + } + } + } + + return FALSE; +} + + //bool fasta_get_entry( FILE *fp, seq_entry **entry ) //{ // /* Martin A. Hansen, May 2008 */ diff --git a/code_c/Maasha/src/test/test_fasta.c b/code_c/Maasha/src/test/test_fasta.c index cebb6d7..b9641a0 100644 --- a/code_c/Maasha/src/test/test_fasta.c +++ b/code_c/Maasha/src/test/test_fasta.c @@ -61,6 +61,15 @@ void test_fasta_get_seq_name() { fprintf( stderr, " Testing fasta_get_seq_name ... " ); + FILE *fp = NULL; + char *seq_name = NULL; + + fp = read_open( TEST_FILE1 ); + + fasta_get_seq_name( fp, &seq_name ); + + printf( "SEQ_NAME: ->%s<-\n", seq_name ); + assert( strcmp( seq_name, "test0" ) == 0 ); fprintf( stderr, "OK\n" ); diff --git a/code_perl/Maasha/Match.pm b/code_perl/Maasha/Match.pm index c74d719..930c34a 100644 --- a/code_perl/Maasha/Match.pm +++ b/code_perl/Maasha/Match.pm @@ -345,7 +345,7 @@ sub vmatch_index &Maasha::Common::run( "mkvtree", "-db $tmp_dir/$tmp_file -dna -pl -allout -indexname $dst_dir/$tmp_file > /dev/null 3>&1" ); unlink "$tmp_dir/$tmp_file"; -# } + } close $fh; }