mev-4.0.01/source/org/tigr/microarray/util/BootstrappedMatrixByExps.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: BootstrappedMatrixByExps.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.2 $
2 26 Feb 07 jari 8  * $Date: 2006/02/23 20:59:59 $
2 26 Feb 07 jari 9  * $Author: caliente $
2 26 Feb 07 jari 10  * $State: Exp $
2 26 Feb 07 jari 11  */
2 26 Feb 07 jari 12 package org.tigr.microarray.util;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import java.util.Random;
2 26 Feb 07 jari 15 import java.util.Vector;
2 26 Feb 07 jari 16
2 26 Feb 07 jari 17 import org.tigr.util.FloatMatrix;
2 26 Feb 07 jari 18
2 26 Feb 07 jari 19 public class BootstrappedMatrixByExps {
2 26 Feb 07 jari 20     
2 26 Feb 07 jari 21     public Vector resampledIndices = new Vector(); //contains the indices of the experiments from the original matrix in the order they are present in the resampled matrix
2 26 Feb 07 jari 22     
2 26 Feb 07 jari 23     //the following method "extracts" the 2D array from a FloatMatrix object to be used by the subsampleMatrix method in creating a resampled matrix.
2 26 Feb 07 jari 24     
2 26 Feb 07 jari 25     float[][] get2DArrFromExpMatrix(FloatMatrix expMatrix) {
2 26 Feb 07 jari 26   int geneDim = expMatrix.getRowDimension();
2 26 Feb 07 jari 27   int expDim = expMatrix.getColumnDimension();
2 26 Feb 07 jari 28   float[][] expArray = new float[geneDim][expDim];
2 26 Feb 07 jari 29   int x, y;
2 26 Feb 07 jari 30   
2 26 Feb 07 jari 31   for (x = 0; x < geneDim; x++) {
2 26 Feb 07 jari 32       for (y = 0; y < expDim; y++) {
2 26 Feb 07 jari 33     expArray[x][y] = expMatrix.get(x,y);
2 26 Feb 07 jari 34       }
2 26 Feb 07 jari 35   }
2 26 Feb 07 jari 36   
2 26 Feb 07 jari 37   return expArray;
2 26 Feb 07 jari 38     }
2 26 Feb 07 jari 39     
2 26 Feb 07 jari 40     
2 26 Feb 07 jari 41     
2 26 Feb 07 jari 42     float[][] resampleMatrix(FloatMatrix expMatrix) {//This creates a resampled array (resampling done on experiments) of the same dimensions as the original array
2 26 Feb 07 jari 43   
2 26 Feb 07 jari 44   float[][] aMatrix = get2DArrFromExpMatrix(expMatrix);
2 26 Feb 07 jari 45   float[][] newMatrix = new float[aMatrix.length][aMatrix[0].length];
2 26 Feb 07 jari 46   
2 26 Feb 07 jari 47   int s, t, u;
2 26 Feb 07 jari 48   int numGenes = aMatrix.length;
2 26 Feb 07 jari 49   int numExps = aMatrix[0].length;
2 26 Feb 07 jari 50   int randExp;
2 26 Feb 07 jari 51   Random generator = new Random();
2 26 Feb 07 jari 52   
2 26 Feb 07 jari 53   for (s = 0; s < numExps; s++) {
2 26 Feb 07 jari 54       randExp = generator.nextInt(numExps);
2 26 Feb 07 jari 55       for (u = 0; u < numGenes; u++) {
2 26 Feb 07 jari 56     newMatrix[u][s] = aMatrix[u][randExp];
2 26 Feb 07 jari 57       }
2 26 Feb 07 jari 58       resampledIndices.add(new Integer(randExp));
2 26 Feb 07 jari 59   }
2 26 Feb 07 jari 60   
2 26 Feb 07 jari 61   return newMatrix;
2 26 Feb 07 jari 62     }
2 26 Feb 07 jari 63     
2 26 Feb 07 jari 64     
2 26 Feb 07 jari 65     public FloatMatrix createResampExpMatrixObject(FloatMatrix expMatrix) {
2 26 Feb 07 jari 66   int x, y;
2 26 Feb 07 jari 67   float[][] resampledArray = resampleMatrix(expMatrix);
2 26 Feb 07 jari 68   FloatMatrix resampMatrixObject = new FloatMatrix(resampledArray);
2 26 Feb 07 jari 69   return resampMatrixObject;
2 26 Feb 07 jari 70     }
2 26 Feb 07 jari 71     
2 26 Feb 07 jari 72     
2 26 Feb 07 jari 73     
2 26 Feb 07 jari 74     void printMatrix(float[][] matrix) {
2 26 Feb 07 jari 75   int i, j  = 0;
2 26 Feb 07 jari 76   for (i = 0; i < matrix[0].length; i++) {
2 26 Feb 07 jari 77       for (j = 0; j < matrix.length; j++) {
2 26 Feb 07 jari 78     System.out.print(((int) (matrix[j][i] * 100)) / 100 + " ");
2 26 Feb 07 jari 79       }
2 26 Feb 07 jari 80       System.out.println();
2 26 Feb 07 jari 81   }
2 26 Feb 07 jari 82     }
2 26 Feb 07 jari 83     
2 26 Feb 07 jari 84     
2 26 Feb 07 jari 85 }