ca1497842a28959b779f82251283f5cb8954466c
braney
Wed Oct 14 07:03:07 2020 -0700
finalizing hgc page for Clinvar Submissions Summary track
diff --git src/hg/hgc/clinvarSubLolly.c src/hg/hgc/clinvarSubLolly.c
index f99b50a..77f8f78 100644
--- src/hg/hgc/clinvarSubLolly.c
+++ src/hg/hgc/clinvarSubLolly.c
@@ -1,133 +1,101 @@
#include "common.h"
#include "wiggle.h"
#include "cart.h"
#include "hgc.h"
#include "hCommon.h"
#include "hgColors.h"
#include "bigBed.h"
#include "hui.h"
#include "subText.h"
#include "trackHub.h"
-#include "clinvarSub.h"
#include "clinvarSubLolly.h"
-static void printVariant(struct trackDb *tdb, struct bbiFile *bbi, struct bigBedInterval *bbList, char *variant)
-{
-struct bigBedInterval *bb;
-for (bb = bbList; bb != NULL; bb = bb->next)
+
+char *statusByScore[] =
{
- char *fields[bbi->fieldCount];
- int restCount = chopTabs(cloneString(bb->rest), fields);
- if (differentString(fields[36], variant))
- continue;
- int restBedFields = 12 - 3;
- char **extraFields = (fields + restBedFields);
- int extraFieldCount = restCount - restBedFields;
- extraFieldsPrint(tdb,NULL,extraFields, extraFieldCount);
- }
-}
+"Other",
+"Benign",
+"Likely Benign",
+"Uncertain significance",
+"Likely pathogenic",
+"Pathogenic",
+};
-static void printVariants(struct trackDb *tdb, char *variants, char *chrom, int start, int end)
+void printSubmissions(struct trackDb *tdb, char *chrom, int start, int end, unsigned wantScore, int numSubs, boolean not)
{
-int count = chopByChar(variants, ',', NULL, 0);
-char *words[count];
-chopByChar(variants, ',', words, count);
char *xrefTrack = trackDbSetting(tdb, "xrefTrack");
struct trackDb *mainTdb = hashFindVal(trackHash, xrefTrack);
char *mainBigBedFile = trackDbSetting(mainTdb, "bigDataUrl");
struct bbiFile *bbi = bigBedFileOpen(mainBigBedFile);
struct lm *lm = lmInit(0);
struct bigBedInterval *bbList = bigBedIntervalQuery(bbi, chrom, start, end, 0, lm);
-printf("There are %d variants at this position.\n", count);
-int ii;
-for(ii=0; ii < count; ii++)
+int count;
+char *extra = "";
+if (not)
{
- printVariant(mainTdb, bbi, bbList, words[ii]);
- }
+ count = slCount(bbList) - numSubs;
+ extra = "other than ";
}
+else
+ count = numSubs;
+if (count == 0)
+ return;
-static char *subFields[] =
-{
-"VariationID",
-"ClinicalSignificance",
-"DateLastEvaluated",
-"Description",
-"SubmittedPhenotypeInfo",
-"ReportedPhenotypeInfo",
-"ReviewStatus",
-"CollectionMethod",
-"OriginCounts",
-"Submitter",
-"SCV",
-"SubmittedGeneSymbol",
-};
+printf("There are %d submissions at this position with status %s '%s'
\n", count, extra, statusByScore[wantScore]);
-static void printSub(struct sqlConnection *conn, char *sub)
-{
-char query[4096];
-sqlSafef(query, sizeof(query), "select * from clinvarSub where scv = '%s'", sub);
-struct sqlResult *sr;
-sr = sqlGetResult(conn, query);
-char **row;
-while ((row = sqlNextRow(sr)) != NULL)
- {
- printf("
%s | %s | ", subFields[ii], row[ii]); - printf("