Squashed initial commit
This commit is contained in:
130
qhtcp-workflow/apps/java/weka-clustering/src/Matrix.java
Executable file
130
qhtcp-workflow/apps/java/weka-clustering/src/Matrix.java
Executable file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author DTian
|
||||
*/
|
||||
public class Matrix {
|
||||
|
||||
private HashMap matrix; // store data
|
||||
private int rowSize; // row size of matrix
|
||||
private int colSize; // column size of value array
|
||||
private final int lookupTableSize = 9000; //size of look up table
|
||||
|
||||
public int getColSize() {
|
||||
return colSize;
|
||||
}
|
||||
|
||||
public void setColSize(int colSize) {
|
||||
this.colSize = colSize;
|
||||
}
|
||||
|
||||
public HashMap getMatrix() {
|
||||
return matrix;
|
||||
}
|
||||
|
||||
public void setMatrix(HashMap matrix) {
|
||||
this.matrix = matrix;
|
||||
}
|
||||
|
||||
public int getRowSize() {
|
||||
return rowSize;
|
||||
}
|
||||
|
||||
public void setRowSize(int rowSize) {
|
||||
this.rowSize = rowSize;
|
||||
}
|
||||
|
||||
public Matrix() {
|
||||
rowSize = 0;
|
||||
colSize = 0;
|
||||
matrix = new HashMap();
|
||||
}
|
||||
|
||||
/**
|
||||
* constructor with 1 String parameter
|
||||
*
|
||||
* @param filename : the name of the input file
|
||||
*
|
||||
* @result: create a matrix from a input file
|
||||
*
|
||||
*/
|
||||
public Matrix(String filename) {
|
||||
|
||||
// Initialize variables
|
||||
this.setRowSize(0);
|
||||
this.setColSize(0);
|
||||
matrix = new HashMap(lookupTableSize);
|
||||
|
||||
try {
|
||||
|
||||
FileReader fr = new FileReader(filename);
|
||||
BufferedReader br = new BufferedReader(fr);
|
||||
|
||||
// strRow is used to read line from file(skip first row)
|
||||
String strRow = br.readLine();
|
||||
|
||||
// The while loop read the data from data file to vvf
|
||||
while ((strRow = br.readLine()) != null) {
|
||||
|
||||
// strArray was used to store the float value from data file in
|
||||
// string format
|
||||
String delimiter = "";
|
||||
if (strRow.indexOf(",") >= 0) { //for CSV file
|
||||
delimiter = "\\,";
|
||||
} else { // for whitespace delimited file
|
||||
delimiter = "\\s";
|
||||
}
|
||||
|
||||
String[] strArray = strRow.trim().split(delimiter);
|
||||
String[] strArrValue = Arrays.copyOfRange(strArray, 1, strArray.length);
|
||||
// strArray[0] is the orf name, others are value
|
||||
matrix.put(strArray[0].trim().toLowerCase(), strArrValue);
|
||||
rowSize++;
|
||||
colSize = strArrValue.length;
|
||||
}
|
||||
|
||||
br.close();
|
||||
fr.close();
|
||||
} catch (IOException e) {
|
||||
// catch possible io errors from readLine()
|
||||
System.out.println("IOException error in 'class Matrix, constructor'");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param index, the specifed key
|
||||
* @return: the string array of the value
|
||||
*/
|
||||
public String[] getSpecifiedValue(Object key) {
|
||||
return (String[]) matrix.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the list of orf names
|
||||
*/
|
||||
public ArrayList getOrfNames() {
|
||||
ArrayList result = new ArrayList(this.getRowSize());
|
||||
Iterator it = matrix.keySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
result.add(it.next());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void addValue(Object key, Object value) {
|
||||
matrix.put(key, value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user