mev-4.0.01/source/org/tigr/microarray/mev/script/util/AlgorithmSet.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2004, 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  * AlgorithmSet.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  * Created on March 17, 2004, 5:47 PM
2 26 Feb 07 jari 9  */
2 26 Feb 07 jari 10
2 26 Feb 07 jari 11 package org.tigr.microarray.mev.script.util;
2 26 Feb 07 jari 12
2 26 Feb 07 jari 13 import java.util.Vector;
2 26 Feb 07 jari 14
2 26 Feb 07 jari 15 import org.tigr.microarray.mev.cluster.gui.Experiment;
2 26 Feb 07 jari 16
2 26 Feb 07 jari 17 /**
2 26 Feb 07 jari 18  *
2 26 Feb 07 jari 19  * @author  braisted
2 26 Feb 07 jari 20  */
2 26 Feb 07 jari 21 public class AlgorithmSet {
2 26 Feb 07 jari 22     
2 26 Feb 07 jari 23     /** Set ID
2 26 Feb 07 jari 24      */    
2 26 Feb 07 jari 25     private int id;
2 26 Feb 07 jari 26     /** Base (source) data node (<CODE>DataNode</CODE>).
2 26 Feb 07 jari 27      * Each AlgorithmSet has a unique source data node.
2 26 Feb 07 jari 28      */    
2 26 Feb 07 jari 29     private DataNode dataNode;
2 26 Feb 07 jari 30     /** Vector of related <CODE>AlgorithmNode</CODE> objects.
2 26 Feb 07 jari 31      */    
2 26 Feb 07 jari 32     private Vector algNodes;
2 26 Feb 07 jari 33     /** Base Experiment object on which to work.  This is common to the dataNode and is
2 26 Feb 07 jari 34      * usually populated in real time as the source data is actually created at
2 26 Feb 07 jari 35      * script execution time.
2 26 Feb 07 jari 36      */    
2 26 Feb 07 jari 37     private Experiment experiment;    
2 26 Feb 07 jari 38
2 26 Feb 07 jari 39     //In the case where algNodes are cluster selection we need to hold
2 26 Feb 07 jari 40     //the cluster object and the cluster type
2 26 Feb 07 jari 41     /** Optional cluster indices.  This applies to auto-cluster-selection class algorithms.
2 26 Feb 07 jari 42      */    
2 26 Feb 07 jari 43     private int [][] clusters;
2 26 Feb 07 jari 44     /** Describes the nature of the input data.
2 26 Feb 07 jari 45      */    
2 26 Feb 07 jari 46     private int clusterType;
2 26 Feb 07 jari 47     
2 26 Feb 07 jari 48     /** Creates a new instance of AlgorithmSet */
2 26 Feb 07 jari 49     public AlgorithmSet() {
2 26 Feb 07 jari 50         algNodes = new Vector();
2 26 Feb 07 jari 51     }
2 26 Feb 07 jari 52     
2 26 Feb 07 jari 53     /** Sets the source <CODE>DataNode</CODE>.
2 26 Feb 07 jari 54      * @param node source node
2 26 Feb 07 jari 55      */    
2 26 Feb 07 jari 56     public void setDataNode(DataNode node) {
2 26 Feb 07 jari 57         dataNode = node;
2 26 Feb 07 jari 58     }
2 26 Feb 07 jari 59     
2 26 Feb 07 jari 60     /** Adds a new algorithm node.
2 26 Feb 07 jari 61      * @param node Node to add.
2 26 Feb 07 jari 62      * @return
2 26 Feb 07 jari 63      */    
2 26 Feb 07 jari 64     public boolean addAlgorithmNode(AlgorithmNode node) {
2 26 Feb 07 jari 65         //algorithm is added if the algorithm doesn't exist
2 26 Feb 07 jari 66         //and either the data node is null or the data node ID
2 26 Feb 07 jari 67         //matches the algorithm's data ref.
2 26 Feb 07 jari 68         
2 26 Feb 07 jari 69         //Might institute a test for matching data ref's in all set algorithms
2 26 Feb 07 jari 70         if(!algNodes.contains(node)) {
2 26 Feb 07 jari 71             if(dataNode == null || dataNode.getID() == node.getDataNodeRef()) {
2 26 Feb 07 jari 72                 algNodes.add(node);
2 26 Feb 07 jari 73                 return true;
2 26 Feb 07 jari 74             }
2 26 Feb 07 jari 75         }
2 26 Feb 07 jari 76         return false;
2 26 Feb 07 jari 77     }
2 26 Feb 07 jari 78     
2 26 Feb 07 jari 79     /** Sets the experiment.  (Usually at run time.)
2 26 Feb 07 jari 80      * @param exp source experiment object.
2 26 Feb 07 jari 81      */    
2 26 Feb 07 jari 82     public void setExperiment(Experiment exp) {
2 26 Feb 07 jari 83         experiment = exp;
2 26 Feb 07 jari 84     }
2 26 Feb 07 jari 85     
2 26 Feb 07 jari 86     /** Returns the set's Experiment.
2 26 Feb 07 jari 87      */    
2 26 Feb 07 jari 88     public Experiment getExperiment() {
2 26 Feb 07 jari 89         return experiment;
2 26 Feb 07 jari 90     }
2 26 Feb 07 jari 91     
2 26 Feb 07 jari 92     /** Sets the ID attribute.
2 26 Feb 07 jari 93      * @param setID id
2 26 Feb 07 jari 94      */    
2 26 Feb 07 jari 95     public void setID(int setID) {
2 26 Feb 07 jari 96         id = setID;
2 26 Feb 07 jari 97     }
2 26 Feb 07 jari 98     
2 26 Feb 07 jari 99     /** Sets the optional cluster indices.  Used for
2 26 Feb 07 jari 100      * cluster-selection algorithms.
2 26 Feb 07 jari 101      * @param clusters cluster indices
2 26 Feb 07 jari 102      */    
2 26 Feb 07 jari 103     public void setClusters(int [][] clusters) {
2 26 Feb 07 jari 104         this.clusters = clusters;
2 26 Feb 07 jari 105     }
2 26 Feb 07 jari 106     
2 26 Feb 07 jari 107     /** Sets the cluster type attribute.  Note that values are
2 26 Feb 07 jari 108      * held in the <CODE>ScriptConstants</CODE> class.
2 26 Feb 07 jari 109      * @param type Cluster type attribute, see <CODE>ScriptConstants</CODE> for
2 26 Feb 07 jari 110      * possible cluster types.
2 26 Feb 07 jari 111      */    
2 26 Feb 07 jari 112     public void setClusterType(int type) {
2 26 Feb 07 jari 113         this.clusterType = type;
2 26 Feb 07 jari 114     }
2 26 Feb 07 jari 115     
2 26 Feb 07 jari 116     /** Returns the set's ID.
2 26 Feb 07 jari 117      * @return  */    
2 26 Feb 07 jari 118     public int getID() {
2 26 Feb 07 jari 119         return id;
2 26 Feb 07 jari 120     }
2 26 Feb 07 jari 121     
2 26 Feb 07 jari 122     /** Returns the number of algorithms in the set.
2 26 Feb 07 jari 123      */    
2 26 Feb 07 jari 124     public int getAlgorithmCount() {
2 26 Feb 07 jari 125         return algNodes.size();
2 26 Feb 07 jari 126     }
2 26 Feb 07 jari 127     
2 26 Feb 07 jari 128     /** Returns an <CODE>AlgorithmNode</CODE> given an index.
2 26 Feb 07 jari 129      * @param index index
2 26 Feb 07 jari 130      * @return
2 26 Feb 07 jari 131      */    
2 26 Feb 07 jari 132     public AlgorithmNode getAlgorithmNodeAt(int index) {
2 26 Feb 07 jari 133         return (AlgorithmNode)algNodes.elementAt(index);
2 26 Feb 07 jari 134     }
2 26 Feb 07 jari 135     
2 26 Feb 07 jari 136     /** Returns the set's source <CODE>DataNode</CODE>
2 26 Feb 07 jari 137      */    
2 26 Feb 07 jari 138     public DataNode getDataNode() {
2 26 Feb 07 jari 139         return dataNode;
2 26 Feb 07 jari 140     }
2 26 Feb 07 jari 141     
2 26 Feb 07 jari 142     /** Returns the set's clusters object, possibly null if N/A.
2 26 Feb 07 jari 143      */    
2 26 Feb 07 jari 144     public int [][] getClusters() {
2 26 Feb 07 jari 145         return clusters;
2 26 Feb 07 jari 146     }
2 26 Feb 07 jari 147     
2 26 Feb 07 jari 148     /** Returns the cluster type attribute of the
2 26 Feb 07 jari 149      * cluster indices.
2 26 Feb 07 jari 150      * @return  */    
2 26 Feb 07 jari 151     public int  getClusterType() {
2 26 Feb 07 jari 152         return clusterType;
2 26 Feb 07 jari 153     }
2 26 Feb 07 jari 154 }