diff --git a/src/dotterApp/dotter.cpp b/src/dotterApp/dotter.cpp index c34927b2c2e9b2df60434d3a2d9aa63be5815c5c..582d917f6744559dab6428d177bd748f8fc8291a 100644 --- a/src/dotterApp/dotter.cpp +++ b/src/dotterApp/dotter.cpp @@ -189,6 +189,8 @@ static GtkWidget* createDotterInstance(DotterContext *dotterCtx, const int zoomFacIn, const int qcenter, const int scenter, + const int bpoint, + const int wpoint, const gboolean greyramSwap, char *windowColor); @@ -1169,6 +1171,8 @@ void dotter (const BlxBlastMode blastMode, options->dotterZoom, qcenter, scenter, + options->bpoint, + options->wpoint, options->swapGreyramp, options->windowColor); @@ -1192,6 +1196,8 @@ static GtkWidget* createDotterInstance(DotterContext *dotterCtx, const int zoomFacIn, const int qcenter, const int scenter, + const int bpoint, + const int wpoint, const gboolean greyrampSwap, char *windowColor) { @@ -1219,8 +1225,8 @@ static GtkWidget* createDotterInstance(DotterContext *dotterCtx, GtkWidget *greyrampContainer = gtk_frame_new(NULL); /* container for when docked */ gtk_frame_set_shadow_type(GTK_FRAME(greyrampContainer), GTK_SHADOW_NONE); GtkWidget *greyrampWindow = NULL; /* container for when undocked */ - GtkWidget *greyrampTool = createGreyrampTool(dotterWinCtx, 40, 100, greyrampSwap, &greyrampWindow); - GtkWidget *greyrampToolMinimised = createGreyrampToolMinimised(dotterWinCtx, 40, 100); + GtkWidget *greyrampTool = createGreyrampTool(dotterWinCtx, bpoint, wpoint, greyrampSwap, &greyrampWindow); + GtkWidget *greyrampToolMinimised = createGreyrampToolMinimised(dotterWinCtx, bpoint, wpoint); registerGreyrampCallback(greyrampTool, dotplot, dotplotUpdateGreymap); registerGreyrampCallback(greyrampToolMinimised, dotplot, dotplotUpdateGreymap); blxSetWidgetColor(greyrampWindow, windowColor); @@ -1300,7 +1306,7 @@ void callDotterInternal(DotterContext *dc, const gboolean breaklinesOn) { DotterWindowContext *dwc = createDotterWindowContext(dc, refSeqRange, matchSeqRange, zoomFactor, TRUE); - createDotterInstance(dc, dwc, NULL, NULL, NULL, FALSE, breaklinesOn, NULL, 0, 0, 0, 0, FALSE, NULL); + createDotterInstance(dc, dwc, NULL, NULL, NULL, FALSE, breaklinesOn, NULL, 0, 0, 0, 0, 0, 0, FALSE, NULL); } diff --git a/src/dotterApp/dotter.hpp b/src/dotterApp/dotter.hpp index 89f457867cb874d7f3e57806604643975e5813ce..3f3b2c9291c672e349425869a373bb261340a1b9 100644 --- a/src/dotterApp/dotter.hpp +++ b/src/dotterApp/dotter.hpp @@ -61,6 +61,8 @@ typedef struct _DotterOptions { int qoffset; /* qoffset + 1 gives the value of the first coord on the ref seq */ int soffset; /* soffset + 1 gives the value of the first coord on the match seq */ + int bpoint; /* black point */ + int wpoint; /* white point */ gboolean selfcall; /* whether called internally, i.e. so that features/sequences will be piped into dotter rather than read from files */ int qlen; /* length of the ref seq */ int slen; /* length of the match seq */ diff --git a/src/dotterApp/dotterMain.cpp b/src/dotterApp/dotterMain.cpp index 840eaf24b807eb0bc32a0f9f099f34f163c6350d..fe2dcd3d8e8e683b058a6b7095de2788c3be91d9 100644 --- a/src/dotterApp/dotterMain.cpp +++ b/src/dotterApp/dotterMain.cpp @@ -122,6 +122,12 @@ \n\ -s <int>, --vertical-offset=<int>\n\ Vertical_sequence offset\n\ +\n\ + -x <int>, --black-point=<int>\n\ + Black point value\n\ +\n\ + -y <int>, --white-point=<int>\n\ + White point value\n\ \n\ --horizontal-type=p|d\n\ Horizontal_sequence type ('p' for peptide or 'd' for DNA)\n\ @@ -172,6 +178,8 @@ static void setDefaultOptions(DotterOptions *options) { options->qoffset = 0; options->soffset = 0; + options->bpoint = 40; + options->wpoint = 100; options->selfcall = FALSE; options->qlen = UNSET_INT; options->slen = UNSET_INT; @@ -392,6 +400,8 @@ int main(int argc, char **argv) {"crick-only", no_argument, 0, 'c'}, {"horizontal-offset", required_argument, 0, 'q'}, {"vertical-offset", required_argument, 0, 's'}, + {"black-point", required_argument, 0, 'x'}, + {"white-point", required_argument, 0, 'y'}, {"horizontal-type", required_argument, 0, 0}, {"vertical-type", required_argument, 0, 0}, {"negate-coords", no_argument, 0, 'N'}, @@ -400,7 +410,7 @@ int main(int argc, char **argv) {0, 0, 0, 0} }; - const char *optstring="b:cDe:f:F:hHil:M:m:Np:q:Rrs:SvW:wz:"; + const char *optstring="b:cDe:f:F:hHil:M:m:Np:q:Rrs:SvW:wx:y:z:"; extern int optind; extern char *optarg; int optionIndex; /* getopt_long stores the index into the option struct here */ @@ -480,6 +490,8 @@ int main(int argc, char **argv) options.winsize = (char*)g_malloc(strlen(optarg)+1); strcpy(options.winsize, optarg); break; case 'w': options.watsonOnly = TRUE; break; + case 'x': options.bpoint = atoi(optarg); break; + case 'y': options.wpoint = atoi(optarg); break; case 'z': options.dotterZoom = atoi(optarg); break; default : g_error("Illegal option\n"); }