e70152e44cc66cc599ff6b699eb8adc07f3e656a kent Sat May 24 21:09:34 2014 -0700 Adding Copyright NNNN Regents of the University of California to all files I believe with reasonable certainty were developed under UCSC employ or as part of Genome Browser copyright assignment. diff --git src/hg/hgc/numtsClick.c src/hg/hgc/numtsClick.c index 8d121ff..813c60a 100644 --- src/hg/hgc/numtsClick.c +++ src/hg/hgc/numtsClick.c @@ -1,135 +1,138 @@ /* numtsClick - hgc code to display Numts track item detail page */ + +/* Copyright (C) 2013 The Regents of the University of California + * See README in this or parent directory for licensing information. */ #include "common.h" #include "hgc.h" #include "numtsClick.h" void doNumtS(struct trackDb *tdb, char *itemName) /* Put up page for NumtS. */ { char *table = tdb->table; struct sqlConnection *conn = hAllocConn(database); struct bed *bed; char query[512]; struct sqlResult *sr; char **row; boolean firstTime = TRUE; int start = cartInt(cart, "o"); int num = 6; char itemNameDash[64]; /* itenName appended with a "_" */ char itemNameTrimmed[64]; /* itemName trimed at last "_" */ int sDiff = 30; /* acceptable difference of genomics size */ /* message strings */ char *clickMsg = NULL; char *openMsg1 = "Click 'browser' link below to open Genome Browser at genomic position where"; char *openMsg2 = "maps\n"; char *openMsgM = "Click 'browser' link below to open Genome Browser at mitochondrial position where"; genericHeader(tdb, itemName); genericBedClick(conn, tdb, itemName, start, num); safecpy(itemNameDash, sizeof(itemNameDash),itemName); safecat(itemNameDash,64,"_"); safecpy(itemNameTrimmed, sizeof(itemNameTrimmed),itemName); chopSuffixAt(itemNameTrimmed, '_'); sqlSafef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand from %s where name='%s'", table, itemName); sr = sqlGetResult(conn, query); int sSize=0; while ((row = sqlNextRow(sr)) != NULL) { bed = bedLoad6(row); sSize = bed->chromEnd - bed->chromStart; /* printf("sSize is: %5d <BR>", sSize); */ } if (sameString("hg18", database)) { if (sameString("numtS", table) || sameString("numtSAssembled", table)) { sqlSafef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtSMitochondrionChrPlacement where ( " "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND " " (ABS((chromEnd - chromStart)-%d) <= %d ))) ", itemName, itemNameDash, itemNameTrimmed, sSize, sDiff); clickMsg = openMsgM; } else if (sameString("numtSMitochondrion", table)) { sqlSafef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtS where ( " "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND " " (ABS((chromEnd - chromStart)-%d) <= %d ))) ", itemName, itemNameDash, itemNameTrimmed, sSize, sDiff); clickMsg = openMsg1; } else if (sameString("numtSMitochondrionChrPlacement", table)) { sqlSafef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtS where ( " "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND " " (ABS((chromEnd - chromStart)-%d) <= %d ))) ", itemName, itemNameDash, itemNameTrimmed, sSize, sDiff); clickMsg = openMsg1; } } else { if (sameString("numtS", table) || sameString("numtSAssembled", table)) { if (sameString("hg19", database) || sameString("mm9", database)) { sqlSafef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtSMitochondrion where name = '%s' ", itemName); } else { sqlSafef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtSMitochondrion where name = '%s' ", itemNameTrimmed); } clickMsg = openMsgM; } else if (sameString("numtSMitochondrion", table)) { sqlSafef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtS where name like '%s%%'", itemName); clickMsg = openMsg1; } } sr = sqlGetResult(conn, query); firstTime = TRUE; while ((row = sqlNextRow(sr)) != NULL) { printf("<PRE><TT>"); if (firstTime) { firstTime = FALSE; printf("<BR><H3>%s item '%s' %s</H3><BR>", clickMsg, itemName, openMsg2); printf("BROWSER | NAME CHROMOSOME START END SIZE SCORE STRAND \n"); printf("--------|--------------------------------------------------------------------------------------------\n"); } bed = bedLoad6(row); printf("<A HREF=\"%s&db=%s&position=%s%%3A%d-%d\">browser</A> | ", hgTracksPathAndSettings(), database, bed->chrom, bed->chromStart+1, bed->chromEnd); printf("%-20s %-10s %9d %9d %5d %5d %1s", bed->name, bed->chrom, bed->chromStart+1, bed->chromEnd, (bed->chromEnd - bed->chromStart),bed->score, bed->strand); printf("</TT></PRE>"); } printf("<BR>"); printTrackHtml(tdb); hFreeConn(&conn); }