예제 #1
0
int main(int argc, char *argv[])
{
	int c, ec_k = -1, unitig_k = -1;
	char *seq, *qual;
	FILE *fp;
	int64_t l;
	while ((c = getopt(argc, argv, "k:l:")) >= 0) {
		switch (c) {
			case 'k': ec_k = atoi(optarg); break;
			case 'l': unitig_k = atoi(optarg); break;
		}
	}
	if (optind + 1 >= argc) {
		fprintf(stderr, "Local assembler for small peak regions. Output cleaned unitigs.\nUsage: SAPPER_fermi [-k ecKmer] [-l utgKmer] <in.fq> <out.fq>\n");
		return 1;
	}
	fp = fopen( argv[optind+1], "wb");
	l = fm6_api_readseq(argv[optind], &seq, &qual);
	fm6_api_correct(ec_k, l, seq, qual);
	mag_t *g;
	free(qual);
	g = fm6_api_unitig(unitig_k, l, seq);
	magopt_t *opt = mag_init_opt();
	//opt->flag |= MOG_F_AGGRESSIVE | MOG_F_CLEAN;
	opt->flag |= MOG_F_CLEAN;
	opt->min_merge_len = 30;
	mag_g_clean(g, opt);
	free(opt);
	mag_g_fprint(g, fp);
	mag_g_destroy(g);
	free(seq);
	return 0;
}
예제 #2
0
파일: misc.c 프로젝트: lh3/fermi-lite
void fml_opt_init(fml_opt_t *opt)
{
	opt->n_threads = 1;
	opt->ec_k = 0;
	opt->min_cnt = 4;
	opt->max_cnt = 8;
	opt->min_asm_ovlp = 33;
	opt->min_merge_len = 0;
	mag_init_opt(&opt->mag_opt);
	opt->mag_opt.flag = MAG_F_NO_SIMPL | MAG_F_POPOPEN;
}