diff --git a/excercise2/gengenome.sh b/excercise2/gengenome.sh index 10da337..446554f 100755 --- a/excercise2/gengenome.sh +++ b/excercise2/gengenome.sh @@ -8,7 +8,7 @@ num_char=100 for i in {0..500} do line="" - for i in {0..100} + for i in {0..99} do choice=$((RANDOM % 4)) line+=${letters[choice]} diff --git a/excercise2/parsegenome.c b/excercise2/parsegenome.c index 4147eac..d339e7d 100644 --- a/excercise2/parsegenome.c +++ b/excercise2/parsegenome.c @@ -1,6 +1,5 @@ #include -#include - +#include int main ( int argc, char** args ){ /* @@ -11,15 +10,13 @@ int main ( int argc, char** args ){ if( argc != 2){ - printf("Program use: ./a.out ); + printf("Program use: ./a.out "); } else { - string arg1 = args[1]; - string arg2 = args[2]; - printf("Argument 1 : %s , Argument 2 : %s \n", args[0], args[1]); + printf("Argument 1 : %s\n", args[1]); - FILE* genomeFile = fopen(arg1, 'r' ); + FILE* genomeFile = fopen(args[1], "r" ); /* * File specification/requirements * The file must contain: @@ -35,13 +32,52 @@ int main ( int argc, char** args ){ // step 5: if not okay close file and program exits (-1) // step 6: if okay close file and program exits (0) + const int LINESIZE = 101; + unsigned int A = 0, G = 0, C = 0, T = 0; + printf("start count: %i , %i , %i , %i\n" , A, C, G, T); + for ( int i = 0; i < 500 ; i++){ + char line[LINESIZE]; + int bytesRead = fread(line, sizeof *line, LINESIZE, genomeFile); + if( bytesRead != LINESIZE ){ + printf("Could only read %i bytes", bytesRead); + goto FAILURE; + } + for ( int j = 0; j < 100; j++ ) { + if( line[j] == 'A') { + A ++; + continue; + } + if( line[j] == 'C' ) { + C ++; + continue; + } + if( line[j] == 'G' ){ + G ++; + continue; + } + if( line[j] == 'T' ) { + T ++; + continue; + } + printf("line %i character %i: %s is not valid.",i,j,line[j]); + goto FAILURE; + } - - + if( line[100] != '\n') { + printf("Read %c instead of newline ", line[100]); + goto FAILURE; + } + } + fclose (genomeFile); + + printf("Counted A's %i\nCounted C's %i\nCounted G's %i\nCounted T's %i\n" ,A ,C ,G ,T); exit(0); + + FAILURE: + fclose(genomeFile); + exit(-1); } - }