mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHAlgorithms/NumberOfAlterations/CloneAlterations/CloneAlterations.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * CloneAlterations.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * Created on May 19, 2003, 2:08 AM
2 26 Feb 07 jari 5  */
2 26 Feb 07 jari 6
2 26 Feb 07 jari 7 package org.tigr.microarray.mev.cgh.CGHAlgorithms.NumberOfAlterations.CloneAlterations;
2 26 Feb 07 jari 8
2 26 Feb 07 jari 9
2 26 Feb 07 jari 10 import java.util.Collections;
2 26 Feb 07 jari 11 import java.util.Vector;
2 26 Feb 07 jari 12
2 26 Feb 07 jari 13 import javax.swing.tree.DefaultMutableTreeNode;
2 26 Feb 07 jari 14
2 26 Feb 07 jari 15 import org.tigr.microarray.mev.cgh.CGHAlgorithms.NumberOfAlterations.NumberOfAlterationsCalculator;
2 26 Feb 07 jari 16 import org.tigr.microarray.mev.cgh.CGHDataObj.AlterationRegion;
2 26 Feb 07 jari 17 import org.tigr.microarray.mev.cgh.CGHDataObj.AlterationRegionsComparator;
2 26 Feb 07 jari 18 import org.tigr.microarray.mev.cgh.CGHDataObj.CGHClone;
2 26 Feb 07 jari 19 import org.tigr.microarray.mev.cluster.algorithm.AlgorithmException;
2 26 Feb 07 jari 20 import org.tigr.microarray.mev.cluster.gui.IFramework;
2 26 Feb 07 jari 21
2 26 Feb 07 jari 22 /**
2 26 Feb 07 jari 23  *
2 26 Feb 07 jari 24  * @author  Adam Margolin
2 26 Feb 07 jari 25  * @author Raktim Sinha
2 26 Feb 07 jari 26  */
2 26 Feb 07 jari 27
2 26 Feb 07 jari 28 public abstract class CloneAlterations extends NumberOfAlterationsCalculator{
2 26 Feb 07 jari 29
2 26 Feb 07 jari 30     /** Creates a new instance of CloneAlterations */
2 26 Feb 07 jari 31     public CloneAlterations() {
2 26 Feb 07 jari 32     }
2 26 Feb 07 jari 33
2 26 Feb 07 jari 34     public DefaultMutableTreeNode execute(IFramework framework) throws AlgorithmException {
2 26 Feb 07 jari 35         this.framework = framework;
2 26 Feb 07 jari 36         this.data = framework.getData();
2 26 Feb 07 jari 37         //SortedSet alterationRegions = new TreeSet(new AlterationRegionsComparator());
2 26 Feb 07 jari 38         Vector alterationRegions = new Vector();
2 26 Feb 07 jari 39
2 26 Feb 07 jari 40         for(int i = 0; i < this.framework.getData().getFeaturesSize(); i++){
2 26 Feb 07 jari 41             CGHClone curClone = this.framework.getData().getCloneAt(i);
2 26 Feb 07 jari 42             int numAlterations = getNumAlterations(i);
2 26 Feb 07 jari 43
2 26 Feb 07 jari 44             AlterationRegion curAlterationRegion = new AlterationRegion();
2 26 Feb 07 jari 45             curAlterationRegion.setDataRegion(curClone);
2 26 Feb 07 jari 46             curAlterationRegion.setNumAlterations(numAlterations);
2 26 Feb 07 jari 47             curAlterationRegion.setNumSamples(this.framework.getData().getFeaturesCount());
2 26 Feb 07 jari 48             //curAlterationRegion.setPercentAltered((float)numAlterations / (float)fcd.getData().getFeaturesCount());
2 26 Feb 07 jari 49             alterationRegions.add(curAlterationRegion);
2 26 Feb 07 jari 50         }
2 26 Feb 07 jari 51         Collections.sort(alterationRegions, new AlterationRegionsComparator());
2 26 Feb 07 jari 52         return createResultsTree(alterationRegions);
2 26 Feb 07 jari 53     }
2 26 Feb 07 jari 54
2 26 Feb 07 jari 55     public int getNumAlterations(int cloneIndex){
2 26 Feb 07 jari 56         int numAlterations = 0;
2 26 Feb 07 jari 57         for(int i = 0; i < data.getFeaturesCount(); i++){
2 26 Feb 07 jari 58             int copyNumber = data.getCopyNumberDetermination(i, cloneIndex);
2 26 Feb 07 jari 59             if(isAltered(copyNumber)){
2 26 Feb 07 jari 60                 numAlterations++;
2 26 Feb 07 jari 61             }
2 26 Feb 07 jari 62         }
2 26 Feb 07 jari 63         return numAlterations;
2 26 Feb 07 jari 64     }
2 26 Feb 07 jari 65
2 26 Feb 07 jari 66     protected abstract boolean isAltered(int copyNumber);
2 26 Feb 07 jari 67
2 26 Feb 07 jari 68 }