X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FJmolParser.java;h=8bc5a986ebf291db9c8185324e7d24a1b347efa9;hb=a7a16a1cc2d9b2c840d50b02163cbc6327bd28bb;hp=18d8e05555d4101a2d9c101badf9c3f164609ea7;hpb=75aa2f504257f5564e3a88c3677905d7c392f24e;p=jalview.git diff --git a/src/jalview/ext/jmol/JmolParser.java b/src/jalview/ext/jmol/JmolParser.java index 18d8e05..8bc5a98 100644 --- a/src/jalview/ext/jmol/JmolParser.java +++ b/src/jalview/ext/jmol/JmolParser.java @@ -20,6 +20,8 @@ */ package jalview.ext.jmol; +import java.util.Locale; + import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Annotation; import jalview.datamodel.PDBEntry; @@ -115,9 +117,10 @@ public class JmolParser extends StructureFile implements JmolStatusListener // } // ; // instead, we distinguish .cif from non-.cif by filename - setStructureFileType(getDataName().toLowerCase().endsWith(".cif") - ? PDBEntry.Type.MMCIF.toString() - : "PDB"); + setStructureFileType( + getDataName().toLowerCase(Locale.ROOT).endsWith(".cif") + ? PDBEntry.Type.MMCIF.toString() + : "PDB"); transformJmolModelToJalview(jmolModel.ms); } @@ -138,7 +141,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener * params -o (output to sysout) -n (nodisplay) -x (exit when finished) * see http://wiki.jmol.org/index.php/Jmol_Application */ - + viewer = JalviewJmolBinding.getJmolData(this); // ensure the 'new' (DSSP) not 'old' (Ramachandran) SS method is used viewer.setBooleanProperty("defaultStructureDSSP", true); @@ -152,28 +155,32 @@ public class JmolParser extends StructureFile implements JmolStatusListener } return viewer; } - + public static Regex getNewAlphafoldValidator() { - Regex validator = new Regex("(AF-[A-Z]+[0-9]+[A-Z0-9]+-F1)"); + Regex validator = new Regex("(AF-[A-Z]+[0-9]+[A-Z0-9]+-F1)"); validator.setIgnoreCase(true); return validator; } - PDBEntry.Type jmolFiletype=null; + PDBEntry.Type jmolFiletype = null; + /** - * resolve a jmol filetype string and update the jmolFiletype field accordingly + * resolve a jmol filetype string and update the jmolFiletype field + * accordingly + * * @param jmolIdentifiedFileType * @return true if filetype was identified as MMCIF, PDB */ public boolean updateFileType(String jmolIdentifiedFileType) { - if (jmolIdentifiedFileType == null + if (jmolIdentifiedFileType == null || jmolIdentifiedFileType.trim().equals("")) { return false; } - if ("mmcif".equalsIgnoreCase(jmolIdentifiedFileType)) { + if ("mmcif".equalsIgnoreCase(jmolIdentifiedFileType)) + { jmolFiletype = PDBEntry.Type.MMCIF; return true; } @@ -181,10 +188,10 @@ public class JmolParser extends StructureFile implements JmolStatusListener { jmolFiletype = PDBEntry.Type.PDB; return true; - } + } return false; } - + public void transformJmolModelToJalview(ModelSet ms) throws IOException { try @@ -201,9 +208,9 @@ public class JmolParser extends StructureFile implements JmolStatusListener { setStructureFileType(jmolFiletype.toString()); } - + isMMCIF = PDBEntry.Type.MMCIF.equals(jmolFiletype); - + if (pdbId == null) { setId(safeName(getDataName())); @@ -213,7 +220,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener { setId(pdbId); setPDBIdAvailable(true); - alphaFoldModel = alphaFold.search(pdbId) && isMMCIF; + alphaFoldModel = alphaFold.search(pdbId) && isMMCIF; } List significantAtoms = convertSignificantAtoms(ms); @@ -228,15 +235,16 @@ public class JmolParser extends StructureFile implements JmolStatusListener if (tmpchain != null) { tmpchain.atoms.addElement(tmpatom); - } else + } + else { - String tempFString=null; + String tempFString = null; if (isAlphafoldModel()) { tempFString = "Alphafold Reliability"; } - tmpchain = new PDBChain(getId(), tmpatom.chain,tempFString); + tmpchain = new PDBChain(getId(), tmpatom.chain, tempFString); getChains().add(tmpchain); tmpchain.atoms.addElement(tmpatom); } @@ -426,7 +434,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener { int length = sq.getLength(); boolean ssFound = false; - Annotation asecstr[] = new Annotation[length + firstResNum - 1]; + Annotation asecstr[] = new Annotation[length + (firstResNum-sq.getStart())]; for (int p = 0; p < length; p++) { if (secstr[p] >= 'A' && secstr[p] <= 'z')