2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
Copyright @ 1999-2003, The Institute for Genomic Research (TIGR). |
2 |
26 Feb 07 |
jari |
All rights reserved. |
2 |
26 Feb 07 |
jari |
4 |
*/ |
2 |
26 Feb 07 |
jari |
5 |
/* |
2 |
26 Feb 07 |
jari |
* $RCSfile: TavFileFilter.java,v $ |
2 |
26 Feb 07 |
jari |
* $Revision: 1.4 $ |
2 |
26 Feb 07 |
jari |
* $Date: 2005/03/10 15:39:40 $ |
2 |
26 Feb 07 |
jari |
* $Author: braistedj $ |
2 |
26 Feb 07 |
jari |
* $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 |
//int coordinatePairCount = TMEV.getCoordinatePairCount(); |
2 |
26 Feb 07 |
jari |
//int intensityCount = TMEV.getIntensityCount(); |
2 |
26 Feb 07 |
jari |
//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 |
//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 |
} |