dacecbaf00b2193872633dde175c53d263922ff9
angie
  Wed May 11 16:18:38 2011 -0700
Feature #2823 (VCF track handler): request from alpha-test user CarlosBorroto: call Belinda's coding variant functional prediction function
as on the pgSnp details page.

diff --git src/hg/hgc/vcfClick.c src/hg/hgc/vcfClick.c
index 7dd415c..62d5f33 100644
--- src/hg/hgc/vcfClick.c
+++ src/hg/hgc/vcfClick.c
@@ -176,41 +176,56 @@
 	struct vcfInfoElement *el = &(gt->infoElements[j]);
 	int k;
 	for (k = 0;  k < el->count;  k++)
 	    {
 	    if (k > 0)
 		printf(", ");
 	    vcfPrintDatum(stdout, el->values[k], formatTypes[j]);
 	    }
 	printf("</TD>");
 	}
     puts("</TR>");
     }
 hTableEnd();
 }
 
+static void pgSnpCodingDetail(struct vcfRecord *rec)
+/* Translate rec into pgSnp (with proper chrom name) and call Belinda's
+ * coding effect predictor from pgSnp details. */
+{
+if (hTableExists(database, "knownGene"))
+    {
+    struct pgSnp *pgs = pgSnpFromVcfRecord(rec);
+    if (!sameString(rec->chrom, seqName))
+	// rec->chrom might be missing "chr" prefix:
+	pgs->chrom = seqName;
+    printSeqCodDisplay(database, pgs);
+    }
+}
+
 static void vcfRecordDetails(struct vcfRecord *rec)
 /* Display the contents of a single line of VCF. */
 {
 printf("<B>Name:</B> %s<BR>\n", rec->name);
 printPosOnChrom(seqName, rec->chromStart, rec->chromEnd, NULL, FALSE, rec->name);
 printf("<B>Reference allele:</B> %s<BR>\n", rec->ref);
 vcfAltAlleleDetails(rec);
 if (rec->qual != 0.0)
     printf("<B>Call quality:</B> %.1f<BR>\n", rec->qual);
 vcfFilterDetails(rec);
 vcfInfoDetails(rec);
+pgSnpCodingDetail(rec);
 vcfGenotypesDetails(rec);
 }
 
 void doVcfTabixDetails(struct trackDb *tdb, char *item)
 /* Show details of an alignment from a VCF file compressed and indexed by tabix. */
 {
 #if (defined USE_TABIX && defined KNETFILE_HOOKS)
 knetUdcInstall();
 if (udcCacheTimeout() < 300)
     udcSetCacheTimeout(300);
 #endif//def USE_TABIX && KNETFILE_HOOKS
 int start = cartInt(cart, "o");
 int end = cartInt(cart, "t");
 struct sqlConnection *conn = hAllocConnTrack(database, tdb);
 // TODO: will need to handle per-chrom files like bam, maybe fold bamFileNameFromTable into this::