mev-4.0.01/source/org/tigr/microarray/mev/file/TavFileFilter.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2003, The Institute for Genomic Research (TIGR).
2 26 Feb 07 jari 3 All rights reserved.
2 26 Feb 07 jari 4 */
2 26 Feb 07 jari 5 /*
2 26 Feb 07 jari 6  * $RCSfile: TavFileFilter.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.4 $
2 26 Feb 07 jari 8  * $Date: 2005/03/10 15:39:40 $
2 26 Feb 07 jari 9  * $Author: braistedj $
2 26 Feb 07 jari 10  * $State: Exp $
2 26 Feb 07 jari 11  */
2 26 Feb 07 jari 12 package org.tigr.microarray.mev.file;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import java.io.BufferedReader;
2 26 Feb 07 jari 15 import java.io.File;
2 26 Feb 07 jari 16 import java.io.FileReader;
2 26 Feb 07 jari 17 import java.io.IOException;
2 26 Feb 07 jari 18 import java.util.Vector;
2 26 Feb 07 jari 19
2 26 Feb 07 jari 20 import org.tigr.microarray.mev.ISlideDataElement;
2 26 Feb 07 jari 21 import org.tigr.microarray.mev.SlideData;
2 26 Feb 07 jari 22 import org.tigr.microarray.mev.SlideDataElement;
2 26 Feb 07 jari 23 import org.tigr.util.StringSplitter;
2 26 Feb 07 jari 24
2 26 Feb 07 jari 25 public class TavFileFilter extends ExpressionFileFilter {
2 26 Feb 07 jari 26     
2 26 Feb 07 jari 27     private static final int BUFFER_SIZE = 1024*128;
2 26 Feb 07 jari 28     
2 26 Feb 07 jari 29     public boolean accept(File f) {
2 26 Feb 07 jari 30   String extension = "";
2 26 Feb 07 jari 31   if (f.isDirectory()) return true;
2 26 Feb 07 jari 32   
2 26 Feb 07 jari 33   if (f.getName().endsWith(".tav")) return true;
2 26 Feb 07 jari 34   else return false;
2 26 Feb 07 jari 35     }
2 26 Feb 07 jari 36     
2 26 Feb 07 jari 37     public String getDescription() {
2 26 Feb 07 jari 38   return "TIGR ArrayViewer Files (*.tav)";
2 26 Feb 07 jari 39     }
2 26 Feb 07 jari 40     
2 26 Feb 07 jari 41    
2 26 Feb 07 jari 42     public Vector loadExpressionFile(File file) throws IOException {
2 26 Feb 07 jari 43   Vector dataVector = new Vector();
2 26 Feb 07 jari 44   
2 26 Feb 07 jari 45   if (! accept(file)) return dataVector;
2 26 Feb 07 jari 46   
2 26 Feb 07 jari 47   ISlideDataElement slideDataElement;
2 26 Feb 07 jari 48   String currentLine;
2 26 Feb 07 jari 49   
2 26 Feb 07 jari 50   int maxRows = 0, maxColumns = 0;
2 26 Feb 07 jari 51   String avoidNullString;
2 26 Feb 07 jari 52   int p, q;
2 26 Feb 07 jari 53   
2 26 Feb 07 jari 54   //int coordinatePairCount = TMEV.getCoordinatePairCount();
2 26 Feb 07 jari 55   //int intensityCount = TMEV.getIntensityCount();
2 26 Feb 07 jari 56   //final int preSpotRows = TMEV.getHeaderRowCount();
2 26 Feb 07 jari 57   int coordinatePairCount = 3;
2 26 Feb 07 jari 58   int intensityCount = 2;
2 26 Feb 07 jari 59   final int preSpotRows = 0;
2 26 Feb 07 jari 60   
2 26 Feb 07 jari 61   int[] rows = new int[coordinatePairCount];
2 26 Feb 07 jari 62   int[] columns = new int[coordinatePairCount];
2 26 Feb 07 jari 63   float[] intensities = new float[intensityCount];
2 26 Feb 07 jari 64   //String[] moreFields = new String[TMEV.getFieldNames().length];
2 26 Feb 07 jari 65   String[] moreFields = new String[3];
2 26 Feb 07 jari 66   
2 26 Feb 07 jari 67   BufferedReader reader = new BufferedReader(new FileReader(file), BUFFER_SIZE);
2 26 Feb 07 jari 68   StringSplitter ss = new StringSplitter((char) 0x09);
2 26 Feb 07 jari 69   int currentRow, currentColumn;
2 26 Feb 07 jari 70   int header_row = 0;
2 26 Feb 07 jari 71   
2 26 Feb 07 jari 72   while ((currentLine = reader.readLine()) != null) {
2 26 Feb 07 jari 73       if (header_row < preSpotRows) {
2 26 Feb 07 jari 74     header_row++;
2 26 Feb 07 jari 75     continue;
2 26 Feb 07 jari 76       }
2 26 Feb 07 jari 77       
2 26 Feb 07 jari 78       ss.init(currentLine);
2 26 Feb 07 jari 79       currentRow = ss.nextIntToken();
2 26 Feb 07 jari 80       currentColumn = ss.nextIntToken();
2 26 Feb 07 jari 81       if (currentRow > maxRows) maxRows = currentRow;
2 26 Feb 07 jari 82       if (currentColumn > maxColumns) maxColumns = currentColumn;
2 26 Feb 07 jari 83   }
2 26 Feb 07 jari 84   
2 26 Feb 07 jari 85   SlideData slideData = new SlideData(maxRows, maxColumns);
2 26 Feb 07 jari 86   reader.close();
2 26 Feb 07 jari 87   reader = new BufferedReader(new FileReader(file));
2 26 Feb 07 jari 88   header_row = 0;
2 26 Feb 07 jari 89   int curpos = 0;
2 26 Feb 07 jari 90   
2 26 Feb 07 jari 91   while ((currentLine = reader.readLine()) != null) {
2 26 Feb 07 jari 92       
2 26 Feb 07 jari 93       if (header_row < preSpotRows) {
2 26 Feb 07 jari 94     header_row++;
2 26 Feb 07 jari 95     continue;
2 26 Feb 07 jari 96       }
2 26 Feb 07 jari 97       
2 26 Feb 07 jari 98       ss.init(currentLine);
2 26 Feb 07 jari 99       
2 26 Feb 07 jari 100       for (int j = 0; j < coordinatePairCount; j++) {
2 26 Feb 07 jari 101     rows[j] = ss.nextIntToken();
2 26 Feb 07 jari 102     columns[j] = ss.nextIntToken();
2 26 Feb 07 jari 103       }
2 26 Feb 07 jari 104       
2 26 Feb 07 jari 105       for (int j = 0; j < intensityCount; j++) {
2 26 Feb 07 jari 106     intensities[j] = ss.nextFloatToken(0.0f);
2 26 Feb 07 jari 107       }
2 26 Feb 07 jari 108       
2 26 Feb 07 jari 109       for (int j = 0; j < moreFields.length; j++) {
2 26 Feb 07 jari 110     if (ss.hasMoreTokens()) {
2 26 Feb 07 jari 111         avoidNullString = ss.nextToken();
2 26 Feb 07 jari 112         if (avoidNullString.equals("null")) moreFields[j] = "";
2 26 Feb 07 jari 113         else moreFields[j] = avoidNullString;
2 26 Feb 07 jari 114     } else {
2 26 Feb 07 jari 115         moreFields[j] = "";
2 26 Feb 07 jari 116     }
2 26 Feb 07 jari 117       }
2 26 Feb 07 jari 118       
2 26 Feb 07 jari 119       slideDataElement = new SlideDataElement(rows, columns, intensities, moreFields);
2 26 Feb 07 jari 120       slideData.addSlideDataElement(slideDataElement);
2 26 Feb 07 jari 121   }
2 26 Feb 07 jari 122   
2 26 Feb 07 jari 123   reader.close();
2 26 Feb 07 jari 124   slideData.setSlideDataName(file.getName());
2 26 Feb 07 jari 125   slideData.setSlideFileName(file.getPath());
2 26 Feb 07 jari 126   
2 26 Feb 07 jari 127   dataVector.add(slideData);
2 26 Feb 07 jari 128   return dataVector;
2 26 Feb 07 jari 129     }
2 26 Feb 07 jari 130      
2 26 Feb 07 jari 131 }