mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHDataGenerator/CGHCloneComparator.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * CGHCloneComparator.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * 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 8  * @author  Adam Margolin
2 26 Feb 07 jari 9  * @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 19     /** 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 24       //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 38           //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 44           //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 48            * Raktim Oct 21, 05
2 26 Feb 07 jari 49            * This is a rare situation scenario.
2 26 Feb 07 jari 50            * If 2 or more probes map to the same genomic position
2 26 Feb 07 jari 51            * they would appear in the sorted list in the order they appear in the file.
2 26 Feb 07 jari 52            * Forcing it to be reported as a bigger value by the Comparator interface.
2 26 Feb 07 jari 53            * 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 64          * Adam Implementation
2 26 Feb 07 jari 65         if(clone1.getChromosome() != clone2.getChromosome()){
2 26 Feb 07 jari 66             return clone1.getChromosome() - clone2.getChromosome();
2 26 Feb 07 jari 67         }else{
2 26 Feb 07 jari 68             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 }