Changeset 5704


Ignore:
Timestamp:
11/17/09 19:52:42 (10 years ago)
Author:
melissa
Message:

Removed InCell ROI parsing; closes #437.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.1/components/bio-formats/src/loci/formats/in/InCellReader.java

    r5664 r5704  
    466466      store.setWellSamplePosY(posY.get(field), 0, well, sampleIndex); 
    467467    } 
    468  
    469     // populate ROI data 
    470     parseTextROIs(store); 
    471468  } 
    472469 
     
    484481    int wellCol = well % (lastCol - firstCol + 1); 
    485482    return (wellRow + firstRow) * wellCols + wellCol + firstCol; 
    486   } 
    487  
    488   /** 
    489    * If a .txt file is present, parse ROI data and place it in the 
    490    * given MetadataStore. 
    491    */ 
    492   private void parseTextROIs(MetadataStore store) throws IOException { 
    493     if (metadataFiles == null) return; 
    494     for (String file : metadataFiles) { 
    495       if (file.toLowerCase().endsWith(".txt")) { 
    496         String[] lines = DataTools.readFile(file).split("\n"); 
    497         String[] skipRow = null, columns = null, values = null; 
    498         String well = null, prevWell = null; 
    499         int xIndex = -1, yIndex = -1; 
    500         int cellIndex = -1, wellIndex = -1; 
    501         int areaIndex = -1; 
    502         int image = 0; 
    503         for (String line : lines) { 
    504           values = line.split("\t"); 
    505           if (values.length > 2) { 
    506             if (skipRow == null) skipRow = values; 
    507             else if (columns == null) { 
    508               columns = values; 
    509               xIndex = DataTools.indexOf(columns, "Cell cg X"); 
    510               yIndex = DataTools.indexOf(columns, "Cell cg Y"); 
    511               wellIndex = DataTools.indexOf(columns, "Well"); 
    512               cellIndex = DataTools.indexOf(columns, "Cell"); 
    513               areaIndex = DataTools.indexOf(columns, "Nuc Area"); 
    514             } 
    515             else { 
    516               // assume that rows are sorted by well 
    517               if (wellIndex == -1) continue; 
    518               well = values[wellIndex].trim(); 
    519               if (!well.equals(prevWell) && prevWell != null) image++; 
    520  
    521               int roiIndex = 0; 
    522               double area = 0d; 
    523  
    524               if (cellIndex < 0) continue; 
    525               String cell = values[cellIndex].trim(); 
    526  
    527               try { 
    528                 roiIndex = Integer.parseInt(cell) - 1; 
    529                 if (areaIndex < 0) continue; 
    530                 area = Double.parseDouble(values[areaIndex].trim()); 
    531               } 
    532               catch (NumberFormatException e) { 
    533                 break; 
    534               } 
    535  
    536               // calculate the radius of the ROI, since it's not given 
    537               double radius = Math.sqrt(area / Math.PI); 
    538  
    539               // "Cell cg X", "Cell cg Y" 
    540               if (xIndex >= 0) { 
    541                 store.setCircleCx(values[xIndex].trim(), image, roiIndex, 0); 
    542               } 
    543               if (yIndex >= 0) { 
    544                 store.setCircleCy(values[yIndex].trim(), image, roiIndex, 0); 
    545               } 
    546               store.setCircleR(String.valueOf(radius), image, roiIndex, 0); 
    547  
    548               if (isMetadataCollected()) { 
    549                 setSeries(image); 
    550                 for (int col=2; col<values.length; col++) { 
    551                   addSeriesMeta("Cell #" + cell + " " + columns[col], 
    552                     values[col].trim()); 
    553                 } 
    554               } 
    555               prevWell = well; 
    556             } 
    557           } 
    558         } 
    559  
    560         break; 
    561       } 
    562     } 
    563     setSeries(0); 
    564483  } 
    565484 
  • trunk/components/bio-formats/src/loci/formats/in/InCellReader.java

    r5664 r5704  
    466466      store.setWellSamplePosY(posY.get(field), 0, well, sampleIndex); 
    467467    } 
    468  
    469     // populate ROI data 
    470     parseTextROIs(store); 
    471468  } 
    472469 
     
    484481    int wellCol = well % (lastCol - firstCol + 1); 
    485482    return (wellRow + firstRow) * wellCols + wellCol + firstCol; 
    486   } 
    487  
    488   /** 
    489    * If a .txt file is present, parse ROI data and place it in the 
    490    * given MetadataStore. 
    491    */ 
    492   private void parseTextROIs(MetadataStore store) throws IOException { 
    493     if (metadataFiles == null) return; 
    494     for (String file : metadataFiles) { 
    495       if (file.toLowerCase().endsWith(".txt")) { 
    496         String[] lines = DataTools.readFile(file).split("\n"); 
    497         String[] skipRow = null, columns = null, values = null; 
    498         String well = null, prevWell = null; 
    499         int xIndex = -1, yIndex = -1; 
    500         int cellIndex = -1, wellIndex = -1; 
    501         int areaIndex = -1; 
    502         int image = 0; 
    503         for (String line : lines) { 
    504           values = line.split("\t"); 
    505           if (values.length > 2) { 
    506             if (skipRow == null) skipRow = values; 
    507             else if (columns == null) { 
    508               columns = values; 
    509               xIndex = DataTools.indexOf(columns, "Cell cg X"); 
    510               yIndex = DataTools.indexOf(columns, "Cell cg Y"); 
    511               wellIndex = DataTools.indexOf(columns, "Well"); 
    512               cellIndex = DataTools.indexOf(columns, "Cell"); 
    513               areaIndex = DataTools.indexOf(columns, "Nuc Area"); 
    514             } 
    515             else { 
    516               // assume that rows are sorted by well 
    517               if (wellIndex == -1) continue; 
    518               well = values[wellIndex].trim(); 
    519               if (!well.equals(prevWell) && prevWell != null) image++; 
    520  
    521               int roiIndex = 0; 
    522               double area = 0d; 
    523  
    524               if (cellIndex < 0) continue; 
    525               String cell = values[cellIndex].trim(); 
    526  
    527               try { 
    528                 roiIndex = Integer.parseInt(cell) - 1; 
    529                 if (areaIndex < 0) continue; 
    530                 area = Double.parseDouble(values[areaIndex].trim()); 
    531               } 
    532               catch (NumberFormatException e) { 
    533                 break; 
    534               } 
    535  
    536               // calculate the radius of the ROI, since it's not given 
    537               double radius = Math.sqrt(area / Math.PI); 
    538  
    539               // "Cell cg X", "Cell cg Y" 
    540               if (xIndex >= 0) { 
    541                 store.setCircleCx(values[xIndex].trim(), image, roiIndex, 0); 
    542               } 
    543               if (yIndex >= 0) { 
    544                 store.setCircleCy(values[yIndex].trim(), image, roiIndex, 0); 
    545               } 
    546               store.setCircleR(String.valueOf(radius), image, roiIndex, 0); 
    547  
    548               if (isMetadataCollected()) { 
    549                 setSeries(image); 
    550                 for (int col=2; col<values.length; col++) { 
    551                   addSeriesMeta("Cell #" + cell + " " + columns[col], 
    552                     values[col].trim()); 
    553                 } 
    554               } 
    555               prevWell = well; 
    556             } 
    557           } 
    558         } 
    559  
    560         break; 
    561       } 
    562     } 
    563     setSeries(0); 
    564483  } 
    565484 
Note: See TracChangeset for help on using the changeset viewer.