2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
Copyright @ 1999-2004, The Institute for Genomic Research (TIGR). |
2 |
26 Feb 07 |
jari |
All rights reserved. |
2 |
26 Feb 07 |
jari |
4 |
*/ |
2 |
26 Feb 07 |
jari |
5 |
/* |
2 |
26 Feb 07 |
jari |
* AlgorithmSet.java |
2 |
26 Feb 07 |
jari |
7 |
* |
2 |
26 Feb 07 |
jari |
* 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 |
* @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 |
/** Set ID |
2 |
26 Feb 07 |
jari |
24 |
*/ |
2 |
26 Feb 07 |
jari |
25 |
private int id; |
2 |
26 Feb 07 |
jari |
/** Base (source) data node (<CODE>DataNode</CODE>). |
2 |
26 Feb 07 |
jari |
* 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 |
/** 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 |
/** Base Experiment object on which to work. This is common to the dataNode and is |
2 |
26 Feb 07 |
jari |
* usually populated in real time as the source data is actually created at |
2 |
26 Feb 07 |
jari |
* 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 |
//In the case where algNodes are cluster selection we need to hold |
2 |
26 Feb 07 |
jari |
//the cluster object and the cluster type |
2 |
26 Feb 07 |
jari |
/** 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 |
/** 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 |
/** 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 |
/** Sets the source <CODE>DataNode</CODE>. |
2 |
26 Feb 07 |
jari |
* @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 |
/** Adds a new algorithm node. |
2 |
26 Feb 07 |
jari |
* @param node Node to add. |
2 |
26 Feb 07 |
jari |
* @return |
2 |
26 Feb 07 |
jari |
63 |
*/ |
2 |
26 Feb 07 |
jari |
64 |
public boolean addAlgorithmNode(AlgorithmNode node) { |
2 |
26 Feb 07 |
jari |
//algorithm is added if the algorithm doesn't exist |
2 |
26 Feb 07 |
jari |
//and either the data node is null or the data node ID |
2 |
26 Feb 07 |
jari |
//matches the algorithm's data ref. |
2 |
26 Feb 07 |
jari |
68 |
|
2 |
26 Feb 07 |
jari |
//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 |
/** Sets the experiment. (Usually at run time.) |
2 |
26 Feb 07 |
jari |
* @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 |
/** 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 |
/** Sets the ID attribute. |
2 |
26 Feb 07 |
jari |
* @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 |
/** Sets the optional cluster indices. Used for |
2 |
26 Feb 07 |
jari |
* cluster-selection algorithms. |
2 |
26 Feb 07 |
jari |
* @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 |
/** Sets the cluster type attribute. Note that values are |
2 |
26 Feb 07 |
jari |
* held in the <CODE>ScriptConstants</CODE> class. |
2 |
26 Feb 07 |
jari |
* @param type Cluster type attribute, see <CODE>ScriptConstants</CODE> for |
2 |
26 Feb 07 |
jari |
* 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 |
/** Returns the set's ID. |
2 |
26 Feb 07 |
jari |
* @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 |
/** 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 |
/** Returns an <CODE>AlgorithmNode</CODE> given an index. |
2 |
26 Feb 07 |
jari |
* @param index index |
2 |
26 Feb 07 |
jari |
* @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 |
/** 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 |
/** 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 |
/** Returns the cluster type attribute of the |
2 |
26 Feb 07 |
jari |
* cluster indices. |
2 |
26 Feb 07 |
jari |
* @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 |
} |