Merge branch 'develop' into ben/gecos_colour_schemes
authorBen Soares <b.soares@dundee.ac.uk>
Sat, 19 Mar 2022 11:46:27 +0000 (11:46 +0000)
committerBen Soares <b.soares@dundee.ac.uk>
Sat, 19 Mar 2022 11:46:27 +0000 (11:46 +0000)
1  2 
src/jalview/schemes/ResidueProperties.java

   */
  package jalview.schemes;
  
+ import java.util.Locale;
 -
 -import jalview.analysis.GeneticCodes;
 -
  import java.awt.Color;
  import java.util.ArrayList;
  import java.util.Arrays;
@@@ -30,8 -34,6 +31,8 @@@ import java.util.List
  import java.util.Map;
  import java.util.Vector;
  
 +import jalview.analysis.GeneticCodes;
 +
  public class ResidueProperties
  {
    // Stores residue codes/names and colours and other things
        Color.white // ' '
    };
  
 +  /*
 +   * flower, blossom, sunset, ocean colour schemes from geocos.
 +   * See https://gecos.biotite-python.org/
 +   * https://raw.githubusercontent.com/biotite-dev/biotite/master/src/biotite/sequence/graphics/color_schemes/flower.json
 +   * and https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-020-3526-6
 +   * (https://doi.org/10.1186/s12859-020-3526-6)
 +   */
 +  public static final Color[] flower = { new Color(177, 138, 81), // A
 +      new Color(131, 191, 241), // R
 +      new Color(11, 206, 198), // N
 +      new Color(1, 165, 120), // D
 +      new Color(255, 87, 1), // C
 +      new Color(114, 149, 174), // Q
 +      new Color(45, 160, 161), // E
 +      new Color(177, 194, 60), // G
 +      new Color(1, 148, 249), // H
 +      new Color(242, 118, 99), // I
 +      new Color(223, 110, 117), // L
 +      new Color(127, 195, 215), // K
 +      new Color(254, 157, 175), // M
 +      new Color(250, 85, 157), // F
 +      new Color(79, 163, 42), // P
 +      new Color(180, 189, 155), // S
 +      new Color(210, 181, 118), // T
 +      new Color(255, 45, 237), // W
 +      new Color(201, 110, 207), // Y
 +      new Color(253, 153, 123), // V
 +      Color.white, // B
 +      Color.white, // Z
 +      Color.white, // X
 +      Color.white, // -
 +      Color.white, // *
 +      Color.white // .
 +  };
 +
 +  public static final Color[] blossom = { new Color(139, 196, 180), // A
 +      new Color(252, 149, 2), // R
 +      new Color(181, 194, 6), // N
 +      new Color(95, 165, 5), // D
 +      new Color(8, 147, 254), // C
 +      new Color(191, 133, 39), // Q
 +      new Color(219, 181, 1), // E
 +      new Color(0, 211, 130), // G
 +      new Color(255, 87, 1), // H
 +      new Color(154, 186, 243), // I
 +      new Color(205, 165, 220), // L
 +      new Color(254, 165, 39), // K
 +      new Color(245, 161, 184), // M
 +      new Color(247, 79, 168), // F
 +      new Color(16, 214, 49), // P
 +      new Color(126, 157, 89), // S
 +      new Color(0, 162, 156), // T
 +      new Color(254, 8, 251), // W
 +      new Color(255, 78, 122), // Y
 +      new Color(135, 192, 228), // V
 +      Color.white, // B
 +      Color.white, // Z
 +      Color.white, // X
 +      Color.white, // -
 +      Color.white, // *
 +      Color.white // .
 +  };
 +
 +  public static final Color[] sunset = { new Color(254, 160, 253), // A
 +      new Color(133, 116, 106), // R
 +      new Color(171, 200, 245), // N
 +      new Color(46, 123, 190), // D
 +      new Color(252, 12, 254), // C
 +      new Color(140, 110, 129), // Q
 +      new Color(103, 120, 146), // E
 +      new Color(39, 153, 255), // G
 +      new Color(219, 197, 142), // H
 +      new Color(250, 33, 161), // I
 +      new Color(224, 30, 130), // L
 +      new Color(222, 190, 204), // K
 +      new Color(209, 62, 123), // M
 +      new Color(255, 56, 93), // F
 +      new Color(87, 102, 249), // P
 +      new Color(231, 180, 253), // S
 +      new Color(166, 88, 183), // T
 +      new Color(255, 55, 1), // W
 +      new Color(203, 83, 57), // Y
 +      new Color(254, 81, 184), // V
 +      Color.white, // B
 +      Color.white, // Z
 +      Color.white, // X
 +      Color.white, // -
 +      Color.white, // *
 +      Color.white // .
 +  };
 +
 +  public static final Color[] ocean = { new Color(198, 202, 155), // A
 +      new Color(12, 160, 168), // R
 +      new Color(10, 223, 195), // N
 +      new Color(76, 223, 161), // D
 +      new Color(198, 129, 54), // C
 +      new Color(139, 211, 209), // Q
 +      new Color(96, 218, 201), // E
 +      new Color(51, 165, 81), // G
 +      new Color(0, 207, 254), // H
 +      new Color(242, 186, 170), // I
 +      new Color(187, 138, 131), // L
 +      new Color(64, 160, 144), // K
 +      new Color(164, 139, 136), // M
 +      new Color(171, 136, 174), // F
 +      new Color(175, 211, 101), // P
 +      new Color(109, 155, 116), // S
 +      new Color(141, 149, 102), // T
 +      new Color(117, 138, 238), // W
 +      new Color(186, 195, 252), // Y
 +      new Color(233, 190, 164), // V
 +      Color.white, // B
 +      Color.white, // Z
 +      Color.white, // X
 +      Color.white, // -
 +      Color.white, // *
 +      Color.white // .
 +  };
 +
    // Dunno where I got these numbers from
    public static final double[] hyd2 = { 0.62, // A
        0.29, // R
          {
            continue;
          }
-         nuc = nuc.toUpperCase();
+         nuc = nuc.toUpperCase(Locale.ROOT);
          if (!result.contains(nuc))
          {
            result.add(nuc);
          {
            continue;
          }
-         res = res.toUpperCase();
+         res = res.toUpperCase(Locale.ROOT);
          if (!result.contains(res))
          {
            result.add(res);
        return '0';
      }
      Integer index = ResidueProperties.aa3Hash
-             .get(threeLetterCode.toUpperCase());
+             .get(threeLetterCode.toUpperCase(Locale.ROOT));
      return index == null ? '0' : aa[index].charAt(0);
    }
  }