int main(int argc, char **argv){ FILE *in; char fname[100]; char *kmer; int i,j; char seqname[50]; char ch; char dummy[100]; int seqlen; int klen; fname[0] = 0; for (i=0;i<argc;i++){ if (!strcmp(argv[i], "-i")) strcpy(fname, argv[i+1]); else if (!strcmp(argv[i], "-s")){ kmer = (char *) malloc(sizeof(char) * strlen(argv[i+1])); strcpy(kmer, argv[i+1]); for (j=0;j<strlen(kmer);j++) kmer[j] = toupper(kmer[j]); } } if (fname[0] == 0 || kmer[0] ==0) return 0; in = fopen(fname, "r"); fscanf(in, "%c", &ch); fscanf(in, "%s", seqname); fgets(dummy, 100, in); i=0; while(fscanf(in, "%c", &ch) > 0){ if (!isspace(ch)) seq[i++]=toupper(ch); } seq[i]=0; seqlen=i; klen = strlen(kmer); for(i=0;i<seqlen-klen+1;i++){ if (match(i, seq, kmer)) printf("%s\t%d\t%d\tF\n", seqname, (i+1), (i+1+klen)); else if (match_r(i, seq, kmer)) printf("%s\t%d\t%d\tR\n",seqname, (i+1), (i+1+klen)); } return 1; }
/* * The run_benchmarks function will run the registered benchmarks. */ void run_benchmarks(const options& opts) { std::regex match_r(opts.get_bench()); auto benchmarks = registration::get_ptr()->get_benchmarks(); for (auto& info : benchmarks) { if (std::regex_match(info.get_name(), match_r)) { context c(info, opts); auto r = c.run(); std::cout << std::setw(35) << std::left << info.get_name() << r.to_string() << std::endl; } } }