/*
* The MIT License (MIT)
*
* Copyright (c) 2007-2015 Broad Institute
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package org.broad.igv.util;
import org.broad.igv.ui.color.ColorUtilities;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
public class ChromosomeColors {
private static Map<String, Color> colorMap ;
public static synchronized Color getColor(String chr) {
if (!chr.startsWith("chr")) {
chr = "chr" + chr;
}
if(colorMap == null) {
initColorMap();
}
if (colorMap.containsKey(chr)) {
return colorMap.get(chr);
}
else {
Color color = ColorUtilities.randomColor(colorMap.size());
colorMap.put(chr, color);
return color;
}
}
private static void initColorMap() {
colorMap = new HashMap();
colorMap.put("chrX", new Color(204, 153, 0));
colorMap.put("chrY", new Color(153, 204, 0));
colorMap.put("chrUn", Color.DARK_GRAY);
colorMap.put("chr1", new Color(80, 80, 255));
//colorMap.put("chr1", Color.red);
colorMap.put("chrI", new Color(139, 155, 187));
colorMap.put("chr2", new Color(206, 61, 50));
colorMap.put("chrII", new Color(206, 61, 50));
colorMap.put("chr2a", new Color(206, 61, 50).brighter());
colorMap.put("chr2b", new Color(206, 61, 50).brighter().brighter());
colorMap.put("chr3", new Color(116, 155, 88));
colorMap.put("chrIII", new Color(116, 155, 88));
colorMap.put("chr4", new Color(240, 230, 133));
colorMap.put("chrIV", new Color(240, 230, 133));
colorMap.put("chr5", new Color(70, 105, 131));
colorMap.put("chr6", new Color(186, 99, 56));
colorMap.put("chr7", new Color(93, 177, 221));
colorMap.put("chr8", new Color(128, 34, 104));
colorMap.put("chr9", new Color(107, 215, 107));
colorMap.put("chr10", new Color(213, 149, 167));
colorMap.put("chr11", new Color(146, 72, 34));
colorMap.put("chr12", new Color(131, 123, 141));
colorMap.put("chr13", new Color(199, 81, 39));
colorMap.put("chr14", new Color(213, 143, 92));
colorMap.put("chr15", new Color(122, 101, 165));
colorMap.put("chr16", new Color(228, 175, 105));
colorMap.put("chr17", new Color(59, 27, 83));
colorMap.put("chr18", new Color(205, 222, 183));
colorMap.put("chr19", new Color(97, 42, 121));
colorMap.put("chr20", new Color(174, 31, 99));
colorMap.put("chr21", new Color(231, 199, 111));
colorMap.put("chr22", new Color(90, 101, 94));
colorMap.put("chr23", new Color(204, 153, 0));
colorMap.put("chr24", new Color(153, 204, 0));
colorMap.put("chr25", new Color(51, 204, 0));
colorMap.put("chr26", new Color(0, 204, 51));
colorMap.put("chr27", new Color(0, 204, 153));
colorMap.put("chr28", new Color(0, 153, 204));
colorMap.put("chr29", new Color(10, 71, 255));
colorMap.put("chr30", new Color(71, 117, 255));
colorMap.put("chr31", new Color(255, 194, 10));
colorMap.put("chr32", new Color(255, 209, 71));
colorMap.put("chr33", new Color(153, 0, 51));
colorMap.put("chr34", new Color(153, 26, 0));
colorMap.put("chr35", new Color(153, 102, 0));
colorMap.put("chr36", new Color(128, 153, 0));
colorMap.put("chr37", new Color(51, 153, 0));
colorMap.put("chr38", new Color(0, 153, 26));
colorMap.put("chr39", new Color(0, 153, 102));
colorMap.put("chr40", new Color(0, 128, 153));
colorMap.put("chr41", new Color(0, 51, 153));
colorMap.put("chr42", new Color(26, 0, 153));
colorMap.put("chr43", new Color(102, 0, 153));
colorMap.put("chr44", new Color(153, 0, 128));
colorMap.put("chr45", new Color(214, 0, 71));
colorMap.put("chr46", new Color(255, 20, 99));
colorMap.put("chr47", new Color(0, 214, 143));
colorMap.put("chr48", new Color(20, 255, 177));
}
}