6db164b1639cb2219a062e0ff86df8d37ee4f63f markd Fri Jul 15 09:51:51 2011 -0700 added links to obtain predicted sequences for GENCODE genes diff --git src/hg/hgc/gencodeClick.c src/hg/hgc/gencodeClick.c index ef9c25a..4c62fb0 100644 --- src/hg/hgc/gencodeClick.c +++ src/hg/hgc/gencodeClick.c @@ -182,30 +182,56 @@ printf("Ensembl automatic"); prTdExtIdAnchor(tdb, transAttrs->transcriptId, "ensemblTranscriptIdUrl"); prTdExtIdAnchor(tdb, transAttrs->geneId, "ensemblGeneIdUrl"); printf("\n"); printf("Biotype%s%s\n", transAttrs->transcriptType, transAttrs->geneType); /* FIXME: add href o */ printf("Status%s%s\n", transAttrs->transcriptStatus, transAttrs->geneStatus); printf("Method%s%s\n", getMethodDesc(transcriptSource->source), getMethodDesc(geneSource->source)); printf("HUGO gene%s\n", transAttrs->geneName); printf("CCDS%s\n", transAttrs->ccdsId); // FIXME: add sequence here?? printf("\n"); } +static void writeSequenceHtml(struct trackDb *tdb, char *gencodeId, struct genePred *transAnno) +/* write links to get sequences */ +{ +printf("\n"); +printf("\n"); +printf("\n"); +if (transAnno->cdsStart < transAnno->cdsEnd) + { + // protein coding + printf("\n"); + } +else + { + // non-protein coding + printf("\n"); + } +printf("
Sequences
"); + hgcAnchorSomewhere("htcGeneMrna", gencodeId, tdb->table, seqName); + printf("Predicted mRNA"); + printf(""); + hgcAnchorSomewhere("htcTranslatedPredMRna", gencodeId, "translate", seqName); + printf("Predicted protein
"); + hgcAnchorSomewhere("htcGeneMrna", gencodeId, tdb->table, seqName); + printf("Predicted mRNA
\n"); +} + static void writePdbLinkHtml(struct wgEncodeGencodePdb *pdbs) /* write HTML links to PDB */ { printf("\n"); printf("\n"); printf("\n"); struct wgEncodeGencodePdb *pdb = pdbs; int i, rowCnt = 0; while ((pdb != NULL) || (rowCnt == 0)) { printf(""); for (i = 0; i < 3; i++) { printf("
Protein Data Bank
"); if (pdb != NULL) @@ -401,31 +427,31 @@ static struct supportEvid *loadSupportEvid(struct wgEncodeGencodeTranscriptSupport *transcriptSupports, struct wgEncodeGencodeExonSupport *exonSupports) /* load transcript and supporting evidence into a common structure */ { struct supportEvid *supportEvids = NULL; transcriptSupportToSupportEvid(&supportEvids, transcriptSupports); exonSupportToSupportEvid(&supportEvids, exonSupports); sortUniqSupportExidence(&supportEvids); return supportEvids; } static void writeSupportExidenceEntry(struct supportEvid *supportEvid) /* write HTML table entry for a supporting evidence */ { -// FIXME: should like to sources when possible +// FIXME: should link to sources when possible printf("%s", supportEvid->seqSrc); printf("%s", supportEvid->seqId); } static void writeSupportingEvidenceLinkHtml(struct wgEncodeGencodeTranscriptSupport *transcriptSupports, struct wgEncodeGencodeExonSupport *exonSupports) /* write HTML links to supporting evidence */ { struct supportEvid *supportEvids = loadSupportEvid(transcriptSupports, exonSupports); printf("\n"); printf("\n"); printf("\n"); printf("\n"); struct supportEvid *supportEvid = supportEvids; @@ -502,31 +528,31 @@ int geneChromStart, geneChromEnd; getGeneBounds(tdb, conn, transAnno, &geneChromStart, &geneChromEnd); char *title = "GENCODE Transcript Annotation"; char header[256]; safef(header, sizeof(header), "%s %s", title, gencodeId); if (!isEmpty(transAttrs->geneName)) safef(header, sizeof(header), "%s %s (%s)", title, gencodeId, transAttrs->geneName); else safef(header, sizeof(header), "%s %s", title, gencodeId); cartWebStart(cart, database, "%s", header); printf("

%s

\n", header); writeBasicInfoHtml(tdb, gencodeId, transAnno, transAttrs, geneChromStart, geneChromEnd, geneSource, transcriptSource); writeTagLinkHtml(tags); -/* FIXME: sequence links */ +writeSequenceHtml(tdb, gencodeId, transAnno); writePdbLinkHtml(pdbs); writePubMedLinkHtml(pubMeds); writeRefSeqLinkHtml(refSeqs); writeUniProtLinkHtml(uniProts); writeSupportingEvidenceLinkHtml(transcriptSupports, exonSupports); wgEncodeGencodeAttrsFree(&transAttrs); wgEncodeGencodeGeneSourceFreeList(&geneSource); wgEncodeGencodeTranscriptSourceFreeList(&transcriptSource); wgEncodeGencodePdbFreeList(&pdbs); wgEncodeGencodePubMedFreeList(&pubMeds); wgEncodeGencodeRefSeqFreeList(&refSeqs); wgEncodeGencodeTranscriptSupportFreeList(&transcriptSupports); wgEncodeGencodeExonSupportFreeList(&exonSupports); wgEncodeGencodeUniProtFreeList(&uniProts); }
Supporting Evidence
SourceSequenceSourceSequence