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("");
}
puts("");
}
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("Name: %s
\n", rec->name);
printPosOnChrom(seqName, rec->chromStart, rec->chromEnd, NULL, FALSE, rec->name);
printf("Reference allele: %s
\n", rec->ref);
vcfAltAlleleDetails(rec);
if (rec->qual != 0.0)
printf("Call quality: %.1f
\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::