GtOBOParseTree* gt_obo_parse_tree_new(const char *obo_file_path, GtError *err) { GtOBOParseTree *obo_parse_tree; GtIO *obo_file; gt_error_check(err); gt_assert(obo_file_path); obo_file = gt_io_new(obo_file_path, "r"); obo_parse_tree = gt_malloc(sizeof *obo_parse_tree); obo_parse_tree->obo_header = obo_header_new(); obo_parse_tree->stanzas = gt_array_new(sizeof (GtOBOStanza*)); if (parse_obo_file(obo_parse_tree, obo_file, err)) { gt_obo_parse_tree_delete(obo_parse_tree); gt_io_delete(obo_file); return NULL; } gt_io_delete(obo_file); return obo_parse_tree; }
GtXRFAbbrParseTree* gt_xrf_abbr_parse_tree_new(const char *xrf_abbr_file_path, GtError *err) { GtXRFAbbrParseTree *xrf_abbr_parse_tree; GtIO *xrf_abbr_file; gt_error_check(err); gt_assert(xrf_abbr_file_path); xrf_abbr_file = gt_io_new(xrf_abbr_file_path, "r"); xrf_abbr_parse_tree = gt_malloc(sizeof *xrf_abbr_parse_tree); xrf_abbr_parse_tree->entries = gt_array_new(sizeof (GtXRFAbbrEntry*)); if (parse_xrf_abbr_file(xrf_abbr_parse_tree, xrf_abbr_file, err)) { gt_xrf_abbr_parse_tree_delete(xrf_abbr_parse_tree); gt_io_delete(xrf_abbr_file); return NULL; } gt_io_delete(xrf_abbr_file); return xrf_abbr_parse_tree; }
int gt_bed_parser_parse(GtBEDParser *bed_parser, GtQueue *genome_nodes, const char *filename, GtError *err) { GtIO *bed_file; int had_err; gt_error_check(err); gt_assert(bed_parser && genome_nodes); bed_file = gt_io_new(filename, "r"); /* parse BED file */ had_err = parse_bed_file(bed_parser, bed_file, err); /* process created region and feature nodes */ gt_region_node_builder_build(bed_parser->region_node_builder, genome_nodes); gt_region_node_builder_reset(bed_parser->region_node_builder); while (gt_queue_size(bed_parser->feature_nodes)) gt_queue_add(genome_nodes, gt_queue_get(bed_parser->feature_nodes)); gt_io_delete(bed_file); return had_err; }
static void gt_fasta_reader_rec_free(GtFastaReader *fr) { GtFastaReaderRec *gt_fasta_reader_rec = gt_fasta_reader_rec_cast(fr); gt_io_delete(gt_fasta_reader_rec->seqio); }