X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FJmolParser.java;h=0ca2ba81184c44367da7dfc10344d5dbd7613359;hb=67f21ba986462faaa66c606709463fff6c29c116;hp=25b52b4bc126625c84d3fbc04818bc7939c03fa0;hpb=0c08a3e1a37eca3a7c011a56f0c353258b0e8020;p=jalview.git diff --git a/src/jalview/ext/jmol/JmolParser.java b/src/jalview/ext/jmol/JmolParser.java index 25b52b4..0ca2ba8 100644 --- a/src/jalview/ext/jmol/JmolParser.java +++ b/src/jalview/ext/jmol/JmolParser.java @@ -47,7 +47,6 @@ import jalview.datamodel.SequenceI; import jalview.datamodel.annotations.AlphaFoldAnnotationRowBuilder; import jalview.datamodel.annotations.AnnotationRowBuilder; import jalview.io.DataSourceType; -import jalview.io.FileFormatException; import jalview.io.FileParse; import jalview.io.StructureFile; import jalview.schemes.ResidueProperties; @@ -89,6 +88,10 @@ public class JmolParser extends StructureFile implements JmolStatusListener super(inFile, sourceType, tempfacType); } + public JmolParser(FileParse fp, boolean doXferSettings) throws IOException + { + super(fp, doXferSettings); + } public JmolParser(FileParse fp) throws IOException { super(fp); @@ -109,6 +112,12 @@ public class JmolParser extends StructureFile implements JmolStatusListener @Override public void parse() throws IOException { + parse(true); + } + + @Override + public void parse(boolean doXferSettings) throws IOException + { setChains(new Vector()); Viewer jmolModel = getJmolData(); jmolModel.openReader(getDataName(), getDataName(), getReader()); @@ -133,7 +142,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener ? PDBEntry.Type.MMCIF.toString() : "PDB"); - transformJmolModelToJalview(jmolModel.ms); + transformJmolModelToJalview(jmolModel.ms, doXferSettings); } } @@ -203,7 +212,8 @@ public class JmolParser extends StructureFile implements JmolStatusListener return false; } - public void transformJmolModelToJalview(ModelSet ms) throws IOException + public void transformJmolModelToJalview(ModelSet ms, + boolean localDoXferSettings) throws IOException { try { @@ -261,7 +271,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener } lastID = tmpatom.resNumIns.trim(); } - if (isParseImmediately()) + if (isParseImmediately() && localDoXferSettings) { // configure parsing settings from the static singleton xferSettings(); @@ -293,7 +303,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener { try { - Console.info("retrieving pAE for " + pdbId); + Console.info("Retrieving PAE for " + pdbId); File paeFile = EBIAlfaFold.fetchAlphaFoldPAE(pdbId, null); this.setPAEMatrix(paeFile.getAbsolutePath()); } catch (Throwable t) @@ -308,7 +318,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener { Alignment al = new Alignment(prot.toArray(new SequenceI[0])); EBIAlfaFold.addAlphaFoldPAE(al, new File(this.getPAEMatrix()), 0, - null, false, false); + null, false, false, null); if (al.getAlignmentAnnotation() != null) { @@ -326,10 +336,9 @@ public class JmolParser extends StructureFile implements JmolStatusListener + getNewlineString(); } } - } catch (OutOfMemoryError er) { - System.out.println( + jalview.bin.Console.outPrintln( "OUT OF MEMORY LOADING TRANSFORMING JMOL MODEL TO JALVIEW MODEL"); throw new IOException(MessageManager .getString("exception.outofmemory_loading_mmcif_file")); @@ -382,7 +391,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener org.jmol.modelset.Atom prevAtom, HashMap chainTerMap) { - // System.out.println("Atom: " + curAtom.getAtomNumber() + // jalview.bin.Console.outPrintln("Atom: " + curAtom.getAtomNumber() // + " Last atom index " + curAtom.group.lastAtomIndex); if (chainTerMap == null || prevAtom == null) { @@ -479,7 +488,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')