Changeset 7475


Ignore:
Timestamp:
12/29/10 15:45:16 (9 years ago)
Author:
melissa
Message:

Attach non-well files as companion metadata files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/bio-formats/src/loci/formats/in/ScreenReader.java

    r7473 r7475  
    7070  // -- Fields -- 
    7171 
     72  private String[] screenMetadataFiles; 
     73  private String[][] plateMetadataFiles; 
     74 
    7275  private ImageReader[][] readers; 
    7376  private boolean[][][] plateMaps; 
     
    165168 
    166169    int[] spwIndexes = getSPWIndexes(getSeries()); 
    167     return readers[spwIndexes[0]][spwIndexes[1]].getSeriesUsedFiles(noPixels); 
     170    int plate = spwIndexes[0]; 
     171    int well = spwIndexes[1]; 
     172 
     173    Vector<String> files = new Vector<String>(); 
     174    if (screenMetadataFiles != null) { 
     175      for (String f : screenMetadataFiles) { 
     176        files.add(f); 
     177      } 
     178    } 
     179    if (plateMetadataFiles[plate] != null) { 
     180      for (String f : plateMetadataFiles[plate]) { 
     181        files.add(f); 
     182      } 
     183    } 
     184    String[] readerFiles = readers[plate][well].getSeriesUsedFiles(noPixels); 
     185    for (String f : readerFiles) { 
     186      files.add(f); 
     187    } 
     188    return files.toArray(new String[files.size()]); 
    168189  } 
    169190 
     
    181202      readers = null; 
    182203      plateMaps = null; 
     204      plateMetadataFiles = null; 
     205      screenMetadataFiles = null; 
    183206    } 
    184207  } 
     
    199222 
    200223    // build the list of plate directories 
     224    Vector<String> metadataFiles = new Vector<String>(); 
    201225    Vector<String> tmpPlates = new Vector<String>(); 
    202226    String[] screenList = screen.list(true); 
     
    208232        tmpPlates.add(plateFile.getAbsolutePath()); 
    209233      } 
    210     } 
     234      else if (!plateFile.isDirectory()) { 
     235        metadataFiles.add(plateFile.getAbsolutePath()); 
     236      } 
     237    } 
     238    screenMetadataFiles = 
     239      metadataFiles.toArray(new String[metadataFiles.size()]); 
     240    metadataFiles.clear(); 
     241 
    211242    String[] plates = tmpPlates.toArray(new String[tmpPlates.size()]); 
    212243    Arrays.sort(plates); 
     
    230261      } 
    231262    }; 
     263 
     264    plateMetadataFiles = new String[plates.length][]; 
    232265 
    233266    // build the list of well files for each plate 
     
    264297          } 
    265298        } 
     299        else if (!wellFile.isDirectory()) { 
     300          metadataFiles.add(wellFile.getAbsolutePath()); 
     301        } 
    266302      } 
    267303      files[plate] = tmpWells.toArray(new String[tmpWells.size()]); 
     
    272308 
    273309      plateMaps[plate] = new boolean[uniqueRows.size()][uniqueCols.size()]; 
     310      plateMetadataFiles[plate] = 
     311        metadataFiles.toArray(new String[metadataFiles.size()]); 
    274312 
    275313      tmpWells.clear(); 
     314      metadataFiles.clear(); 
    276315    } 
    277316 
Note: See TracChangeset for help on using the changeset viewer.