text: /* txGraph.h was originally generated by the autoSql program, which also 
   * generated txGraph.c and txGraph.sql.  This header links the database and
   * the RAM representation of objects. */
  
  #ifndef TXGRAPH_H
  #define TXGRAPH_H
  
  #define TXGRAPH_NUM_COLS 11
  
  struct txGraph
  /* A transcription graph. Includes alt-splicing info. */
      {
      struct txGraph *next;  /* Next in singly linked list. */
      char *tName;	/* name of target sequence, often a chrom. */
      int tStart;	/* First bac touched by graph. */
      int tEnd;	/* Start position in first bac. */
      char *name;	/* Human readable name. */
      char strand[3];	/* + or - strand. */
      unsigned vertexCount;	/* Number of vertices in graph. */
      struct txVertex *vertices;	/* Splice sites and soft ends. */
      unsigned edgeCount;	/* Number of edges in graph. */
      struct txEdge *edgeList;	/* Edges (introns and exons) in graph. */
      int sourceCount;	/* Number of sources of evidence. */
      struct txSource *sources;	/* Sources of evidence. */
      };
  
  struct txGraph *txGraphLoad(char **row);
  /* Load a txGraph from row fetched with select * from txGraph
   * from database.  Dispose of this with txGraphFree(). */
  
  struct txGraph *txGraphLoadAll(char *fileName);
  /* Load all txGraph from whitespace-separated file.
   * Dispose of this with txGraphFreeList(). */
  
  struct txGraph *txGraphLoadAllByChar(char *fileName, char chopper);
  /* Load all txGraph from chopper separated file.
   * Dispose of this with txGraphFreeList(). */
  
  #define txGraphLoadAllByTab(a) txGraphLoadAllByChar(a, '\t');
  /* Load all txGraph from tab separated file.
   * Dispose of this with txGraphFreeList(). */
  
  struct txGraph *txGraphCommaIn(char **pS, struct txGraph *ret);
  /* Create a txGraph out of a comma separated string. 
   * This will fill in ret if non-null, otherwise will
   * return a new txGraph */
  
  void txGraphFree(struct txGraph **pEl);
  /* Free a single dynamically allocated txGraph such as created
   * with txGraphLoad(). */
  
  void txGraphFreeList(struct txGraph **pList);
  /* Free a list of dynamically allocated txGraph's */
  
  void txGraphOutput(struct txGraph *el, FILE *f, char sep, char lastSep);
  /* Print out txGraph.  Separate fields with sep. Follow last field with lastSep. */
  
  #define txGraphTabOut(el,f) txGraphOutput(el,f,'\t','\n');
  /* Print out txGraph as a line in a tab-separated file. */
  
  #define txGraphCommaOut(el,f) txGraphOutput(el,f,',',',');
  /* Print out txGraph as a comma separated list including final comma. */
  
  #define TXVERTEX_NUM_COLS 2
  
  struct txVertex
  /* A vertex in a transcription graph - splice site or soft end */
      {
      int position;	/* Vertex position in genomic sequence. */
      unsigned char type;	/* Vertex type - ggSoftStart, ggHardStart, etc. */
      };
  
  struct txVertex *txVertexCommaIn(char **pS, struct txVertex *ret);
  /* Create a txVertex out of a comma separated string. 
   * This will fill in ret if non-null, otherwise will
   * return a new txVertex */
  
  void txVertexOutput(struct txVertex *el, FILE *f, char sep, char lastSep);
  /* Print out txVertex.  Separate fields with sep. Follow last field with lastSep. */
  
  #define txVertexTabOut(el,f) txVertexOutput(el,f,'\t','\n');
  /* Print out txVertex as a line in a tab-separated file. */
  
  #define txVertexCommaOut(el,f) txVertexOutput(el,f,',',',');
  /* Print out txVertex as a comma separated list including final comma. */
  
  #define TXEDGE_NUM_COLS 5
  
  struct txEdge
  /* An edge in a transcription graph - exon or intron */
      {
      struct txEdge *next;  /* Next in singly linked list. */
      int startIx;	/* Index of start in vertex array */
      int endIx;	/* Index of end in vertex array */
      unsigned char type;	/* Edge type */
      int evCount;	/* Count of evidence */
      struct txEvidence *evList;	/* List of evidence */
      };
  
  struct txEdge *txEdgeCommaIn(char **pS, struct txEdge *ret);
  /* Create a txEdge out of a comma separated string. 
   * This will fill in ret if non-null, otherwise will
   * return a new txEdge */
  
  void txEdgeFree(struct txEdge **pEl);
  /* Free a single dynamically allocated txEdge such as created
   * with txEdgeLoad(). */
  
  void txEdgeFreeList(struct txEdge **pList);
  /* Free a list of dynamically allocated txEdge's */
  
  void txEdgeOutput(struct txEdge *el, FILE *f, char sep, char lastSep);
  /* Print out txEdge.  Separate fields with sep. Follow last field with lastSep. */
  
  #define txEdgeTabOut(el,f) txEdgeOutput(el,f,'\t','\n');
  /* Print out txEdge as a line in a tab-separated file. */
  
  #define txEdgeCommaOut(el,f) txEdgeOutput(el,f,',',',');
  /* Print out txEdge as a comma separated list including final comma. */
  
  #define TXEVIDENCE_NUM_COLS 3
  
  struct txEvidence
  /* Information on evidence for an edge. */
      {
      struct txEvidence *next;  /* Next in singly linked list. */
      int sourceId;	/* Id (index) in sources list */
      int start;	/* Start position */
      int end;	/* End position */
      };
  
  struct txEvidence *txEvidenceCommaIn(char **pS, struct txEvidence *ret);
  /* Create a txEvidence out of a comma separated string. 
   * This will fill in ret if non-null, otherwise will
   * return a new txEvidence */
  
  void txEvidenceFree(struct txEvidence **pEl);
  /* Free a single dynamically allocated txEvidence such as created
   * with txEvidenceLoad(). */
  
  void txEvidenceFreeList(struct txEvidence **pList);
  /* Free a list of dynamically allocated txEvidence's */
  
  void txEvidenceOutput(struct txEvidence *el, FILE *f, char sep, char lastSep);
  /* Print out txEvidence.  Separate fields with sep. Follow last field with lastSep. */
  
  #define txEvidenceTabOut(el,f) txEvidenceOutput(el,f,'\t','\n');
  /* Print out txEvidence as a line in a tab-separated file. */
  
  #define txEvidenceCommaOut(el,f) txEvidenceOutput(el,f,',',',');
  /* Print out txEvidence as a comma separated list including final comma. */
  
  #define TXSOURCE_NUM_COLS 2
  
  struct txSource
  /* Source of evidence in graph. */
      {
      char *type;	/* Type: refSeq, mrna, est, etc. */
      char *accession;	/* GenBank accession. With type forms a key */
      };
  
  struct txSource *txSourceCommaIn(char **pS, struct txSource *ret);
  /* Create a txSource out of a comma separated string. 
   * This will fill in ret if non-null, otherwise will
   * return a new txSource */
  
  void txSourceFreeInternals(struct txSource *array, int count);
  /* Free internals of a simple type txSource (one not put on a list). */
  
  void txSourceOutput(struct txSource *el, FILE *f, char sep, char lastSep);
  /* Print out txSource.  Separate fields with sep. Follow last field with lastSep. */
  
  #define txSourceTabOut(el,f) txSourceOutput(el,f,'\t','\n');
  /* Print out txSource as a line in a tab-separated file. */
  
  #define txSourceCommaOut(el,f) txSourceOutput(el,f,',',',');
  /* Print out txSource as a comma separated list including final comma. */
  
  /* -------------------------------- End autoSql Generated Code -------------------------------- */
  
  #endif /* TXGRAPH_H */
  
  