src/hg/hgc/hgc.c 1.1586
1.1586 2010/01/12 21:07:53 fanhsu
Added tRNAs track process per request from Todd Lowe.
Index: src/hg/hgc/hgc.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/hgc.c,v
retrieving revision 1.1585
retrieving revision 1.1586
diff -b -B -U 4 -r1.1585 -r1.1586
--- src/hg/hgc/hgc.c 5 Jan 2010 23:10:35 -0000 1.1585
+++ src/hg/hgc/hgc.c 12 Jan 2010 21:07:53 -0000 1.1586
@@ -10278,8 +10278,62 @@
geneShowCommon(geneName, tdb, pepTable);
printTrackHtml(tdb);
}
+void doTrnaGenesGb(struct trackDb *tdb, char *trnaName)
+{
+char *track = tdb->tableName;
+struct tRNAs *trna;
+char query[512];
+struct sqlConnection *conn = hAllocConn(database);
+struct sqlResult *sr;
+char *dupe, *words[16];
+char **row;
+int wordCount;
+int rowOffset;
+
+genericHeader(tdb,trnaName);
+dupe = cloneString(tdb->type);
+wordCount = chopLine(dupe, words);
+
+rowOffset = hOffsetPastBin(database, seqName, track);
+sprintf(query, "select * from %s where name = '%s'", track, trnaName);
+sr = sqlGetResult(conn, query);
+while ((row = sqlNextRow(sr)) != NULL)
+ {
+ trna = tRNAsLoad(row+rowOffset);
+
+ printf("<img align=right src=\"../RNA-img/%s/%s-%s-%s.gif\" alt='tRNA secondary structure for %s'>\n",
+ database,database,trna->chrom,trna->name,trna->name);
+
+ printf("<B>tRNA name: </B> %s<BR>\n",trna->name);
+ printf("<B>tRNA Isotype: </B> %s<BR>\n",trna->aa);
+ printf("<B>tRNA anticodon: </B> %s<BR>\n",trna->ac);
+ printf("<B>tRNAscan-SE score: </B> %.2f<BR>\n",trna->trnaScore);
+ printf("<B>Intron(s): </B> %s<BR>\n",trna->intron);
+ if (!sameString(trna->genomeUrl, ""))
+ {
+ printf("<B>Summary of all genomic tRNA predictions:</B> "
+ "<A HREF=\"%s\" TARGET=_blank>Link</A><BR>\n", trna->genomeUrl);
+ printf("<B>tRNA alignments:</B> "
+ "<A HREF=\"%s\" TARGET=_blank>Link</A><BR>\n", trna->trnaUrl);
+ }
+ printf("<BR><B>Genomic size: </B> %d nt<BR>\n",trna->chromEnd-trna->chromStart);
+ printf("<B>Position:</B> "
+ "<A HREF=\"%s&db=%s&position=%s%%3A%d-%d\">",
+ hgTracksPathAndSettings(), database, trna->chrom, trna->chromStart+1, trna->chromEnd);
+ printf("%s:%d-%d</A><BR>\n", trna->chrom, trna->chromStart+1, trna->chromEnd);
+ printf("<B>Strand:</B> %s<BR>\n", trna->strand);
+
+ if (trna->next != NULL)
+ printf("<hr>\n");
+ }
+ sqlFreeResult(&sr);
+ hFreeConn(&conn);
+ printTrackHtml(tdb);
+ tRNAsFree(&trna);
+}
+
void doVegaGeneZfish(struct trackDb *tdb, char *name)
/* Handle click on Vega gene track for zebrafish. */
{
struct vegaInfoZfish *vif = NULL;
@@ -21816,8 +21870,12 @@
else if (sameWord(track, "sanger22"))
{
doSangerGene(tdb, item, "sanger22pep", "sanger22mrna", "sanger22extra");
}
+else if (sameWord(track,"tRNAs"))
+ {
+ doTrnaGenesGb(tdb, item);
+ }
else if (sameWord(track, "sanger20"))
{
doSangerGene(tdb, item, "sanger20pep", "sanger20mrna", "sanger20extra");
}