On 11/17/2010 08:42 PM, Andreas Prlic wrote:
> Ok here my suggestion for a palette that resolves to various
> distinguishable shades of blue and yellow for color blind people and
> still looks kind of ok-ish for all others (thanks to
> http://colorschemedesigner.com/ for making this selection easy )
> 
> Primary Color:
> 104BA9        284A7E  052D6E  447BD4  6A93D4
> Secondary Color A:
> AA00A2        7F207B  6E0069  D435CD  D460CF
> Secondary Color B:
> C9F600        9FB82E  83A000  D8FA3F  E1FA71
> Complementary Color:
> FFA200        BF8B30  A66A00  FFBA40  FFCC73
> 
> For having good contrasts for "color chain" it would be good to rotate
> column by column from left to right through this grid...
> 
I wrote a Jmol function "color_by_chain(atom-object type)" (see below)
that implements Andreas color scheme for chains. Just put the script
into a file and load it. (It will need Jmol version 12.x. I tested it
with version 12.0.22.)

Afterwards you can color the current selection by calling this command.
If you provide an empty "atom-object type" all object types like
cartoon, trace are colored alike (more precise: set to none, meaning
they inherit it from "atom"). If you name an object type only this type
is colored.

Examples:
  color_by_chain("cartoon");
  color_by_chain("");

The colors are not tied to a specific chain id like in the standard
chain color scheme. Instead they are assigned alphabetically to the
present chain ids (e.g. A,B,C in structure 1 will be colored like G,I,Y
in structure 2, if there are no other chains).

Unfortunately Jmol 12.0.22 doesn't like it if you try to provide the
object type by a variable (type="cartoon"; color @type red) and throws
an error. So I had to add each type individually and also couldn't use a
loop for the "empty object type" case.

Regards,
Rolf

==========================================================
function color_by_chain(type) {
  var chain_list  = script("show chain").trim().lines;
  var chain_count = chain_list.length;

  define current_selection selected;

  var color_list =
array("x104BA9","xAA00A2","xC9F600","xFFA200","x284A7E","x7F207B","x9FB82E","xBF8B30","x052D6E","x6E0069","x83A000","xA66A00","x447BD4","xD435CD","xD8FA3F","xFFBA40","x6A93D4","xD460CF","xE1FA71","xFFCC73");
  var color_count = color_list.length;

  for (var chain_number=1; chain_number<=chain_count; chain_number++) {
    var color_index = chain_number % color_count;
    var chain_color = color_list[color_index];

    var selection_expression = "current_selection and :" +
chain_list[chain_number];
    select @selection_expression;

    if (type == "") {
      color atom [...@chain_color];

      color backbone none;
      color cartoon none;
      color dots none;
      color halo none;
      color label none;
      color meshribbon none;
      color polyhedra none;
      color rocket none;
      color star none;
      color strand none;
      color strut none;
      color trace none;
    }

    if (type == "atom") {
      color atom [...@chain_color];
    }
    if (type == "backbone") {
      color backbone [...@chain_color];
    }
    if (type == "cartoon") {
      color cartoon [...@chain_color];
    }
    if (type == "dots") {
      color dots [...@chain_color];
    }
    if (type == "halo") {
      color halo [...@chain_color];
    }
    if (type == "label") {
      color label [...@chain_color];
    }
    if (type == "meshribbon") {
      color meshribbon [...@chain_color];
    }
    if (type == "polyhedra") {
      color polyhedra [...@chain_color];
    }
    if (type == "rocket") {
      color rocket [...@chain_color];
    }
    if (type == "star") {
      color star [...@chain_color];
    }
    if (type == "strand") {
      color strand [...@chain_color];
    }
    if (type == "strut") {
      color strut [...@chain_color];
    }
    if (type == "trace") {
      color trace [...@chain_color];
    }
  }

  select current_selection;
}

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to