4c9ae67ea6e03ec3069cea012398793046e9ff2a
giardine
  Tue Sep 21 15:00:29 2010 -0700
Adds new track type bedDetail to custom and resident tracks, also adds pgSnp (personal genome SNPs) as custom track type.  bedDetail is bed4 to bed12, with 2 extra fields for an ID and description for hgc clicks.
diff --git src/hg/inc/bedDetail.h src/hg/inc/bedDetail.h
new file mode 100644
index 0000000..a0c12e3
--- /dev/null
+++ src/hg/inc/bedDetail.h
@@ -0,0 +1,76 @@
+/* bedDetail.h was originally generated by the autoSql program, which also 
+ * generated bedDetail.c and bedDetail.sql.  This header links the database and
+ * the RAM representation of objects. */
+
+#ifndef BEDDETAIL_H
+#define BEDDETAIL_H
+
+#define BEDDETAIL_NUM_COLS 14
+
+struct bedDetail
+/* Browser extensible data, with extended fields for detail page */
+    {
+    struct bedDetail *next;  /* Next in singly linked list. */
+    char *chrom;	/* Reference sequence chromosome or scaffold */
+    unsigned chromStart;	/* Start position in chromosome */
+    unsigned chromEnd;	/* End position in chromosome */
+    char *name;	/* Short Name of item */
+    unsigned score;	/* Score from 0-1000 */
+    char strand[2];	/* + or - */
+    unsigned thickStart;	/* Start of where display should be thick (start codon) */
+    unsigned thickEnd;	/* End of where display should be thick (stop codon) */
+    unsigned reserved;	/* Used as itemRgb as of 2004-11-22 */
+    int blockCount;	/* Number of blocks */
+    int *blockSizes;	/* Comma separated list of block sizes */
+    int *chromStarts;	/* Start positions relative to chromStart */
+    char *id;	/* ID to bed used in URL to link back */
+    char *description;	/* Long description of item for the details page */
+    };
+
+struct bedDetail *bedDetailLoad(char **row);
+/* Load a bedDetail from row fetched with select * from bedDetail
+ * from database.  Dispose of this with bedDetailFree(). */
+
+struct bedDetail *bedDetailLoadAll(char *fileName);
+/* Load all bedDetail from whitespace-separated file.
+ * Dispose of this with bedDetailFreeList(). */
+
+struct bedDetail *bedDetailLoadAllByChar(char *fileName, char chopper);
+/* Load all bedDetail from chopper separated file.
+ * Dispose of this with bedDetailFreeList(). */
+
+#define bedDetailLoadAllByTab(a) bedDetailLoadAllByChar(a, '\t');
+/* Load all bedDetail from tab separated file.
+ * Dispose of this with bedDetailFreeList(). */
+
+struct bedDetail *bedDetailCommaIn(char **pS, struct bedDetail *ret);
+/* Create a bedDetail out of a comma separated string. 
+ * This will fill in ret if non-null, otherwise will
+ * return a new bedDetail */
+
+void bedDetailFree(struct bedDetail **pEl);
+/* Free a single dynamically allocated bedDetail such as created
+ * with bedDetailLoad(). */
+
+void bedDetailFreeList(struct bedDetail **pList);
+/* Free a list of dynamically allocated bedDetail's */
+
+void bedDetailOutput(struct bedDetail *el, FILE *f, char sep, char lastSep, int size);
+/* Print out bedDetail.  Separate fields with sep. Follow last field with lastSep. */
+
+#define bedDetailTabOut(el,f) bedDetailOutput(el,f,'\t','\n');
+/* Print out bedDetail as a line in a tab-separated file. */
+
+#define bedDetailCommaOut(el,f) bedDetailOutput(el,f,',',',');
+/* Print out bedDetail as a comma separated list including final comma. */
+
+/* -------------------------------- End autoSql Generated Code -------------------------------- */
+
+extern char *bedDetailAutoSqlString;
+
+struct bedDetail *bedDetailLoadWithGaps(char **row, int size);
+/* Load a bedDetail from row split from a file or from database,
+   may have parts of BED not included.  Dispose of this with bedDetailFree(). */
+
+#endif /* BEDDETAIL_H */
+