void get_args (int argc, char **argv, int *output_mode, struct mafFile **file, char **id, struct MOTIF **motif, int *do_order, int *nrow, float *cutoff, int *misses_allowed) { int i; if (argc < 5 || argc > 12) fatalf (SYNTAX); if (strcmp (argv[1], "-verbose") == 0) *output_mode = VERBOSE; else if (strcmp (argv[1], "-gala") == 0) *output_mode = GALA; else if (strcmp (argv[1], "-hgb") == 0) *output_mode = HGB; else fatalf (SYNTAX); *file = mafOpen (argv[2]); strcpy (*id, argv[4]); i = 5; argc -= 5; while (argc) { if (strcmp (argv[i], "-order") == 0) *do_order = 1; else if (strcmp (argv[i], "-nseq") == 0) { i++; argc--; if (argc == 0) fatal (SYNTAX); *nrow = atoi (argv[i]); if (*nrow < 2) fatal ("Number of sequences must be at least 2.\n"); } else if (strcmp (argv[i], "-cut") == 0) { i++; argc--; if (argc == 0) fatal (SYNTAX); *cutoff = atof (argv[i]); if (*cutoff < 0.0 || *cutoff > 1.0) fatal ("Cutoff value must be between 0 and 1.\n"); } else if (strcmp (argv[i], "-nm") == 0) { i++; argc--; if (argc == 0) fatal (SYNTAX); *misses_allowed = atoi (argv[i]); if (*misses_allowed < 0) fatal ("Number of misses cannot be negative.\n"); } else fatalf (SYNTAX); argc--; i++; } init_motif (motif, argv[3], *cutoff, *id); }
void init(data *d) { init_alph(&d->alph, d->a.alph_name); init_motif(&d->m, d); init_d_prior(&d->scorer.d_prior, d); init_i_prior(&d->scorer.i_prior, d); init_e_prior(&d->scorer.e_prior, d); init_scores(d); init_dp(d); init_hit(d); d->out = xfopen(d->a.out_file, "w"); }