From 27ee33852181a0dc18bee27286f77f3ac99fd254 Mon Sep 17 00:00:00 2001 From: tcofoegbu Date: Fri, 1 Apr 2016 17:03:12 +0100 Subject: [PATCH] JAL-2048 Update to structureviz2 package from cytoscape --- src/ext/edu/ucsf/rbvi/strucviz2/ChimUtils.java | 74 +++++++++++++++++++++--- 1 file changed, 67 insertions(+), 7 deletions(-) diff --git a/src/ext/edu/ucsf/rbvi/strucviz2/ChimUtils.java b/src/ext/edu/ucsf/rbvi/strucviz2/ChimUtils.java index 03f51f7..95221d2 100644 --- a/src/ext/edu/ucsf/rbvi/strucviz2/ChimUtils.java +++ b/src/ext/edu/ucsf/rbvi/strucviz2/ChimUtils.java @@ -60,10 +60,25 @@ public abstract class ChimUtils */ // invoked by openModel in ChimeraManager // line: #1, chain A: hiv-1 protease + // line: Model 0 (filename) public static int[] parseOpenedModelNumber(String inputLine) { int hash = inputLine.indexOf('#'); - int space = inputLine.indexOf(',', hash); + int space = -1; + if (hash == (-1)) + { + hash = inputLine.indexOf("Model"); + if (hash >= 0) + { + hash = hash + 5; + } + space = inputLine.indexOf(' ', hash + 1); + } + else + { + space = inputLine.indexOf(',', hash); + } + int decimal = inputLine.substring(hash + 1, space).indexOf('.'); // model number is between hash+1 and space int modelNumber = -1; @@ -93,7 +108,9 @@ public abstract class ChimUtils { int start = inputLine.indexOf("name "); if (start < 0) + { return null; + } // Might get a quoted string (don't understand why, but there you have it) if (inputLine.startsWith("\"", start + 5)) { @@ -104,7 +121,9 @@ public abstract class ChimUtils return inputLine.substring(start, end); } else + { return inputLine.substring(start); + } } else { @@ -176,12 +195,18 @@ public abstract class ChimUtils { String[] subSplit = split[0].substring(1).split("\\."); if (subSplit.length > 0) + { model = Integer.parseInt(subSplit[0]); + } else + { model = Integer.parseInt(split[0].substring(1)); + } if (subSplit.length > 1) + { submodel = Integer.parseInt(subSplit[1]); + } } catch (Exception e) { // ignore @@ -258,7 +283,9 @@ public abstract class ChimUtils { if (atom.equals("C") || atom.equals("CA") || atom.equals("N") || atom.equals("O") || atom.equals("H")) + { return true; + } return false; } @@ -449,7 +476,9 @@ public abstract class ChimUtils } else { + // length > 1, so we probably have a file name with "." in it logger.info("Could not parse model identifier: " + modelID); + resKeyParts[0] = modelID; } } } @@ -547,8 +576,7 @@ public abstract class ChimUtils // } // System.out.println("model = " + model + " chain = " + chain + - // " residue = " + - // residue); + // " residue = " + residue); if (model != null) { List models = chimeraManager.getChimeraModels(model, @@ -594,13 +622,19 @@ public abstract class ChimUtils } if (chimeraResidue != null) + { return chimeraResidue; + } if (chimeraChain != null) + { return chimeraChain; + } if (chimeraModel != null) + { return chimeraModel; + } } catch (Exception ex) { @@ -709,13 +743,19 @@ public abstract class ChimUtils } if (chimeraResidue != null) + { return chimeraResidue; + } if (chimeraChain != null) + { return chimeraChain; + } if (chimeraModel != null) + { return chimeraModel; + } } catch (Exception ex) { @@ -736,7 +776,9 @@ public abstract class ChimUtils public static String findStructures(String residueList) { if (residueList == null) + { return null; + } String[] residues = residueList.split(","); Map structureNameMap = new HashMap(); for (int i = 0; i < residues.length; i++) @@ -748,15 +790,21 @@ public abstract class ChimUtils } } if (structureNameMap.isEmpty()) + { return null; + } String structure = null; for (String struct : structureNameMap.keySet()) { if (structure == null) + { structure = new String(); + } else + { structure = structure.concat(","); + } structure = structure.concat(struct); } return structure; @@ -798,7 +846,9 @@ public abstract class ChimUtils { resRange = resRange.concat("-"); if (chain != null && range[res].indexOf('.') == -1) + { range[res] = range[res].concat("." + chain); + } } if (res == 0 && range.length >= 2 && range[res].indexOf('.') > 0) @@ -887,8 +937,10 @@ public abstract class ChimUtils public static String toFullName(String aaType) { if (!aaNames.containsKey(aaType)) + { return aaType; - String[] ids = ((String) aaNames.get(aaType)).split(" "); + } + String[] ids = aaNames.get(aaType).split(" "); return ids[2].replace('_', ' '); } @@ -902,8 +954,10 @@ public abstract class ChimUtils public static String toSingleLetter(String aaType) { if (!aaNames.containsKey(aaType)) + { return aaType; - String[] ids = ((String) aaNames.get(aaType)).split(" "); + } + String[] ids = aaNames.get(aaType).split(" "); return ids[0]; } @@ -917,8 +971,10 @@ public abstract class ChimUtils public static String toThreeLetter(String aaType) { if (!aaNames.containsKey(aaType)) + { return aaType; - String[] ids = ((String) aaNames.get(aaType)).split(" "); + } + String[] ids = aaNames.get(aaType).split(" "); return ids[1]; } @@ -932,10 +988,14 @@ public abstract class ChimUtils public static String toSMILES(String aaType) { if (!aaNames.containsKey(aaType)) + { return null; - String[] ids = ((String) aaNames.get(aaType)).split(" "); + } + String[] ids = aaNames.get(aaType).split(" "); if (ids.length < 4) + { return null; + } return ids[3]; } -- 1.7.10.2