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 */ +