2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
* CGHCloneComparator.java |
2 |
26 Feb 07 |
jari |
3 |
* |
2 |
26 Feb 07 |
jari |
* Created on October 21, 2005 |
2 |
26 Feb 07 |
jari |
5 |
*/ |
2 |
26 Feb 07 |
jari |
6 |
/** |
2 |
26 Feb 07 |
jari |
7 |
* |
2 |
26 Feb 07 |
jari |
* @author Adam Margolin |
2 |
26 Feb 07 |
jari |
* @author Raktim Sinha |
2 |
26 Feb 07 |
jari |
10 |
*/ |
2 |
26 Feb 07 |
jari |
11 |
package org.tigr.microarray.mev.cgh.CGHDataGenerator; |
2 |
26 Feb 07 |
jari |
12 |
|
2 |
26 Feb 07 |
jari |
13 |
import java.util.Comparator; |
2 |
26 Feb 07 |
jari |
14 |
|
2 |
26 Feb 07 |
jari |
15 |
import org.tigr.microarray.mev.cgh.CGHDataObj.CGHClone; |
2 |
26 Feb 07 |
jari |
16 |
|
2 |
26 Feb 07 |
jari |
17 |
public class CGHCloneComparator implements Comparator{ |
2 |
26 Feb 07 |
jari |
18 |
|
2 |
26 Feb 07 |
jari |
/** Creates a new instance of CGHCloneComparator */ |
2 |
26 Feb 07 |
jari |
20 |
public CGHCloneComparator() { |
2 |
26 Feb 07 |
jari |
21 |
} |
2 |
26 Feb 07 |
jari |
22 |
|
2 |
26 Feb 07 |
jari |
23 |
public int compare(Object obj, Object obj1) { |
2 |
26 Feb 07 |
jari |
//System.out.println("Compare"); |
2 |
26 Feb 07 |
jari |
25 |
CGHClone clone1 = (CGHClone)obj; |
2 |
26 Feb 07 |
jari |
26 |
CGHClone clone2 = (CGHClone)obj1; |
2 |
26 Feb 07 |
jari |
27 |
|
2 |
26 Feb 07 |
jari |
28 |
Integer chr1 = new Integer(clone1.getChromosome()); |
2 |
26 Feb 07 |
jari |
29 |
Integer chr2 = new Integer(clone2.getChromosome()); |
2 |
26 Feb 07 |
jari |
30 |
|
2 |
26 Feb 07 |
jari |
31 |
Integer st1 = new Integer(clone1.getStart()); |
2 |
26 Feb 07 |
jari |
32 |
Integer st2 = new Integer(clone2.getStart()); |
2 |
26 Feb 07 |
jari |
33 |
|
2 |
26 Feb 07 |
jari |
34 |
if (clone1.equals(clone2)) { |
2 |
26 Feb 07 |
jari |
35 |
return 0; |
2 |
26 Feb 07 |
jari |
36 |
} |
2 |
26 Feb 07 |
jari |
37 |
else if (chr1.equals(chr2) && st1.equals(st2)){ |
2 |
26 Feb 07 |
jari |
//System.out.println("Clone Equal: " + clone1.getName() + ", " + clone2.getName()); |
2 |
26 Feb 07 |
jari |
39 |
return -1; |
2 |
26 Feb 07 |
jari |
40 |
} |
2 |
26 Feb 07 |
jari |
41 |
else if (!chr1.equals(chr2)){ |
2 |
26 Feb 07 |
jari |
42 |
return chr1.compareTo(chr2); |
2 |
26 Feb 07 |
jari |
43 |
} else { |
2 |
26 Feb 07 |
jari |
//return st1.compareTo(st2); |
2 |
26 Feb 07 |
jari |
45 |
|
2 |
26 Feb 07 |
jari |
46 |
int val = st1.compareTo(st2); |
2 |
26 Feb 07 |
jari |
47 |
/** |
2 |
26 Feb 07 |
jari |
* Raktim Oct 21, 05 |
2 |
26 Feb 07 |
jari |
* This is a rare situation scenario. |
2 |
26 Feb 07 |
jari |
* If 2 or more probes map to the same genomic position |
2 |
26 Feb 07 |
jari |
* they would appear in the sorted list in the order they appear in the file. |
2 |
26 Feb 07 |
jari |
* Forcing it to be reported as a bigger value by the Comparator interface. |
2 |
26 Feb 07 |
jari |
* Otherwise it will appear as a subkey of the first value in the TreeMap. |
2 |
26 Feb 07 |
jari |
54 |
*/ |
2 |
26 Feb 07 |
jari |
55 |
|
2 |
26 Feb 07 |
jari |
56 |
if (val == 0){ return -1; } |
2 |
26 Feb 07 |
jari |
57 |
else |
2 |
26 Feb 07 |
jari |
58 |
return val; |
2 |
26 Feb 07 |
jari |
59 |
|
2 |
26 Feb 07 |
jari |
60 |
|
2 |
26 Feb 07 |
jari |
61 |
} |
2 |
26 Feb 07 |
jari |
62 |
|
2 |
26 Feb 07 |
jari |
63 |
/* |
2 |
26 Feb 07 |
jari |
* Adam Implementation |
2 |
26 Feb 07 |
jari |
if(clone1.getChromosome() != clone2.getChromosome()){ |
2 |
26 Feb 07 |
jari |
return clone1.getChromosome() - clone2.getChromosome(); |
2 |
26 Feb 07 |
jari |
}else{ |
2 |
26 Feb 07 |
jari |
return clone1.getStart() - clone2.getStart(); |
2 |
26 Feb 07 |
jari |
69 |
} |
2 |
26 Feb 07 |
jari |
70 |
*/ |
2 |
26 Feb 07 |
jari |
71 |
} |
2 |
26 Feb 07 |
jari |
72 |
} |