b7cb97d2942575d92f6385055e172dcbd979ee05
angie
  Tue Oct 1 13:09:29 2019 -0700
Adding new data type bigDbSnp.as with associated dbSnpDetails.as, for a track based on the new "dbSNP 2.0" schema and JSON downloads.  refs #23283

diff --git src/hg/inc/dbSnpDetails.h src/hg/inc/dbSnpDetails.h
new file mode 100644
index 0000000..660f6d3
--- /dev/null
+++ src/hg/inc/dbSnpDetails.h
@@ -0,0 +1,71 @@
+/* dbSnpDetails.h was originally generated by the autoSql program, which also 
+ * generated dbSnpDetails.c and dbSnpDetails.sql.  This header links the database and
+ * the RAM representation of objects. */
+
+#ifndef DBSNPDETAILS_H
+#define DBSNPDETAILS_H
+
+#define DBSNPDETAILS_NUM_COLS 13
+
+extern char *dbSnpDetailsCommaSepFieldNames;
+
+struct dbSnpDetails
+/* dbSNP annotations that are too lengthy to include in bigDbSnp file; for variant details page */
+    {
+    struct dbSnpDetails *next;  /* Next in singly linked list. */
+    char *name;	/* rs# ID of variant */
+    int freqSourceCount;	/* Number of frequency sources */
+    char **alleleCounts;	/* Array of each source's |-sep list of allele:count */
+    int *alleleTotals;	/* Array of each source's total number of chromosomes sampled; may be > sum of observed counts and differ across variants. */
+    int soTermCount;	/* Number of distinct SO terms annotated on variant */
+    int *soTerms;	/* SO term numbers annotated on RefSeq transcripts */
+    int clinVarCount;	/* Number of ClinVar accessions associated with variant */
+    char **clinVarAccs;	/* ClinVar accessions associated with variant */
+    char **clinVarSigs;	/* ClinVar significance for each accession */
+    int submitterCount;	/* Number of organizations/projects that reported variant */
+    char **submitters;	/* dbSNP 'handles' of submitting orgs/projects */
+    int pubMedIdCount;	/* Number of PubMed-indexed publications associated with variant */
+    int *pubMedIds;	/* PMIDs of associated publications */
+    };
+
+struct dbSnpDetails *dbSnpDetailsLoad(char **row);
+/* Load a dbSnpDetails from row fetched with select * from dbSnpDetails
+ * from database.  Dispose of this with dbSnpDetailsFree(). */
+
+struct dbSnpDetails *dbSnpDetailsLoadAll(char *fileName);
+/* Load all dbSnpDetails from whitespace-separated file.
+ * Dispose of this with dbSnpDetailsFreeList(). */
+
+struct dbSnpDetails *dbSnpDetailsLoadAllByChar(char *fileName, char chopper);
+/* Load all dbSnpDetails from chopper separated file.
+ * Dispose of this with dbSnpDetailsFreeList(). */
+
+#define dbSnpDetailsLoadAllByTab(a) dbSnpDetailsLoadAllByChar(a, '\t');
+/* Load all dbSnpDetails from tab separated file.
+ * Dispose of this with dbSnpDetailsFreeList(). */
+
+struct dbSnpDetails *dbSnpDetailsCommaIn(char **pS, struct dbSnpDetails *ret);
+/* Create a dbSnpDetails out of a comma separated string. 
+ * This will fill in ret if non-null, otherwise will
+ * return a new dbSnpDetails */
+
+void dbSnpDetailsFree(struct dbSnpDetails **pEl);
+/* Free a single dynamically allocated dbSnpDetails such as created
+ * with dbSnpDetailsLoad(). */
+
+void dbSnpDetailsFreeList(struct dbSnpDetails **pList);
+/* Free a list of dynamically allocated dbSnpDetails's */
+
+void dbSnpDetailsOutput(struct dbSnpDetails *el, FILE *f, char sep, char lastSep);
+/* Print out dbSnpDetails.  Separate fields with sep. Follow last field with lastSep. */
+
+#define dbSnpDetailsTabOut(el,f) dbSnpDetailsOutput(el,f,'\t','\n');
+/* Print out dbSnpDetails as a line in a tab-separated file. */
+
+#define dbSnpDetailsCommaOut(el,f) dbSnpDetailsOutput(el,f,',',',');
+/* Print out dbSnpDetails as a comma separated list including final comma. */
+
+/* -------------------------------- End autoSql Generated Code -------------------------------- */
+
+#endif /* DBSNPDETAILS_H */
+