mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHDataModel/CGHChartDataModelNoDyeSwap.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * CGHChartDataModelNoDyeSwap.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * Created on July 5, 2003, 11:24 PM
2 26 Feb 07 jari 5  */
2 26 Feb 07 jari 6
2 26 Feb 07 jari 7 package org.tigr.microarray.mev.cgh.CGHDataModel;
2 26 Feb 07 jari 8 /*
2 26 Feb 07 jari 9 import com.klg.jclass.chart.ChartDataModel;
2 26 Feb 07 jari 10 import com.klg.jclass.chart.LabelledChartDataModel;
2 26 Feb 07 jari 11 import com.klg.jclass.chart.ChartDataSupport;
2 26 Feb 07 jari 12 import com.klg.jclass.chart.ChartDataEvent;
2 26 Feb 07 jari 13 import com.klg.jclass.chart.ChartDataManageable;
2 26 Feb 07 jari 14 */
2 26 Feb 07 jari 15 import org.tigr.microarray.mev.cluster.gui.IData;
2 26 Feb 07 jari 16 import org.tigr.microarray.mev.cluster.gui.IFramework;
2 26 Feb 07 jari 17 /*
2 26 Feb 07 jari 18 import java.util.Vector;
2 26 Feb 07 jari 19 import java.util.Iterator;
2 26 Feb 07 jari 20 import java.util.Hashtable;
2 26 Feb 07 jari 21 import javax.swing.event.ChangeListener;
2 26 Feb 07 jari 22
2 26 Feb 07 jari 23 import java.awt.Color;
2 26 Feb 07 jari 24
2 26 Feb 07 jari 25 import org.tigr.microarray.mev.cgh.CGHDataObj.*;
2 26 Feb 07 jari 26 //import org.abramson.microarray.cgh.CGHFcdObj.CGHMultipleArrayDataFcd;
2 26 Feb 07 jari 27 import cern.jet.math.Arithmetic;
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29 import cern.jet.stat.Probability;
2 26 Feb 07 jari 30 */
2 26 Feb 07 jari 31
2 26 Feb 07 jari 32 /**
2 26 Feb 07 jari 33  *
2 26 Feb 07 jari 34  * @author  Adam Margolin
2 26 Feb 07 jari 35  * @author Raktim Sinha
2 26 Feb 07 jari 36  */
2 26 Feb 07 jari 37
2 26 Feb 07 jari 38 public class CGHChartDataModelNoDyeSwap extends CGHChartDataModel {
2 26 Feb 07 jari 39
2 26 Feb 07 jari 40     /** Creates a new instance of CGHChartDataModelNoDyeSwap */
2 26 Feb 07 jari 41     public CGHChartDataModelNoDyeSwap(/*CGHMultipleArrayDataFcd fcd,*/ IFramework framework, int experimentIndex, int chromosomeIndex){
2 26 Feb 07 jari 42         super(/*fcd,*/ framework, experimentIndex, chromosomeIndex);
2 26 Feb 07 jari 43     }
2 26 Feb 07 jari 44
2 26 Feb 07 jari 45     /*
2 26 Feb 07 jari 46      * @return the number of experiments if viewing all experiments, 2 otherwise
2 26 Feb 07 jari 47      * representing the cy3 and cy5 experiments
2 26 Feb 07 jari 48      */
2 26 Feb 07 jari 49     public int getNumSeries() {
2 26 Feb 07 jari 50         return adaptor.experimentIndices.length;
2 26 Feb 07 jari 51     }
2 26 Feb 07 jari 52
2 26 Feb 07 jari 53     public String[] getSeriesLabels() {
2 26 Feb 07 jari 54         int numSeries = getNumSeries();
2 26 Feb 07 jari 55         String[] seriesLabels = new String[numSeries];
2 26 Feb 07 jari 56
2 26 Feb 07 jari 57         for(int labelIndex = 0; labelIndex < numSeries; labelIndex++){
2 26 Feb 07 jari 58             String sampleName = data.getSampleName(adaptor.experimentIndices[labelIndex]);
2 26 Feb 07 jari 59             seriesLabels[labelIndex] = sampleName;
2 26 Feb 07 jari 60         }
2 26 Feb 07 jari 61         return seriesLabels;
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 double[] getYSeries(int index) {
2 26 Feb 07 jari 66         double[] ySeries = new double[getSeriesSize()];
2 26 Feb 07 jari 67         for(int i = 0; i < ySeries.length; i++){
2 26 Feb 07 jari 68             if(smoothUnconfirmed){
2 26 Feb 07 jari 69                 int copyNumber = data.getCopyNumberDetermination(adaptor.experimentIndices[index], adaptor.getCloneIndex(i));
2 26 Feb 07 jari 70                 if(copyNumber == IData.BAD_CLONE || copyNumber == IData.NO_COPY_CHANGE){
2 26 Feb 07 jari 71                     ySeries[i] = 0;
2 26 Feb 07 jari 72                     continue;
2 26 Feb 07 jari 73                 }
2 26 Feb 07 jari 74             }
2 26 Feb 07 jari 75
2 26 Feb 07 jari 76             float val = getDataValue(adaptor.experimentIndices[index], adaptor.getCloneIndex(i), adaptor.getCloneValueType());
2 26 Feb 07 jari 77             if(Float.isNaN(val) || Float.isInfinite(val)){
2 26 Feb 07 jari 78                 //ySeries[i] = Double.NaN;
2 26 Feb 07 jari 79             }else{
2 26 Feb 07 jari 80                 ySeries[i] = val;
2 26 Feb 07 jari 81             }
2 26 Feb 07 jari 82         }
2 26 Feb 07 jari 83         return ySeries;
2 26 Feb 07 jari 84     }
2 26 Feb 07 jari 85
2 26 Feb 07 jari 86     /**
2 26 Feb 07 jari 87      * Remember getRatio Glitch
2 26 Feb 07 jari 88      * @param experimentIndex
2 26 Feb 07 jari 89      * @param cloneIndex
2 26 Feb 07 jari 90      * @param cloneValueType
2 26 Feb 07 jari 91      * @return
2 26 Feb 07 jari 92      */
2 26 Feb 07 jari 93     private float getDataValue(int experimentIndex, int cloneIndex, int cloneValueType){
2 26 Feb 07 jari 94         switch (cloneValueType){
2 26 Feb 07 jari 95             case CGHBrowserModelAdaptor.CLONE_VALUES_RATIOS:
2 26 Feb 07 jari 96                 return data.getRatio(experimentIndex, cloneIndex, IData.LOG);
2 26 Feb 07 jari 97             case CGHBrowserModelAdaptor.CLONE_VALUES_LOG_RATIOS:
2 26 Feb 07 jari 98                 return data.getRatio(experimentIndex, cloneIndex, IData.LOG);
2 26 Feb 07 jari 99             case CGHBrowserModelAdaptor.CLONE_VALUES_P_SCORE:
2 26 Feb 07 jari 100                 return data.getPValueByLogCloneDistribution(experimentIndex, cloneIndex);
2 26 Feb 07 jari 101         }
2 26 Feb 07 jari 102         return Float.NaN;
2 26 Feb 07 jari 103     }
2 26 Feb 07 jari 104 }