X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraXCommands.java;h=74e7f08f7d894ec7ce214aa3c1f76bd4424d5689;hb=0b6e9403e96ee9f0d41211b2f90130ff850c4e98;hp=889b1bcf7418b30985a2503be819bb81a3cb1d40;hpb=2fb924ec0d110eb3ca6c3fb06efa27acd34b2750;p=jalview.git diff --git a/src/jalview/ext/rbvi/chimera/ChimeraXCommands.java b/src/jalview/ext/rbvi/chimera/ChimeraXCommands.java index 889b1bc..74e7f08 100644 --- a/src/jalview/ext/rbvi/chimera/ChimeraXCommands.java +++ b/src/jalview/ext/rbvi/chimera/ChimeraXCommands.java @@ -21,22 +21,42 @@ package jalview.ext.rbvi.chimera; import java.awt.Color; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import jalview.structure.AtomSpecModel; import jalview.structure.StructureCommand; import jalview.structure.StructureCommandI; -import jalview.util.ColorUtils; /** * Routines for generating ChimeraX commands for Jalview/ChimeraX binding */ public class ChimeraXCommands extends ChimeraCommands { + // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/info.html#resattr + private static final StructureCommand LIST_RESIDUE_ATTRIBUTES = new StructureCommand( + "info resattr"); + + // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/exit.html + private static final StructureCommand CLOSE_CHIMERAX = new StructureCommand( + "exit"); + + // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/info.html#notify + private static final StructureCommand STOP_NOTIFY_SELECTION = new StructureCommand( + "info notify stop selection jalview"); + + private static final StructureCommand STOP_NOTIFY_MODELS = new StructureCommand( + "info notify stop models jalview"); + + // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/info.html#selection + private static final StructureCommand GET_SELECTION = new StructureCommand( + "info selection level residue"); + private static final StructureCommand SHOW_BACKBONE = new StructureCommand( "~display all;~ribbon;show @CA|P atoms"); + // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/view.html private static final StructureCommand FOCUS_VIEW = new StructureCommand( "view"); @@ -67,7 +87,6 @@ public class ChimeraXCommands extends ChimeraCommands @Override public StructureCommandI focusView() { - // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/view.html return FOCUS_VIEW; } @@ -83,8 +102,8 @@ public class ChimeraXCommands extends ChimeraCommands } /** - * Returns a viewer command to set the given residue attribute value on - * residues specified by the AtomSpecModel, for example + * Returns a viewer command to set the given residue attribute value on residues + * specified by the AtomSpecModel, for example * *
    * setattr #0/A:3-9,14-20,39-43 res jv_strand 'strand' create true
@@ -126,6 +145,10 @@ public class ChimeraXCommands extends ChimeraCommands
    * Returns the range(s) formatted as a ChimeraX atomspec, for example
    * 

* #1/A:2-20,30-40/B:10-20|#2/A:12-30 + *

+ * Note there is no need to explicitly exclude ALTLOC atoms when + * {@code alphaOnly == true}, as this is the default behaviour of ChimeraX (a + * change from Chimera) * * @return */ @@ -147,7 +170,6 @@ public class ChimeraXCommands extends ChimeraCommands // TODO @P if RNA - add nucleotide flag to AtomSpecModel? sb.append("@CA"); } - // todo: is there ChimeraX syntax to exclude altlocs? } return sb.toString(); } @@ -191,7 +213,7 @@ public class ChimeraXCommands extends ChimeraCommands @Override public List superposeStructures(AtomSpecModel ref, - AtomSpecModel spec) + AtomSpecModel spec, boolean isNucleotide) { /* * Form ChimeraX match command to match spec to ref @@ -227,7 +249,40 @@ public class ChimeraXCommands extends ChimeraCommands @Override public StructureCommandI closeViewer() { - // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/exit.html - return new StructureCommand("exit"); + return CLOSE_CHIMERAX; + } + + @Override + public List startNotifications(String uri) + { + List cmds = new ArrayList<>(); + cmds.add(new StructureCommand( + "info notify start models jalview prefix ModelChanged url " + + uri)); + cmds.add(new StructureCommand( + "info notify start selection jalview prefix SelectionChanged url " + + uri)); + return cmds; + } + + @Override + public List stopNotifications() + { + List cmds = new ArrayList<>(); + cmds.add(STOP_NOTIFY_MODELS); + cmds.add(STOP_NOTIFY_SELECTION); + return cmds; + } + + @Override + public StructureCommandI getSelectedResidues() + { + return GET_SELECTION; + } + + @Override + public StructureCommandI listResidueAttributes() + { + return LIST_RESIDUE_ATTRIBUTES; } }