Seg2Dgel
Class Seg2Dgel

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

public class Seg2Dgel
extends Sg2glb

The Seg2Dgel program is a 2D gel spot segmenter for the Open2Dprot project. Seg2Dgel may be used for segmenting other types of images (such as 2D LC-MS, etc) into spot list files (Sample Spotlist Files or SSF) for Open2Dprot.

 This code is derived and refactored from the GELLAB-II sg2gii C files
 as of "Version November 7, 1992".

 Seg2Dgel program
 -----------------
 Seg2Dgel is a program that is part of the Open2Dprot project. It is
 used to segment and quantify 2D electrophoresis gel images. The 
 input is a 2D gel image (TIFF, GIF, JPEG, or PPX). The output is
 a quantified spot list in various ASCII formats including XML and
 tab-delimited as well as the historical GELLAB-II SSF formats.
 Images may be generated (a the user's option) to view the segmented
 spots and various intermediate images used by Seg2Dgel. 

 More detailed documentation is found in  documentation  on 
 the Web site.

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/12/22 11:44:58 $ $Revision: 1.48 $
Author:
P. Lemkin, NCI-Frederick, Frederick, MD, 21702
See Also:
Open2Dprot Home

Field Summary
 
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
Seg2Dgel()
          Seg2Dgel() - Constructor
 
Method Summary
static void main(java.lang.String[] args)
          main() - for Seg2Dgel 2D Electrophoresis Gel Spot Segmenter.
 void popupImageViewer()
          popupImageViewer() - popup the image viewer after the images were computed by the segmenter.
private static void resetResources(boolean fullResetFlag)
          resetResources() - reset any resources that must be reset for the next run of the segmenter.
private static int segmentSampleImage(java.lang.String[] args)
          segmentSampleImage() - segment the sample gel image.
static java.lang.String[] setupDebugSwitches(java.lang.String[] argv)
          setupDebugSwitches() - setup the debug switches.
static java.lang.String[] setupDemo_2DLCMS_Switches(java.lang.String[] argv)
          setupDemo_2DLCMS_Switches() - setup "demo/ppx/2D-LC-MS-01.gif" for special debug image that is a 868x612 pixel 8-bit/pixel image with some saturated spots.
static java.lang.String[] setupDemo2Kx2KSwitches(java.lang.String[] argv)
          setupDemo2Kx2KSwitches() - setup "demo/ppx/testGel-2Kx2K.gif" for special debug image "demo/ppx/testGel-2Kx2K.gif" which is a 2000x2000 pixel 8-bit/pixel image with some saturated spots.
static java.lang.String[] setupDemo3Kx3KSwitches(java.lang.String[] argv)
          setupDemo3Kx3KSwitches() - setup "demo/ppx/testGel-3Kx3K.gif" for special debug image "demo/ppx/testGel-3Kx3K.gif" which is a 3100x3100 pixel 8-bit/pixel image with some saturated spots.
static java.lang.String[] setupDemoSwitches(java.lang.String[] argv)
          setupDemoSwitches() - setup the demo switches for the demo/ppx/ Human AML leukemia image.
static java.lang.String[] setupMinDefaultsSwitches(java.lang.String[] argv, int defTypeCode)
          setupMinDefaultsSwitches() - add the minimum default switches.
private static boolean setupStdDemoImageCalibDefaults()
          setupStdDemoImageCalibDefaults() - setup the debug CW, ND wedge default values and compute the gray to od calibration.
 
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
 

Constructor Detail

Seg2Dgel

public Seg2Dgel()
Seg2Dgel() - Constructor

Method Detail

main

public static void main(java.lang.String[] args)
main() - for Seg2Dgel 2D Electrophoresis Gel Spot Segmenter.

Parameters:
args - is command line arg list

segmentSampleImage

private static int segmentSampleImage(java.lang.String[] args)
segmentSampleImage() - segment the sample gel image.

Returns:
exit code. It is 0 if succeed, else non-zero for errors this gets passed to System.exit(exit code).

resetResources

private static void resetResources(boolean fullResetFlag)
resetResources() - reset any resources that must be reset for the next run of the segmenter.

Parameters:
fullResetFlag - force new resource allocation

setupDebugSwitches

public static java.lang.String[] setupDebugSwitches(java.lang.String[] argv)
setupDebugSwitches() - setup the debug switches. This will overide the standard demo (not the 2kx2k or 3kx3k demos)

Parameters:
argv - list of original switches
Returns:
new argV merged switch list

setupMinDefaultsSwitches

public static java.lang.String[] setupMinDefaultsSwitches(java.lang.String[] argv,
                                                          int defTypeCode)
setupMinDefaultsSwitches() - add the minimum default switches.

Parameters:
argv - is list of original switches
Returns:
new argV merged switch list

setupDemoSwitches

public static java.lang.String[] setupDemoSwitches(java.lang.String[] argv)
setupDemoSwitches() - setup the demo switches for the demo/ppx/ Human AML leukemia image.

Parameters:
argv - is list of original switches
Returns:
new argV merged switch list

setupStdDemoImageCalibDefaults

private static boolean setupStdDemoImageCalibDefaults()
setupStdDemoImageCalibDefaults() - setup the debug CW, ND wedge default values and compute the gray to od calibration. This is called if the demoSwitch was enabled. The data is for "demo/ppx/gel-HM-019.gif" images.

Note that is mapping is NOT accurate or maybe quite inaccurate for gels other than these specific demo gels - although the Gray to OD mappings may look reasonable.

Returns:
true if the calibration is valid (i.e. demo gels)

setupDemo2Kx2KSwitches

public static java.lang.String[] setupDemo2Kx2KSwitches(java.lang.String[] argv)
setupDemo2Kx2KSwitches() - setup "demo/ppx/testGel-2Kx2K.gif" for special debug image "demo/ppx/testGel-2Kx2K.gif" which is a 2000x2000 pixel 8-bit/pixel image with some saturated spots. [DEPRICATE] - used for debugging.

Parameters:
argv - is list of original switches
Returns:
new argV merged switch list

setupDemo3Kx3KSwitches

public static java.lang.String[] setupDemo3Kx3KSwitches(java.lang.String[] argv)
setupDemo3Kx3KSwitches() - setup "demo/ppx/testGel-3Kx3K.gif" for special debug image "demo/ppx/testGel-3Kx3K.gif" which is a 3100x3100 pixel 8-bit/pixel image with some saturated spots. [DEPRICATE] - used for debugging.

Parameters:
argv - is list of original switches
Returns:
new argV merged switch list

setupDemo_2DLCMS_Switches

public static java.lang.String[] setupDemo_2DLCMS_Switches(java.lang.String[] argv)
setupDemo_2DLCMS_Switches() - setup "demo/ppx/2D-LC-MS-01.gif" for special debug image that is a 868x612 pixel 8-bit/pixel image with some saturated spots. [DEPRICATE] - used for debugging.

Parameters:
argv - is list of original switches
Returns:
new argV merged switch list

popupImageViewer

public void popupImageViewer()
popupImageViewer() - popup the image viewer after the images were computed by the segmenter. This passes down a list of the images names, menu names, pixel arrays, and file names.