X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraCommands.java;fp=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraCommands.java;h=dc53c2bf4c917070eeb18506cf7c86c2483d878e;hb=e34c8452beda2cf80c2a3224f236d3096db69ae9;hp=ec94e7da18598d676ad88723854281ccebaa7d4f;hpb=e1a435a213f105bac3ea0258c6fe26f11df2a392;p=jalview.git diff --git a/src/jalview/ext/rbvi/chimera/ChimeraCommands.java b/src/jalview/ext/rbvi/chimera/ChimeraCommands.java index ec94e7d..dc53c2b 100644 --- a/src/jalview/ext/rbvi/chimera/ChimeraCommands.java +++ b/src/jalview/ext/rbvi/chimera/ChimeraCommands.java @@ -32,6 +32,7 @@ import jalview.renderer.seqfeatures.FeatureColourFinder; import jalview.structure.StructureMapping; import jalview.structure.StructureMappingcommandSet; import jalview.structure.StructureSelectionManager; +import jalview.structures.models.AAStructureBindingModel; import jalview.util.ColorUtils; import jalview.util.Comparison; @@ -68,11 +69,24 @@ public class ChimeraCommands */ public static StructureMappingcommandSet[] getColourBySequenceCommand( StructureSelectionManager ssm, String[] files, + AAStructureBindingModel binding, AlignmentViewPanel viewPanel) + { + SequenceRenderer sr = binding.getSequenceRenderer(viewPanel); + SequenceI[][] sequence = binding.getSequence(); + boolean hideHiddenRegions = binding.isShowAlignmentOnly() + && binding.isHideHiddenRegions(); + + return getColourBySequenceCommand(ssm, files, sequence, sr, + hideHiddenRegions, viewPanel); + } + + static StructureMappingcommandSet[] getColourBySequenceCommand( + StructureSelectionManager ssm, String[] files, SequenceI[][] sequence, SequenceRenderer sr, - AlignmentViewPanel viewPanel) + boolean hideHiddenRegions, AlignmentViewPanel viewPanel) { Map colourMap = buildColoursMap(ssm, files, - sequence, sr, viewPanel); + sequence, sr, hideHiddenRegions, viewPanel); List colourCommands = buildColourCommands(colourMap); @@ -175,20 +189,31 @@ public class ChimeraCommands } /** - *
-   * Build a data structure which records contiguous subsequences for each colour. 
+   * Build a data structure which records contiguous subsequences for each colour.
    * From this we can easily generate the Chimera command for colour by sequence.
+   * 
+   * 
    * Color
    *     Model number
    *         Chain
    *             list of start/end ranges
-   * Ordering is by order of addition (for colours and positions), natural ordering (for models and chains)
    * 
+ * + * Ordering is by order of addition (for colours and positions), natural + * ordering (for models and chains) + * + * @param ssm + * @param files + * @param sequence + * @param sr + * @param hideHiddenRegions + * @param viewPanel + * @return */ protected static Map buildColoursMap( StructureSelectionManager ssm, String[] files, SequenceI[][] sequence, SequenceRenderer sr, - AlignmentViewPanel viewPanel) + boolean hideHiddenRegions, AlignmentViewPanel viewPanel) { FeatureRenderer fr = viewPanel.getFeatureRenderer(); FeatureColourFinder finder = new FeatureColourFinder(fr); @@ -235,12 +260,18 @@ public class ChimeraCommands Color colour = sr.getResidueColour(seq, r, finder); /* - * hidden regions are shown gray - * todo: iterate over visible columns only + * hidden regions are shown gray or, optionally, ignored */ if (!cs.isVisible(r)) { - continue; // colour = Color.GRAY; + if (hideHiddenRegions) + { + continue; + } + else + { + colour = Color.GRAY; + } } final String chain = mapping[m].getChain();