X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FAnnotationFile.java;h=eca27a727c3b625c333ee8a1f0deafcbd24b54b2;hb=refs%2Fheads%2Ffeatures%2FJAL-2040_JAL-2137_phyre2;hp=35651bbc41201d78759903c87aef271e856b5aa9;hpb=19bc7d43bdc7c215c1d53b179aaf45aa9e7c859e;p=jalview.git diff --git a/src/jalview/io/AnnotationFile.java b/src/jalview/io/AnnotationFile.java index 35651bb..eca27a7 100755 --- a/src/jalview/io/AnnotationFile.java +++ b/src/jalview/io/AnnotationFile.java @@ -34,8 +34,8 @@ import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; -import jalview.schemes.ResidueProperties; import jalview.schemes.UserColourScheme; +import jalview.structure.StructureSelectionManager; import java.io.BufferedReader; import java.io.File; @@ -712,7 +712,10 @@ public class AnnotationFile { URL url = new URL(file); in = new BufferedReader(new InputStreamReader(url.openStream())); - baseUri = url.toURI().getPath(); + String bs = url.toExternalForm(); + baseUri = bs.substring(0, bs.indexOf(url.getHost()) + + url.getHost().length()); + baseUri += url.toURI().getPath(); if (baseUri.lastIndexOf("/") > -1) { baseUri = baseUri.substring(0, baseUri.lastIndexOf("/")) + "/"; @@ -1259,21 +1262,23 @@ public class AnnotationFile private boolean add_structmodel(AlignmentI al, SequenceI refSeq2, String tempId, String urlToModel, String urlToPairwise) { - String warningMessage=null; + String warningMessage = null, modelPath = null, modelProt = null, aliPath = null, aliProt = null; boolean added = false; try { // locate tempId. if it exists, will need to merge, otherwise: SequenceI templateSeq = al.findName(tempId); // 1. load urlToModel - // TODO: get base for current import operation and resolve against it - // transfer to local temp file ? - PDBEntry modelpe = new PDBEntry(tempId,null,Type.FILE,urlToModel); - PDBEntry templpe = new PDBEntry(tempId, null, Type.FILE, urlToModel); + modelPath = resolveAbsolute(urlToModel); + modelProt = AppletFormatAdapter.checkProtocol(modelPath); + // need to transfer to local temp file ? + PDBEntry modelpe = new PDBEntry(tempId, null, Type.FILE, modelPath); + PDBEntry templpe = new PDBEntry(tempId, null, Type.FILE, modelPath); refSeq2.addPDBId(modelpe); - + aliPath = resolveAbsolute(urlToPairwise); + aliProt = AppletFormatAdapter.checkProtocol(aliPath); // 2. load urlToPairwise - AlignmentI pwa = new AppletFormatAdapter().readFile(urlToPairwise, - AppletFormatAdapter.checkProtocol(urlToPairwise), "FASTA"); + AlignmentI pwa = new AppletFormatAdapter().readFile(aliPath, aliProt, + "FASTA"); SequenceI qPw = null, tPw = null; if (pwa != null) { @@ -1301,7 +1306,11 @@ public class AnnotationFile } else { - // assume 1:1 - so synthesise sequences to use to construct mapping ? + // assume 1:1 - so synthesise sequences to use to construct mapping + StructureFile pdbf = StructureSelectionManager + .getStructureSelectionManager().setMapping(false, + new SequenceI[] { refSeq2.getDatasetSequence() }, + null, modelPath, modelProt); refSeq2.getDatasetSequence().addPDBId(modelpe); if (templateSeq == null && tPw != null) { @@ -1331,6 +1340,16 @@ public class AnnotationFile } } + private String resolveAbsolute(String relURI) + { + if (relURI.indexOf(":/") > -1 || relURI.startsWith("/") + || "".equals(baseUri) || relURI.startsWith(baseUri)) + { + return relURI; + } + return baseUri + relURI; + } + private void parseHideCols(ColumnSelection colSel, String nextToken) { StringTokenizer inval = new StringTokenizer(nextToken, ","); @@ -1789,9 +1808,9 @@ public class AnnotationFile else if (key.equalsIgnoreCase("consThreshold")) { sg.cs.setConservationInc(Integer.parseInt(value)); - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(null), - sg.getStartRes(), sg.getEndRes() + 1); + Conservation c = new Conservation("Group", 3, + sg.getSequences(null), sg.getStartRes(), + sg.getEndRes() + 1); c.calculate(); c.verdict(false, 25); // TODO: refer to conservation percent threshold