X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fext%2Fjmol%2FJmolParser.java;h=a276fb6ea5efadb551daac4798e054744e3078b9;hb=a0ac724dba7d556966b546d4a0093449c397be84;hp=2bc4869fe995caadfa5e74d431242a7b6ff644b1;hpb=9c05fc8a07869007db06cc7efc54f2ac41e4575c;p=jalview.git diff --git a/src/jalview/ext/jmol/JmolParser.java b/src/jalview/ext/jmol/JmolParser.java index 2bc4869..a276fb6 100644 --- a/src/jalview/ext/jmol/JmolParser.java +++ b/src/jalview/ext/jmol/JmolParser.java @@ -20,6 +20,7 @@ */ package jalview.ext.jmol; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -67,8 +68,6 @@ public class JmolParser extends StructureFile implements JmolStatusListener { Viewer viewer = null; - private boolean alphaFoldModel; - public JmolParser(boolean immediate, Object inFile, DataSourceType sourceType) throws IOException { @@ -231,8 +230,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener { setId(pdbId); setPDBIdAvailable(true); - alphaFoldModel = alphaFold.search(pdbId) && isMMCIF; - + setAlphafoldModel(alphaFold.search(pdbId) && isMMCIF); } List significantAtoms = convertSignificantAtoms(ms); for (Atom tmpatom : significantAtoms) @@ -250,9 +248,8 @@ public class JmolParser extends StructureFile implements JmolStatusListener else { AnnotationRowBuilder builder = null; - String tempFString = null; - if (isAlphafoldModel() || StructureImportSettings.TFType.PLDDT - .equals(getTemperatureFactorType())) + if (isAlphafoldModel() + || getTemperatureFactorType() == StructureImportSettings.TFType.PLDDT) { builder = new AlphaFoldAnnotationRowBuilder(); } @@ -290,28 +287,34 @@ public class JmolParser extends StructureFile implements JmolStatusListener createAnnotation(chainseq, chain, ms.at); } } - if (isAlphafoldModel()) + // if Alphafold, fetch the PAE matrix if doesn't already have one + if (isAlphafoldModel() && !hasPAEMatrix()) { - // TODO - work out how to handle different ways that pAE is provided - // try { Console.info("retrieving pAE for " + pdbId); - Alignment al = new Alignment(prot.toArray(new SequenceI[0])); - EBIAlfaFold.retrieve_AlphaFold_pAE(pdbId, al, null); - if (al.getAlignmentAnnotation() != null) - { - for (AlignmentAnnotation alann : al.getAlignmentAnnotation()) - { - annotations.add(alann); - } - } - ; + File paeFile = EBIAlfaFold.fetchAlphaFoldPAE(pdbId, null); + this.setPAEMatrix(paeFile.getAbsolutePath()); } catch (Throwable t) { Console.error("Couldn't get the pAE for " + pdbId, t); } } + // add a PAEMatrix if set (either by above or otherwise) + if (hasPAEMatrix()) + { + Alignment al = new Alignment(prot.toArray(new SequenceI[0])); + EBIAlfaFold.addAlphaFoldPAE(al, new File(this.getPAEMatrix()), 0, + null, false, false, null); + + if (al.getAlignmentAnnotation() != null) + { + for (AlignmentAnnotation alann : al.getAlignmentAnnotation()) + { + annotations.add(alann); + } + } + } } catch (OutOfMemoryError er) { System.out.println( @@ -321,16 +324,6 @@ public class JmolParser extends StructureFile implements JmolStatusListener } } - public void setAlphafoldModel(boolean afm) - { - alphaFoldModel = afm; - } - - private boolean isAlphafoldModel() - { - return alphaFoldModel; - } - private List convertSignificantAtoms(ModelSet ms) { List significantAtoms = new ArrayList();