X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FJmolParser.java;h=661ed33b780e6fe089382c80c949b5f96de1062f;hb=0d3cbb0cb96f079d5dd499301ba8733297a22c91;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..661ed33 100644 --- a/src/jalview/ext/jmol/JmolParser.java +++ b/src/jalview/ext/jmol/JmolParser.java @@ -20,21 +20,11 @@ */ package jalview.ext.jmol; -import jalview.datamodel.AlignmentAnnotation; -import jalview.datamodel.Annotation; -import jalview.datamodel.PDBEntry; -import jalview.datamodel.SequenceI; -import jalview.io.DataSourceType; -import jalview.io.FileParse; -import jalview.io.StructureFile; -import jalview.schemes.ResidueProperties; -import jalview.util.Format; -import jalview.util.MessageManager; - import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Vector; @@ -47,6 +37,18 @@ import org.jmol.viewer.Viewer; import com.stevesoft.pat.Regex; +import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.Annotation; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceI; +import jalview.datamodel.annotations.AlphaFoldAnnotationRowBuilder; +import jalview.datamodel.annotations.AnnotationRowBuilder; +import jalview.io.DataSourceType; +import jalview.io.FileParse; +import jalview.io.StructureFile; +import jalview.schemes.ResidueProperties; +import jalview.util.Format; +import jalview.util.MessageManager; import mc_view.Atom; import mc_view.PDBChain; import mc_view.Residue; @@ -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,17 @@ public class JmolParser extends StructureFile implements JmolStatusListener if (tmpchain != null) { tmpchain.atoms.addElement(tmpatom); - } else + } + else { - String tempFString=null; + AnnotationRowBuilder builder = null; + String tempFString = null; if (isAlphafoldModel()) { - tempFString = "Alphafold Reliability"; + builder = new AlphaFoldAnnotationRowBuilder(); } - tmpchain = new PDBChain(getId(), tmpatom.chain,tempFString); + tmpchain = new PDBChain(getId(), tmpatom.chain, builder); getChains().add(tmpchain); tmpchain.atoms.addElement(tmpatom); } @@ -433,8 +442,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener { try { - asecstr[p] = new Annotation(String.valueOf(secstr[p]), null, - secstrcode[p], Float.NaN); + asecstr[p] = new Annotation(null, null, secstrcode[p], Float.NaN); ssFound = true; } catch (Exception e) {