From 42f7bb953f9562f9ff80f0d3c833a0b364f399a2 Mon Sep 17 00:00:00 2001 From: tcofoegbu Date: Fri, 25 Mar 2016 16:12:42 +0000 Subject: [PATCH] JAL-2035 improvement to bind Jalview to Chimera model when opening an mmCIF file --- .../edu/ucsf/rbvi/strucviz2/ChimeraManager.java | 81 ++++---------------- 1 file changed, 13 insertions(+), 68 deletions(-) diff --git a/src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java b/src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java index 2de2829..2e5dbeb 100644 --- a/src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java +++ b/src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java @@ -197,76 +197,21 @@ public class ChimeraManager logger.warn("Could not open " + modelPath); return null; } - List models = new ArrayList(); - int[] modelNumbers = null; - if (type == ModelType.PDB_MODEL) - { - for (String line : response) - { - if (line.startsWith("#")) - { - modelNumbers = ChimUtils.parseOpenedModelNumber(line); - if (modelNumbers != null) - { - int modelNumber = ChimUtils.makeModelKey(modelNumbers[0], - modelNumbers[1]); - if (currentModelsMap.containsKey(modelNumber)) - { - continue; - } - ChimeraModel newModel = new ChimeraModel(modelName, type, - modelNumbers[0], modelNumbers[1]); - currentModelsMap.put(modelNumber, newModel); - models.add(newModel); - - // - // patch for Jalview - set model name in Chimera - // TODO: find a variant that works for sub-models - sendChimeraCommand("setattr M name " + modelName + " #" - + modelNumbers[0], false); - // end patch for Jalview - - modelNumbers = null; - } - } - } - } - else - { - // TODO: [Optional] Open smiles from file would fail. Do we need it? - // If parsing fails, iterate over all open models to get the right one - List openModels = getModelList(); - for (ChimeraModel openModel : openModels) - { - String openModelName = openModel.getModelName(); - if (openModelName.endsWith("...")) - { - openModelName = openModelName.substring(0, - openModelName.length() - 3); - } - if (modelPath.startsWith(openModelName)) - { - openModel.setModelName(modelPath); - int modelNumber = ChimUtils - .makeModelKey(openModel.getModelNumber(), - openModel.getSubModelNumber()); - if (!currentModelsMap.containsKey(modelNumber)) - { - currentModelsMap.put(modelNumber, openModel); - models.add(openModel); - } - } - } - } - + List chimeraModels = getModelList(); // assign color and residues to open models - for (ChimeraModel newModel : models) - { + for (ChimeraModel chimeraModel : chimeraModels) + { + // // patch for Jalview - set model name in Chimera + // // TODO: find a variant that works for sub-models + chimeraModel.setModelName(modelName); + sendChimeraCommand( + "setattr M name " + modelName + " #" + + chimeraModel.getModelNumber(), false); // get model color - Color modelColor = getModelColor(newModel); + Color modelColor = getModelColor(chimeraModel); if (modelColor != null) { - newModel.setModelColor(modelColor); + chimeraModel.setModelColor(modelColor); } // Get our properties (default color scheme, etc.) @@ -276,13 +221,13 @@ public class ChimeraManager // Create the information we need for the navigator if (type != ModelType.SMILES) { - addResidues(newModel); + addResidues(chimeraModel); } } sendChimeraCommand("focus", false); // startListening(); // see ChimeraListener - return models; + return chimeraModels; } /** -- 1.7.10.2