31f492f7d887cacb8e1300c6e95dd2d16d08ea21
angie
  Mon Feb 11 10:07:26 2013 -0800
annoGrator:- Added annoGratorInit so annoGrator can be subclassed and extended;
- Added enum annoGratorOverlap and setOverlapRule method to specify
how to treat overlap between primary and internal rows: ignore it,
require it, or forbid it, via integrate method's retRJFilterFailed.
- Added setAutoSqlObject method to update both the outward-facing
(streamer interface) asObj and internal state derived from it.
annoGratorGpVar:
- Added cdsOnly property to keep only variants that change CDS
(via retRJFilterFailed).
- The language of aggvGenRows implies that multiple effect rows may
arise from one {variant x gene}.  In case that happens, use slCat
instead of slAddHead to keep all effect rows.
- Added slReverse to make sure output rows are ordered by position.
That required shuffling some lines in an expected-results file.
- Renamed some variables because there are now 3 types of "self":
streamer, grator, gpVar.

diff --git src/hg/inc/gpFx.h src/hg/inc/gpFx.h
index 09ad166..0f55a90 100644
--- src/hg/inc/gpFx.h
+++ src/hg/inc/gpFx.h
@@ -1,22 +1,27 @@
 #ifndef GPFX_H
 #define GPFX_H
 
 #include "variant.h"
 #include "soterm.h"
 
 // a single gpFx variant effect call
 struct gpFx
 {
 struct gpFx *next;
 
 struct soCall so;
 };
 
 struct gpFx *gpFxPredEffect(struct variant *variant, struct genePred *pred,
     struct dnaSeq *transcriptSequence);
 // return the predicted effect(s) of a variation list on a genePred
 
 // number of bases up or downstream that we flag
 #define GPRANGE 500
 
+#define gpFxIsCodingChange(gpfx) (gpfx->so.soNumber == inframe_deletion || \
+				  gpfx->so.soNumber == frameshift_variant || \
+				  gpfx->so.soNumber == synonymous_variant || \
+				  gpfx->so.soNumber == non_synonymous_variant)
+
 #endif /* GPFX_H */