3f112eba0af44ffe8b5c15c7721f3e850afe9276
kate
  Wed Mar 28 15:14:07 2018 -0700
Expand schema to include strand for each endpoint (request by Braney and Daniel Zerbino, to enable future support of rearrangements as well as bedPE). refs #21109

diff --git src/hg/inc/interact.h src/hg/inc/interact.h
index 6152b16..817326f 100644
--- src/hg/inc/interact.h
+++ src/hg/inc/interact.h
@@ -1,47 +1,49 @@
 /* interact.h was originally generated by the autoSql program, which also 
  * generated interact.c and interact.sql.  This header links the database and
  * the RAM representation of objects. */
 
 #ifndef INTERACT_H
 #define INTERACT_H
 
 #include "jksql.h"
-#define INTERACT_NUM_COLS 16
+#define INTERACT_NUM_COLS 18
 
 extern char *interactCommaSepFieldNames;
 
 struct interact
 /* Interaction between two regions */
     {
     struct interact *next;  /* Next in singly linked list. */
     char *chrom;	/* Chromosome (or contig, scaffold, etc.). For interchromosomal, use 2 records */
-    unsigned chromStart;	/* Start position in chromosome of lower region. For interchromsomal, chromStart of this region */
+    unsigned chromStart;	/* Start position in chromosome of lower region. For interchromosomal, set to chromStart of this region */
     unsigned chromEnd;	/* End position in chromosome of upper region. For interchromosomal, set to chromEnd of this region */
     char *name;	/* Name of item, for display.  Usually 'name1/name2' or empty */
-    unsigned score;	/* Score from 0-1000 */
+    unsigned score;	/* Score from 0-1000. */
     double value;	/* Strength of interaction or other data value. Typically basis for score */
-    char *exp;	/* Experiment name (metadata for filtering) or empty. */
+    char *exp;	/* Experiment name (metadata for filtering). Use . if not applicable */
     unsigned color;	/* Item color, as itemRgb in bed9. Typically based on strength or filter */
-    char *sourceChrom;	/* Chromosome of source region (directional) or lower region. For interchromosomal, set to chrom of this region*/
+    char *sourceChrom;	/* Chromosome of source region (directional) or lower region. For non-directional interchromosomal, chrom of this region. */
     unsigned sourceStart;	/* Start position in chromosome of source/lower/this region */
     unsigned sourceEnd;	/* End position in chromosome of source/lower/this region */
     char *sourceName;	/* Identifier of source/lower/this region. Can be used as link to related table */
-    char *targetChrom;	/* Chromosome of target region (directional) or upper region. for interchromsomal, set to chrom of other region */
-    unsigned targetStart;	/* Start position in chromosome of target/upper/other region */
-    unsigned targetEnd;	/* End position in chromosome of target/upper/other region */
-    char *targetName;	/* Identifier of target/upper region. Can be used as link to related table */
+    char *sourceStrand;	/* Orientation of source/lower/this region: + or -.  Use . if not applicable */
+    char *targetChrom;	/* Chromosome of target region (directional) or upper region. For non-directional interchromosomal, chrom of other region */
+    unsigned targetStart;	/* Start position in chromosome of target/upper/this region */
+    unsigned targetEnd;	/* End position in chromosome of target/upper/this region */
+    char *targetName;	/* Identifier of target/upper/this region. Can be used as link to related table */
+    char *targetStrand;	/* Orientation of target/upper/this region: + or -.  Use . if not applicable */
     };
 
 void interactStaticLoad(char **row, struct interact *ret);
 /* Load a row from interact table into ret.  The contents of ret will
  * be replaced at the next call to this function. */
 
 struct interact *interactLoadByQuery(struct sqlConnection *conn, char *query);
 /* Load all interact from table that satisfy the query given.  
  * Where query is of the form 'select * from example where something=something'
  * or 'select example.* from example, anotherTable where example.something = 
  * anotherTable.something'.
  * Dispose of this with interactFreeList(). */
 
 void interactSaveToDb(struct sqlConnection *conn, struct interact *el, char *tableName, int updateSize);
 /* Save interact as a row to the table specified by tableName.