GtRegionMapping* gt_region_mapping_new_encseq_seqno(GtEncseq *encseq) { GtRegionMapping *rm; rm = gt_region_mapping_new_encseq(encseq, false, false); rm->useseqno = true; return rm; }
static int gt_tir_runner(GT_UNUSED int argc, GT_UNUSED const char **argv, GT_UNUSED int parsed_args, void *tool_arguments, GtError *err) { GtTirArguments *arguments = tool_arguments; GtNodeStream *tir_stream = NULL, *pdom_stream = NULL, *gff3_out_stream = NULL, *last_stream = NULL; GtPdomModelSet *ms = NULL; GtRegionMapping *rmap = NULL; int had_err = 0; gt_error_check(err); gt_assert(arguments); tir_stream = gt_tir_stream_new(arguments->str_indexname, arguments->min_seed_length, arguments->min_TIR_length, arguments->max_TIR_length, arguments->min_TIR_distance, arguments->max_TIR_distance, arguments->arbit_scores, arguments->xdrop_belowscore, arguments->similarity_threshold, arguments->best_overlaps, arguments->no_overlaps, arguments->min_TSD_length, arguments->max_TSD_length, arguments->vicinity, err); if (tir_stream == NULL) return -1; last_stream = tir_stream; rmap = gt_region_mapping_new_encseq((GtEncseq*) gt_tir_stream_get_encseq((GtTIRStream*) tir_stream), true, false); gt_assert(rmap); if (!had_err && gt_str_array_size(arguments->hmm_files) > 0) { if (!strcmp(gt_str_get(arguments->cutoffs), "GA")) { arguments->cutoff = GT_PHMM_CUTOFF_GA; } else if (!strcmp(gt_str_get(arguments->cutoffs), "TC")) { arguments->cutoff = GT_PHMM_CUTOFF_TC; } else if (!strcmp(gt_str_get(arguments->cutoffs), "NONE")) { arguments->cutoff = GT_PHMM_CUTOFF_NONE; } else { gt_error_set(err, "invalid cutoff setting!"); had_err = -1; } } if (!had_err && gt_str_array_size(arguments->hmm_files) > 0) { GtNodeVisitor *pdom_v; ms = gt_pdom_model_set_new(arguments->hmm_files, err); if (ms != NULL) { pdom_v = gt_ltrdigest_pdom_visitor_new(ms, arguments->cutoff, arguments->chain_max_gap_length, arguments->evalue_cutoff, rmap, err); if (pdom_v == NULL) had_err = -1; if (!had_err) { last_stream = pdom_stream = gt_visitor_stream_new(last_stream, pdom_v); gt_ltrdigest_pdom_visitor_set_root_type((GtLTRdigestPdomVisitor*) pdom_v, gt_ft_terminal_inverted_repeat_element); gt_ltrdigest_pdom_visitor_set_source_tag((GtLTRdigestPdomVisitor*) pdom_v, "TIRvish"); } } else had_err = -1; } gff3_out_stream = gt_gff3_out_stream_new(last_stream, NULL); last_stream = gff3_out_stream; /* pull the features through the stream and free them afterwards */ if (!had_err) had_err = gt_node_stream_pull(last_stream, err); gt_node_stream_delete(tir_stream); gt_node_stream_delete(pdom_stream); gt_node_stream_delete(gff3_out_stream); gt_region_mapping_delete(rmap); gt_pdom_model_set_delete(ms); return had_err; }