X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FJmolParser.java;h=ab6bbcc1a54b9e6e36afb04a18fca2e12da04caf;hb=7190c3c673890ea5d282b36ac89a7b15be522206;hp=ae8ff7a68c5e5b65e4cb07d9e17ebdb5bd79c369;hpb=d46c8cbd1a5282ede9a0a94471f23ca002cf7df6;p=jalview.git diff --git a/src/jalview/ext/jmol/JmolParser.java b/src/jalview/ext/jmol/JmolParser.java index ae8ff7a..ab6bbcc 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,14 +155,42 @@ 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; + + /** + * 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 + || jmolIdentifiedFileType.trim().equals("")) + { + return false; + } + if ("mmcif".equalsIgnoreCase(jmolIdentifiedFileType)) + { + jmolFiletype = PDBEntry.Type.MMCIF; + return true; + } + if ("pdb".equalsIgnoreCase(jmolIdentifiedFileType)) + { + jmolFiletype = PDBEntry.Type.PDB; + return true; + } + return false; + } public void transformJmolModelToJalview(ModelSet ms) throws IOException { @@ -171,7 +202,14 @@ public class JmolParser extends StructureFile implements JmolStatusListener List prot = new ArrayList(); PDBChain tmpchain; String pdbId = (String) ms.getInfo(0, "title"); - String isMMCIF = (String) ms.getInfo(0, "fileType"); + boolean isMMCIF = false; + String jmolFileType_String = (String) ms.getInfo(0, "fileType"); + if (updateFileType(jmolFileType_String)) + { + setStructureFileType(jmolFiletype.toString()); + } + + isMMCIF = PDBEntry.Type.MMCIF.equals(jmolFiletype); if (pdbId == null) { @@ -182,7 +220,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener { setId(pdbId); setPDBIdAvailable(true); - alphaFoldModel = alphaFold.search(pdbId) && isMMCIF!=null && isMMCIF.equalsIgnoreCase("mmcif"); + alphaFoldModel = alphaFold.search(pdbId) && isMMCIF; } List significantAtoms = convertSignificantAtoms(ms); @@ -197,9 +235,16 @@ public class JmolParser extends StructureFile implements JmolStatusListener if (tmpchain != null) { tmpchain.atoms.addElement(tmpatom); - } else + } + else { - tmpchain = new PDBChain(getId(), tmpatom.chain,isAlphafoldModel()); + String tempFString = null; + if (isAlphafoldModel()) + { + tempFString = "Alphafold Reliability"; + } + + tmpchain = new PDBChain(getId(), tmpatom.chain, tempFString); getChains().add(tmpchain); tmpchain.atoms.addElement(tmpatom); }