c9f02c74337b661effebb021028f73d7a1316565 kate Tue Feb 17 21:42:06 2015 -0800 First cut loader of GTEX gene track. Enough here to test track display. refs #13504 diff --git src/hg/inc/gtexGeneBed.h src/hg/inc/gtexGeneBed.h new file mode 100644 index 0000000..13ec81e --- /dev/null +++ src/hg/inc/gtexGeneBed.h @@ -0,0 +1,71 @@ +/* gtexGeneBed.h was originally generated by the autoSql program, which also + * generated gtexGeneBed.c and gtexGeneBed.sql. This header links the database and + * the RAM representation of objects. */ + +#ifndef GTEXGENEBED_H +#define GTEXGENEBED_H + +#define GTEXGENEBED_NUM_COLS 11 + +extern char *gtexGeneBedCommaSepFieldNames; + +struct gtexGeneBed +/* BED6+ with additional fields for gene and transcript IDs, and expression experiment scores */ + { + struct gtexGeneBed *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; /* Gene symbol */ + unsigned score; /* Score from 0-1000 */ + char strand[2]; /* + or - for strand */ + char *geneId; /* Ensembl gene ID, referenced in GTEx data tables */ + char *transcriptId; /* Ensembl ID of Canonical transcript; determines genomic position */ + char *transcriptClass; /* GENCODE transcript class (coding, nonCoding, pseudo) */ + unsigned expCount; /* Number of experiment values */ + float *expScores; /* Comma separated list of experiment scores */ + }; + +struct gtexGeneBed *gtexGeneBedLoad(char **row); +/* Load a gtexGeneBed from row fetched with select * from gtexGeneBed + * from database. Dispose of this with gtexGeneBedFree(). */ + +struct gtexGeneBed *gtexGeneBedLoadAll(char *fileName); +/* Load all gtexGeneBed from whitespace-separated file. + * Dispose of this with gtexGeneBedFreeList(). */ + +struct gtexGeneBed *gtexGeneBedLoadAllByChar(char *fileName, char chopper); +/* Load all gtexGeneBed from chopper separated file. + * Dispose of this with gtexGeneBedFreeList(). */ + +#define gtexGeneBedLoadAllByTab(a) gtexGeneBedLoadAllByChar(a, '\t'); +/* Load all gtexGeneBed from tab separated file. + * Dispose of this with gtexGeneBedFreeList(). */ + +struct gtexGeneBed *gtexGeneBedCommaIn(char **pS, struct gtexGeneBed *ret); +/* Create a gtexGeneBed out of a comma separated string. + * This will fill in ret if non-null, otherwise will + * return a new gtexGeneBed */ + +void gtexGeneBedFree(struct gtexGeneBed **pEl); +/* Free a single dynamically allocated gtexGeneBed such as created + * with gtexGeneBedLoad(). */ + +void gtexGeneBedFreeList(struct gtexGeneBed **pList); +/* Free a list of dynamically allocated gtexGeneBed's */ + +void gtexGeneBedOutput(struct gtexGeneBed *el, FILE *f, char sep, char lastSep); +/* Print out gtexGeneBed. Separate fields with sep. Follow last field with lastSep. */ + +#define gtexGeneBedTabOut(el,f) gtexGeneBedOutput(el,f,'\t','\n'); +/* Print out gtexGeneBed as a line in a tab-separated file. */ + +#define gtexGeneBedCommaOut(el,f) gtexGeneBedOutput(el,f,',',','); +/* Print out gtexGeneBed as a comma separated list including final comma. */ + +/* -------------------------------- End autoSql Generated Code -------------------------------- */ +void gtexGeneBedCreateTable(struct sqlConnection *conn, char *table); +/* Create expression record format table of given name. */ + +#endif /* GTEXGENEBED_H */ +