7a5533f3131b50e00f7568767cf837c4c418b6a0 kent Thu May 12 06:40:55 2022 -0700 Outputting all genes with same name so get refSeq on both alts and main chromosomes. diff --git src/hg/utils/gencodeGeneSymVerTx/gencodeGeneSymVerTx.c src/hg/utils/gencodeGeneSymVerTx/gencodeGeneSymVerTx.c index 39595af..3d5d551 100644 --- src/hg/utils/gencodeGeneSymVerTx/gencodeGeneSymVerTx.c +++ src/hg/utils/gencodeGeneSymVerTx/gencodeGeneSymVerTx.c @@ -398,33 +398,34 @@ { v->geneList = makeGencodeGeneList(v); v->gpHash = hashGenePredFile(v->genePredName); } versionList = slCat(refSeqVersionList, versionList); /* Now make output */ FILE *f = mustOpen(output, "w"); fprintf(f, "#gene\tsymbol\tgencodeVersion\tucscDb\tchrom\tchromStart\tchromEnd\ttranscript\tscore\tstrand\tthickStart\tthickEnd\titemRgb\tblockCount\tblockSizes\tblockStarts\n"); for (v = versionList; v != NULL; v = v->next) { struct gene *gene; for (gene = v->geneList; gene != NULL; gene = gene->next) { - struct genePred *gp = hashFindVal(v->gpHash, gene->bestTx->name); - if (gp != NULL) + struct hashEl *hel; + for (hel = hashLookup(v->gpHash, gene->bestTx->name); hel!=NULL; hel = hashLookupNext(hel)) { + struct genePred *gp = hel->val; fprintf(f, "%s\t%s\t%s\t%s\t", gene->name, gene->symbol, v->name, v->ucscDb); /* Print scalar bed fields. */ fprintf(f, "%s\t", gp->chrom); fprintf(f, "%u\t", gp->txStart); fprintf(f, "%u\t", gp->txEnd); fprintf(f, "%s\t", gene->bestTx->name); fprintf(f, "%u\t", 0); fprintf(f, "%s\t", gp->strand); fprintf(f, "%u\t", gp->cdsStart); fprintf(f, "%u\t", gp->cdsEnd); fprintf(f, "%u\t", 0); fprintf(f, "%u\t", gp->exonCount); /* Print exon-by-exon fields. */