Seg2Dgel
Class Sg2bkg

java.lang.Object
  extended by Seg2Dgel.Sg2glb
      extended by Seg2Dgel.Sg2bkg

public class Sg2bkg
extends Sg2glb

Class Sg2bkg computes background density of the input gel image for the 2D gel spot segmenter. Background is estimated using a zonal notch filter. First a 'rest of' image is computed as the original image less the segmented spots with the spots having density value 0. Then the zonal notch filter is computed over the entire image by moving an averaging window over the image in a raster, 1 pixel at a time where the mean density is computing in the averaging window at each point not including the 0 values. This background image is used to estimate the background for each spot by using it as a lookup table for the centroids of each spot.

This code was derived and refactored from GELLAB-II sg2gii C language files.

This work was produced by Peter Lemkin of the National Cancer Institute, an agency of the United States Government. As a work of the United States Government there is no associated copyright. It is offered as open source software under the Mozilla Public License (version 1.1) subject to the limitations noted in the accompanying LEGAL file. This notice must be included with the code. The Open2Dprot Mozilla and Legal files are available on http://Open2Dprot.sourceforge.net/.

Version:
$Date: 2005/10/15 21:48:11 $ $Revision: 1.6 $
Author:
P. Lemkin, NCI-Frederick, Frederick, MD, 21702
See Also:
Open2Dprot Home

Field Summary
static int[] colsum
           
static int maxBkgrdTot
          Max background computed over zonal notch background filter
static int minBkgrdTot
          Min background computed over zonal notch background filter
static int[] nbrcolumnccs
           
 
Fields inherited from class Seg2Dgel.Sg2glb
acc, accDatabaseFile, accDatabaseSwitch, accFile, accFormatMode, allowTouchingEdgesSwitch, applicationName, argsV, averageODSwitch, avg, avgPixFile, banner, bannerTitle, baseImageFileName, baseStatusTime, batchDir, bfav, bfavm, bfavm1, bfavp, bfavp1, bfog, bfogm, bfogm1, bfogm2, bfogm3, bfogm4, bfogm5, bfogp, bfogp1, bfogp2, bfogp3, bfogp4, bfogp5, bkg, BKGRD_CODE, bkgrdCorrectionSwitch, bkgrdPixFile, bkgrdSizeFlag, BLACK, boundaryInSSFSwitch, bufbkg, bufcc, bufmag, bufrest, c11, c12, c13, c14, c15, c16, c17, c18, c19, c1a, c1b, c1c, c1d, c1e, c1f, c1g, c1h, c21, c22, c23, c24, c25, c26, c27, c28, c29, c2a, c2b, c2c, c2d, c2e, c2f, c2g, c2h, c31, c32, c33, c34, c35, c36, c37, c38, c39, c3a, c3b, c3c, c3d, c3e, c3f, c3g, c3h, c41, c42, c43, c44, c45, c46, c47, c48, c49, c4a, c4b, c4c, c4d, c4e, c4f, c4g, c4h, c51, c52, c53, c54, c55, c56, c57, c58, c59, c5a, c5b, c5c, c5d, c5e, c5f, c5g, c5h, c61, c62, c63, c64, c65, c66, c67, c68, c69, c6a, c6b, c6c, c6d, c6e, c6f, c6g, c6h, c71, c72, c73, c74, c75, c76, c77, c78, c79, c7a, c7b, c7c, c7d, c7e, c7f, c7g, c7h, c81, c82, c83, c84, c85, c86, c87, c88, c89, c8a, c8b, c8c, c8d, c8e, c8f, c8g, c8h, c91, c92, c93, c94, c95, c96, c97, c98, c99, c9a, c9b, c9c, c9d, c9e, c9f, c9g, c9h, ca1, ca2, ca3, ca4, ca5, ca6, ca7, ca8, ca9, caa, cab, cac, cacheDir, cad, cae, caf, cag, cah, cal, cal2gray, calFile, cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9, cba, cbb, cbc, cbd, cbe, cbf, cbg, cbh, cc, cc1, cc2, cc3, cc4, cc5, cc6, cc7, cc8, cc9, cca, ccb, ccc, ccd, cce, ccf, ccg, cch, ccMinSize, ccMinSizeSwitch, ccNum, ccPixFile, cd1, cd2, cd3, cd4, cd5, cd6, cd7, cd8, cd9, cda, cdb, cdc, cdd, cde, cdf, cdg, cdh, computingWindowSwitch, coneOfSilenceMode, CONSOLE_FLAG, ctlCorePixSwitch, cwx1, cwx2, cwy1, cwy2, data, DATE, dbSample, dbSpot, dbug, DBUG_ADD_INTERIOR_CC_PIXELS, DBUG_BND_ANALYSIS, DBUG_CALC_FEATURES, DBUG_CHAIN_CODE_RLM_ANALYSIS, DBUG_CONSOLE, DBUG_CVT_BND_TO_CHAINCODE, DBUG_DRAW_NOTCH_PAIR_LINE, DBUG_DRAW_SAT_SPOT_BND, DBUG_DUMP_CC_PPX, DBUG_FILL_CORNERS, DBUG_FILL_HOLES_IN_PCC_CONCAVITIES, DBUG_FIND_BND_NOTCHES_IN_CHAIN_CODE, DBUG_FIND_SPOT_LIST, DBUG_INNER_LOOP_FIND_SPOT, DBUG_MAX_PROPAGATE, DBUG_NBR_COMPONENTS, DBUG_PIX_DBCODE, DBUG_PRINT_GRAY2CAL_MAP, DBUG_PROP_SAT_SPOTS, DBUG_PROP_SPOT_TO_2ND_MAXIMA, DBUG_PUSH_XY_INTO_FBL, DBUG_RMV_CONCAVITIES, DBUG_RMV_INTERIOR_CC_PIXELS, DBUG_ROUND_CORNERS, DBUG_SPLIT_CHECK_SPOT, DBUG_SPLIT_PIX_BY_FBL_BND_ANALSIS, DBUG_SWITCHES, dbugBits, dbugBitsHelpStr, dbugBitsPixFlag, dbx1, dbx2, dby1, dby2, debugSwitch, defaultSwitch, defaultTypeCode, deleteIsolatedPixelsSwitch, demoFileList, demoSwitch, DFT_2D_GEL, DFT_2D_LC_MS, DFT_NO_DB, didPropSaturatedSpots, didSplitSpotFlag, diffODSwitch, docFileList, dotsSwitch, dpx1, dpx2, dpy1, dpy2, draw, drawBoundaryOverlayType, drawBoundarySwitch, drawDotOverlayType, drawMEROverlayType, drawMERSwitch, drawPlusOverlayType, drawPlusSwitch, drawSxSyEllipseSwitch, drawSxSyOverlayType, drawTitleSwitch, dtdSwitch, ENABLE_DEVELOPER_DEBUGGING, ENABLE_SATURATED_SPOTS, ENABLE_SPOT_SPLITTING, fbl, fileSeparator, fio, fnd, fourSqrtPi, gHist, glbPercentThr, gray2cal, gridSize, hashFBL, HASHFBLPRIME, hashWS, histThreshold, i0R, i10, i11, i12, i13, i14, i15, i16, i17, i18, i2U, i4L, i6D, ini, inPixFile, ISOLATED_PIXEL_CODE, j11, j12, j13, j14, j15, j16, j17, j18, j19, j1a, j1b, j1c, j1d, j1e, j1f, j1g, j1h, j21, j22, j23, j24, j25, j26, j27, j28, j29, j2a, j2b, j2c, j2d, j2e, j2f, j2g, j2h, j31, j32, j33, j34, j35, j36, j37, j38, j39, j3a, j3b, j3c, j3d, j3e, j3f, j3g, j3h, j41, j42, j43, j44, j45, j46, j47, j48, j49, j4a, j4b, j4c, j4d, j4e, j4f, j4g, j4h, j51, j52, j53, j54, j55, j56, j57, j58, j59, j5a, j5b, j5c, j5d, j5e, j5f, j5g, j5h, j61, j62, j63, j64, j65, j66, j67, j68, j69, j6a, j6b, j6c, j6d, j6e, j6f, j6g, j6h, j71, j72, j73, j74, j75, j76, j77, j78, j79, j7a, j7b, j7c, j7d, j7e, j7f, j7g, j7h, j81, j82, j83, j84, j85, j86, j87, j88, j89, j8a, j8b, j8c, j8d, j8e, j8f, j8g, j8h, j91, j92, j93, j94, j95, j96, j97, j98, j99, j9a, j9b, j9c, j9d, j9e, j9f, j9g, j9h, ja1, ja2, ja3, ja4, ja5, ja6, ja7, ja8, ja9, jaa, jab, jac, jad, jae, jaf, jag, jah, jarFileList, jarLibrFileList, jb1, jb2, jb3, jb4, jb5, jb6, jb7, jb8, jb9, jba, jbb, jbc, jbd, jbe, jbf, jbg, jbh, jc1, jc2, jc3, jc4, jc5, jc6, jc7, jc8, jc9, jca, jcb, jcc, jcd, jce, jcf, jcg, jch, jd1, jd2, jd3, jd4, jd5, jd6, jd7, jd8, jd9, jda, jdb, jdc, jdd, jde, jdf, jdg, jdh, keepInputImageSwitch, KILL_SPOT_CODE, killSpotColor, laplacianSwitch, legalImageFileExtens, lineLaplacianHeight, lineLaplacianWidth, lowPassSize, lowpassSwitch, lp13xZZSwitch, lp3x3Switch, lp5x5Switch, lp7x7Switch, mag2ndPixFile, MAX_BUFFERED_SPOTS, MAX_CC_CODE, MAX_INTERIOR_FBL_SIZE, MAX_PCC_CODE, maxColsToPrint, maxGhist, maxGrayPixel, MAXSUBSPOTS, meanGhist, merx1, merx2, merxp1, merxp2, mery1, mery2, meryp1, meryp2, MHISTSIZE, MIN_CC_CODE, MIN_PCC_CODE, MINBLOBAREA, minGhist, MINSPLITSPOTSIZE, nBitsPerPixel, nBkgrdSize, nBytesPerPixel, NEVER, ngh, notch, nPixels, nStatusName, nSwitches, optimizeInteriorFBLSwitch, osName, paramH, PCC_BASE_CODE, pix, pix1, pix2, pix3, pix4, pix5, pix6, pix7, pixDir, pixDumpSwitch, pixelSizeMicrons, pixFileExtn, pixHeight, pixWidth, ppxDir, pra, projDir, projDirSwitch, propertiesFile, propertiesFileSwitch, pTileGhist, PUBLISH, quickEstimateSwitch, rdbmsDir, rest, restOfPixFile, restOfPixSwitch, REVISION, rlmCWfile, rmvDprimeSizingSwitch, sampleSwitch, sat, saturatedSpotSwitch, scaledMaxOD, seg2dgelURL, segPixFile, segPixSwitch, sg2, simpleFileName, sizeFractionGaussianWidth, sort, split, splitLargeCCfblByBndAnalSwitch, splitLargeCCfblByRLManalSwitch, splitLargeCCfblByThreshAnalSwitch, splitMinCCsize, splitSpotSwitch, spotNumber, ssfFormatMode, ssfFormatSwitch, ssfOutputEpilogueFile, ssfOutputFile, ssfOutputPrefaceFile, startTime, statusMemoryFree, statusMemoryTot, statusName, statusStartTime, sw, switchOptCBvalue, switchOptData, switchOptValue, t1Area, t1Density, t1Range, t1SxSyRatio, t2Area, t2Density, t2Range, t2SxSyRatio, TEST_LARGE_IMAGE, thrAreaSwitch, thrDensitySwitch, thrRangeSwitch, thrSxSyRatioSwitch, timerSwitch, tmpDir, UNLABELED_CC_CODE, updateSwitch, usageSwitch, USE_13X13, USE_BKGD_AND_ISOLATED_PIXEL_BACKGROUND, USE_DEMO_DATA, USE_DOM_XML_SSF, use3x3laplacianSwitch, use5x5laplacianSwitch, useBkgdAndIsolatedPixelFlag, useBusseLaplacianSwitch, useCopyOfPix1ForPix5Switch, useHistGUISwitch, useHorizLineLaplacianSwitch, usePopupGUISwitch, userDir, useVertLineLaplacianSwitch, util, VERSION, WHITE, widthWindmp, windmpStepSize, wrk, wXsize, wYsize, xDbug, xmlDir, xPentrance, xPexit, yDbug, yPentrance, yPexit, yTitle
 
Constructor Summary
Sg2bkg()
          Sg2bkg() - Constructor
 
Method Summary
 void calcBackground(boolean useBkgdAndIsolatedPixelFlag)
          calcBackground() - compute the notch filtered picture in pix6 using a window size of nBkgrdSize (global variable).
static int mapXedge(int x, int cwx1, int cwx2)
          mapXedge() - map x coordinate in the range [cwx1:cwx2].
static int mapYedge(int y, int cwy1, int cwy2)
          mapYedge() - map y coordinate in the range [cwy1:cwy2].
 void rowaddBkgd(int yline)
          rowaddBkgd() - Read in line yLine, then add a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2].
 void rowaddBkgdAndIsolated(int yline)
          rowaddBkgdAndIsolated() - Read in line yLine, then add a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2].
 void rowsubBkgd(int yline)
          rowsubBkgd() - Read in line yLine, then subtract a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2].
 void rowsubBkgdAndIsolated(int yline)
          rowsubBkgdAndIsolated() - Read in line yLine, then subtract a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2].
 
Methods inherited from class Seg2Dgel.Sg2glb
get2D, get2D, getPixLineBuf, getPixLineBuf, initGlb, isDBwindow, isDBwindow, put2Dbuf, resetGlb, set2D, set2D, setPixLineBuf, setPixLineBuf, showReportStatus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

colsum

public static int[] colsum

nbrcolumnccs

public static int[] nbrcolumnccs

maxBkgrdTot

public static int maxBkgrdTot
Max background computed over zonal notch background filter


minBkgrdTot

public static int minBkgrdTot
Min background computed over zonal notch background filter

Constructor Detail

Sg2bkg

public Sg2bkg()
Sg2bkg() - Constructor

Method Detail

rowaddBkgd

public void rowaddBkgd(int yline)
rowaddBkgd() - Read in line yLine, then add a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2]. Background is a pixel with BKGRD_CODE.


rowsubBkgd

public void rowsubBkgd(int yline)
rowsubBkgd() - Read in line yLine, then subtract a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2]. Background is a pixel with BKGRD_CODE.


rowaddBkgdAndIsolated

public void rowaddBkgdAndIsolated(int yline)
rowaddBkgdAndIsolated() - Read in line yLine, then add a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2]. Background is a pixel with BKGRD_CODE or ISOLATED_PIXEL_CODE


rowsubBkgdAndIsolated

public void rowsubBkgdAndIsolated(int yline)
rowsubBkgdAndIsolated() - Read in line yLine, then subtract a nBkgrdSize X 1 subrow to each element of the sum in lineSum[cwx1:cwx2]. Background is a pixel with BKGRD_CODE or ISOLATED_PIXEL_CODE


calcBackground

public void calcBackground(boolean useBkgdAndIsolatedPixelFlag)
calcBackground() - compute the notch filtered picture in pix6 using a window size of nBkgrdSize (global variable).

Parameters:
useBkgdAndIsolatedPixelFlag - to define background as a pixel as either BKGRD_CODE or ISOLATED_PIXEL_CODE otherwise it is just BKGRD_CODE.

mapXedge

public static final int mapXedge(int x,
                                 int cwx1,
                                 int cwx2)
mapXedge() - map x coordinate in the range [cwx1:cwx2]. If it is outside of the range, then reflect it off of the corresponding boundary.

Parameters:
x - of pixel
cwx1 - is lower bound
cwx2 - is upper bound
Returns:
mapped coordinate

mapYedge

public static final int mapYedge(int y,
                                 int cwy1,
                                 int cwy2)
mapYedge() - map y coordinate in the range [cwy1:cwy2]. If it is outside of the range, then reflect it off of the corresponding boundary.

Parameters:
y - of pixel
cwy1 - is lower bound
cwy2 - is upper bound
Returns:
mapped coordinate