public HeatMapData generateMeanHeatMapData(ArrayList<String> probeList) {
   HeatMapData hmd = new HeatMapData(HeatMapData.ONE_COLOR);
   double[][] ddata = new double[probeList.size()][tissues.size() * meanStrains.size()];
   int actualSize = 0;
   for (int i = 0; i < probeList.size(); i++) {
     // System.out.println("get data:"+probeList.get(i));
     HashMap tmp = (HashMap) data.get(probeList.get(i));
     if (tmp != null) {
       ArrayList<Double> row = (ArrayList<Double>) tmp.get("meanRow");
       for (int j = 0; j < row.size(); j++) {
         ddata[i][j] = row.get(j).doubleValue();
       }
       actualSize++;
     } else {
       // System.out.println();
       probeList.remove(i);
       i--;
     }
   }
   double[][] tmpdata = new double[actualSize][tissues.size() * meanStrains.size()];
   for (int i = 0; i < tmpdata.length; i++) {
     tmpdata[i] = ddata[i];
   }
   hmd.setDataString(tmpdata, probeList, false);
   return hmd;
 }
 public HeatMapData generateFoldDiffHeatMapData(ArrayList<String> probeList) {
   HeatMapData hmd = new HeatMapData(HeatMapData.TWO_COLOR);
   double[][] ddata = new double[probeList.size()][tissues.size() * fdStrains.size()];
   int actualSize = 0;
   for (int i = 0; i < probeList.size(); i++) {
     HashMap tmp = (HashMap) data.get(probeList.get(i));
     if (tmp != null) {
       ArrayList<Double> row = (ArrayList<Double>) tmp.get("fcRow");
       for (int j = 0; j < row.size(); j++) {
         ddata[i][j] = row.get(j).doubleValue();
       }
       actualSize++;
     } else {
       probeList.remove(i);
       i--;
     }
   }
   double[][] tmpdata = new double[actualSize][tissues.size() * meanStrains.size()];
   for (int i = 0; i < tmpdata.length; i++) {
     tmpdata[i] = ddata[i];
   }
   hmd.setDataString(tmpdata, probeList, true);
   return hmd;
 }