static void gff3ToPsl(char *mapFile, char *inGff3File, char *outPSL) /* gff3ToPsl - convert a GFF3 file to a genePred file. */ { struct hash *chromHash = readSizes(mapFile); struct hash *processed = hashNew(12); struct gff3File *gff3File = loadGff3(inGff3File); FILE *pslF = mustOpen(outPSL, "w"); struct gff3AnnRef *root; for (root = gff3File->roots; root != NULL; root = root->next) { if (!isProcessed(processed, root->ann)) { processRoot(pslF, root->ann, processed, chromHash); if (convertErrCnt >= maxConvertErrs) break; } } carefulClose(&pslF); if (convertErrCnt > 0) errAbort("%d errors converting GFF3 file: %s", convertErrCnt, inGff3File); #if 0 // free memory for leak debugging if 1 gff3FileFree(&gff3File); hashFree(&processed); #endif }
static void gff3Tester(char *gff3InFile, char *gff3OutFile) /* tester for GFF3 objects */ { struct gff3File *g3f = gff3FileOpen(gff3InFile, -1, NULL); gff3FileWrite(g3f, gff3OutFile); gff3FileFree(&g3f); }