From 9f421462a894cd7d12a72a60bcd329dd81c34715 Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Wed, 29 Jan 2014 17:05:27 -0500 Subject: fix warning --- src/melting_range.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/melting_range.c (limited to 'src') diff --git a/src/melting_range.c b/src/melting_range.c new file mode 100644 index 0000000..5752ad0 --- /dev/null +++ b/src/melting_range.c @@ -0,0 +1,58 @@ +#include +#include +#include +#include + +float melting_temperature(char *mer) { + + float a = 0; + float c = 0; + float g = 0; + float t = 0; + size_t i = 0; + + for(i = 0; i < strlen(mer); i++) { + switch(mer[i]) { + case 'A': + a++; + break; + case 'C': + c++; + break; + case 'G': + g++; + break; + case 'T': + t++; + break; + default: + break; + } + } + + if(strlen(mer) < 13) + return ((a+t) * 2) + ((c+g) * 4); + else + return 64.9 + 41.0*(g+c-16.4)/(a+t+g+c); +} + +int main(int argc, char **argv){ + + if(argc < 3) { + printf("please supply the min and max as stdargs"); + exit(EXIT_FAILURE); + } + float min = atof(argv[1]); + float max = atof(argv[2]); + + char mer[64]; + int count = 0; + + while(fscanf(stdin, "%s\t%d\n", mer, &count) == 2) { + float temp = melting_temperature(mer); + if( (temp >= min) && (temp <= max) ) + printf("%s\t%d\n", mer, count); + } + + exit(EXIT_SUCCESS); +} -- cgit v1.2.3