Software for Image Segmentation and Analysis
in Pathology (ISAP)
http://www.medparse.com/isapver2.htm

U. S. Government Work, Performed at the Baltimore VA Medical Center, 1994.
Moore GW, Berman JJ, Moore GW, Brown LA.


Fill in eight or fewer histogram bars (LEFT=ABSCISSA, RIGHT=ORDINATE), and click on SUBMIT. An unfilled box is ignored by the program. A default histogram is provided as an example.









This demonstration version only permits eight bars in the histogram.

Software for Image Segmentation and Analysis in Pathology (ISAP)

U. S. Government Work, Performed at the Baltimore VA Medical Center, 1994.
Moore GW, Berman JJ, Moore GW, Brown LA.


      ISAP, version 2, is an image display and analysis software application developed at the Baltimore Veterans Affairs Medical Center and available at no cost to pathologists, including executable file and source code in Microsoft(R) Visual Basic. Users interactively surround cells of interest using a mouse. In version 2, ISAP permits a choice of methods for smoothing, thresholding, and edge detection. ISAP thresholds the enclosed image, either manually by preselecting a grayvalue threshold or percentage threshold, or automatically according to an algorithm published previously by the authors.

      ISAP quantitates nuclear features, including measurements of nuclear size (area, summed optical densities, greatest diameter, least diameter); nuclear rim shape (ratio of greatest-to-least diameter, perimeter, contour, fractal dimension); and chromatin texture (standard deviation of optical density, histogram of optical densities). Cytologic measurements are saved in an external database that can be uploaded into commercially available spreadsheet applications for statistical analysis of cell populations. ISAP uses Targa or Windows (.BMP) image formats, and operates on IBM-compatible computers with at least 5 MB hard drive memory, Microsoft(R) Windows v. 3.1 or higher, and 256-color display.

      To test the robustness of ISAP algorithms, we performed image analysis on 20 normal intermediate cell nuclei at 40x magnification from Papanicolaou-stained cytology smears of the uterine cervix and vagina. Each cell-image was captured as a black-and-white image on a grid of 756 x 486 pixels, with 256 gray-levels per pixel. For each cell, we obtained 10 measurements in focus, and 10 measurements apiece with the stage lowered by 0.1 mmm from the in-focus position, for a total of 400 image-analyses. Area and perimeter were compared by one-way analysis of variance, and were not statistically different in the two focal planes. Results suggest that ISAP is a robust image analysis application, which permits repeatable descriptors for nuclear area and shape in cytologic image analysis.

      The x-axis of the HISTOGRAM is divided at all points, and a Student t pooled standard error is calculated for the left and right histograms at every point, or DIVIDER, as follows. Actually, it suffices to calculate the Student t pooled variance at each divider. For each possible divider for left and right histograms, let NL represent the number of points (i.e., the sum of the histogram-bars) on the left histogram, NR represent the number of points on the right histogram, and NC represent the number of points on the combined histogram. Then NC = NL + NR. Let x be the abscissa-value (horizontal axis) and y be the ordinate-value (vertical axis) of each bar on each histogram. Let SxL=§(xL*yL) represent the sum of the left histogram bars (where § represents summation and * represents multiplication); let QxL=§(xL*xL*yL) represent the sum of squares of the left histogram bars; let SxR and let QxR be analogously defined for the right histogram bars, and SxC and QxC be analogously defined for the combined histogram bars. Then the variance, VL, of the left histogram is:
VL = (QxL-((SxL*SxL)/NL))/(NL-1).
Let VR and VC be analogously defined. The Student t pooled variance, VP, for the left and right histograms is:
VP =(VL*(NL-1) + VR*(NR-1))/(NC-1).
Likewise, the Student t pooled standard error, EP, for the left and right histograms is:
EP = SQRT(VP/NC).
The MINIMUM POOLED VARIANCE, and therefore the MINIMUM POOLED STANDARD ERROR, is obtained at the DIVIDER, and designated with a YELLOW BAR on the HISTOGRAM. If the minimum pooled variance, VP, is divided by the combined variance, VC, then we obtain the VARIANCE RATIO, VR, where
VR = VP/VC.
The variance ratio tends toward a value of 0.38 for large samples from the normal distribution.



REFERENCES.
      1. Berman JJ, Moore GW, Brown LA.
ISAP v.2: Software for image segmentation and analysis in pathology.
http://www.netautopsy.org/isaptwoo.htm

     

      2. Moore GW, Berman JJ, Sydnor DL.
Fractal dimension for pathology images, a repeatable and quantitative measurement of nuclear rim irregularity.
Am J Clin Pathol 102:538, 1994.
http://www.netautopsy.org/ascpfrac.htm

      3. Moore GW, Berman JJ, Moore GW, Brown LA.
Software for image segmentation and analysis in pathology (ISAP): public domain image software and source code developed at the Baltimore VA Medical Center.
Am J Clin Pathol 102:538-539, 1994.
http://www.netautopsy.org/ascpisap.htm

      4. Moore GW, Berman JJ, Sydnor DL.
Automated edge detection in image analysis: distinguishing the nucleus from the cytoplasm without a user's threshold estimate.
Am J Clin Pathol 102:539, 1994.
http://www.netautopsy.org/ascpedge.htm

      5. Berman JJ.
http://www.pathinfo.com
Scroll to the bottom of the page, and click on PERL FOR PATHOLOGISTS.

      6. Moore GW, Berman JJ, Moore GW, Brown LA.
Welcome to ISAP.
http://www.medparse.com/isapwlcm.htm

      7. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP Edge Detection Menu.
http://www.medparse.com/isapedge.htm

      8. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP Histogram Menu.
http://www.medparse.com/isaphist.htm

      9. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP Values Menu.
http://www.medparse.com/isapvalu.htm

      10. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP Troubleshooting Menu.
http://www.medparse.com/isaptrub.htm

      11. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP Microsoft(R) Visual Basic Source Code.
http://www.medparse.com/isapsour.htm

      12. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP Formulas.
http://www.medparse.com/isapform.htm

      13. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP copyright and licensure agrement.
http://www.medparse.com/isapcopr.htm

      14. Moore GW, Berman JJ, Moore GW, Brown LA.
ISAP demonstration program and Perl source code.
http://www.medparse.com/isapver2.htm



PERL SOURCE CODE.
#!/usr/bin/perl
print "Content-type: text/html\n\n";
### (C) COPYRIGHT G. WILLIAM MOORE, 2003.
### isapver2.cgi: Image and Segmentation Analysis in Pathology, version 2.
### Last Updated: January 25, 2003, G. William Moore, MD, PhD.
### 
### SET CONSTANT VALUES.
 $crlf=chr(13).chr(10); $bks=chr(32);
### 
### COLLECT ENVIRONMENTAL VARIABLES.
 $getquerystring=($ENV{'QUERY_STRING'}); $searchstdin=<STDIN>;
 if($searchstdin eq ""){$searchstdin=$getquerystring;};
 $tdatx=`date -u`; chomp($tdatx);
 $tdatx=~s/ GMT / /gi; $tdate=$tdatx; $thisdate=$tdatx;
### 
### PRINT HTML HEADER AND TITLE.
 print qq|<html><head><title> Image Segment Analysis Pathology </title></head> |;
 print qq|\n<body><!-- Last Updated: January 25, 2003, G. William Moore, MD, PhD. --> |;
### 
### DISPLAY TITLE AND COPYRIGHT NOTICE.
 print qq|\n <center><h2> Image and Segmentation Analysis |;
 print qq|\n <br> in Pathology (ISAP). |;
 print qq|\n <br><br> DRAFT COPY ONLY. </h2> |;
 print qq|\n <b> © 2003, G. William Moore, MD, PhD. |;
 print qq|\n <br> All rights reserved. </center></b> |;
### 
### PRINT DATE AND TIME, GREENWICH MEAN TIME (ZULU).
print qq|\n <br> Analysis Requested at: $tdate, Greenwich Mean Time (Zulu).|;
### 
### PARSE THE QUERY STRING.
 ($strlo,$nxthi)=split(/abs01=/,$getquerystring,2);
 ($abs01,$nxthi)=split(/\&ord01=/,$nxthi,2);
 ($ord01,$nxthi)=split(/\&abs02=/,$nxthi,2);
 ($abs02,$nxthi)=split(/\&ord02=/,$nxthi,2);
 ($ord02,$nxthi)=split(/\&abs03=/,$nxthi,2);
 ($abs03,$nxthi)=split(/\&ord03=/,$nxthi,2);
 ($ord03,$nxthi)=split(/\&abs04=/,$nxthi,2);
 ($abs04,$nxthi)=split(/\&ord04=/,$nxthi,2);
 ($ord04,$nxthi)=split(/\&abs05=/,$nxthi,2);
 ($abs05,$nxthi)=split(/\&ord05=/,$nxthi,2);
 ($ord05,$nxthi)=split(/\&abs06=/,$nxthi,2);
 ($abs06,$nxthi)=split(/\&ord06=/,$nxthi,2);
 ($ord06,$nxthi)=split(/\&abs07=/,$nxthi,2);
 ($abs07,$nxthi)=split(/\&ord07=/,$nxthi,2);
 ($ord07,$nxthi)=split(/\&abs08=/,$nxthi,2);
 ($abs08,$nxthi)=split(/\&ord08=/,$nxthi,2);
 ($ord08,$nxthi)=split(/\&bx=/,$nxthi,2);
 if(($abs01 ne "")&&($ord01 ne "")){$abs[1]=$abs01-0; $ord[1]=$ord01-0;};
 if(($abs02 ne "")&&($ord02 ne "")){$abs[2]=$abs02-0; $ord[2]=$ord02-0;};
 if(($abs03 ne "")&&($ord03 ne "")){$abs[3]=$abs03-0; $ord[3]=$ord03-0;};
 if(($abs04 ne "")&&($ord04 ne "")){$abs[4]=$abs04-0; $ord[4]=$ord04-0;};
 if(($abs05 ne "")&&($ord05 ne "")){$abs[5]=$abs05-0; $ord[5]=$ord05-0;};
 if(($abs06 ne "")&&($ord06 ne "")){$abs[6]=$abs06-0; $ord[6]=$ord06-0;};
 if(($abs07 ne "")&&($ord07 ne "")){$abs[7]=$abs07-0; $ord[7]=$ord07-0;};
 if(($abs08 ne "")&&($ord08 ne "")){$abs[8]=$abs08-0; $ord[8]=$ord08-0;};
### 
### CALCULATE TOTAL SUM OF SQUARES.
 print qq|\n <br><pre>         HISTOGRAM: ABSCISSA ORDINATE |;
 $iab=0; $nabs=0; $sabs=0; $qabs=0; while($iab<8){$iab++;
   if($abs[$iab] ne ""){if($ord[$iab]>0){$abi=$abs[$iab]; $ori=$ord[$iab];
       print qq|\n                             $abs[$iab]       $ord[$iab] |;
       $nabs=$nabs+$ori; $sabs=$sabs+($abi*$ori);
       $qabs=$qabs+($abi*$abi*$ori); $absn[$iab]=$nabs; $abss[$iab]=$sabs;
       $absq[$iab]=$qabs;};};};
 if($nabs>0){$tss=($qabs-(($sabs*$sabs)/$nabs));};
 print qq|\n</pre> |;
### 
### IF ZERODIVIDE, ERROR MESSAGE.
 if($nabs<1){
   print qq|\n <br> ZERODIVIDE DETECTED.  JOB ABORTED. |;
   print qq|\n <br><br><br><hr> |;
   print qq|\n<br>Last Updated: January 25, 2003, G. William Moore, MD, PhD.|;
   print qq|\n <br><br><br></body></html> \n\n\n |; exit;};
### 
### CALCULATE LEFT, RIGHT SUM OF SQUARES.
 $iab=1; $mvr=99; while($iab<7){$iab++;
   if($abs[$iab] ne ""){$ln=$absn[$iab]; $ls=$abss[$iab]; $lq=$absq[$iab];
   $rn=$nabs-$ln; $rs=$sabs-$ls; $rq=$qabs-$lq;
   $iss=$lq+$rq-(($ls*$ls)/$ln)-(($rs*$rs)/$rn);
   $ivr=$iss/$tss; $vrto[$iab]=$ivr;
   if($ivr<$mvr){$mvr=$ivr; $div=$iab+0.5;};};};
### 
### PRINT MINIMUM DIVIDER.
 print qq|\n <br> MINIMUM DIVIDER: $div |;
 print qq|\n <br> VARIANCE RATIO AT MINIMUM DIVIDER: $mvr |;
### 
### PRINT TRAILER.
### 
 print qq|\n <br><br><br><hr> |;
 print qq|\n<br>Last Updated: January 25, 2003, G. William Moore, MD, PhD.|;
 print qq|\n <br><br><br></body></html> \n\n\n |; exit;




Last Updated: January 26, 2003, by G. William Moore, MD, PhD.