X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FPDBfile.java;h=a99f172e0c5e6af954b117c44e71584ec9af09a8;hb=961eec1363ddc5f0f5a08b9063a7a2a9b1c9d2bd;hp=7e37277b2926bd797f0ebd343f5fc3d9df4c2fd8;hpb=4cdc5b801cd2a0f2786ab753900e4ce774099ad8;p=jalview.git diff --git a/src/MCview/PDBfile.java b/src/MCview/PDBfile.java index 7e37277..a99f172 100755 --- a/src/MCview/PDBfile.java +++ b/src/MCview/PDBfile.java @@ -272,11 +272,30 @@ public class PDBfile extends jalview.io.AlignFile markCalcIds(); } + private static String calcIdPrefix = "JalviewPDB:"; + + public static boolean isCalcIdHandled(String calcId) + { + return calcId != null + && (calcId.startsWith(calcIdPrefix) && calcId.indexOf( + calcIdPrefix, + calcIdPrefix.length() + 1) > -1); + } public static boolean isCalcIdForFile(String calcId, String pdbFile) { - return (calcId != null && calcId.startsWith("JalviewPDB:" + pdbFile - + ":JalviewPDB:")); + return (calcId != null && calcId.startsWith(calcIdPrefix + pdbFile + + ":" + calcIdPrefix)); + } + + public static String relocateCalcId(String calcId, + Hashtable alreadyLoadedPDB) throws Exception + { + int s = calcIdPrefix.length(), end = calcId.indexOf(calcIdPrefix, s); + String between = calcId.substring(s, end - 1); + return calcIdPrefix + alreadyLoadedPDB.get(between) + ":" + + calcId.substring(end); } + private void markCalcIds() { for (SequenceI sq : seqs) @@ -308,6 +327,17 @@ public class PDBfile extends jalview.io.AlignFile {}).invoke(jmf)); cl.getMethod("addAnnotations", new Class[] { Alignment.class }).invoke(jmf, al); + for (SequenceI sq : al.getSequences()) + { + if (sq.getDatasetSequence() != null) + { + sq.getDatasetSequence().getPDBId().clear(); + } + else + { + sq.getPDBId().clear(); + } + } AlignSeq.replaceMatchingSeqsWith(seqs, annotations, prot, al, AlignSeq.PEP, false); } } catch (ClassNotFoundException q) @@ -336,6 +366,17 @@ public class PDBfile extends jalview.io.AlignFile new Class[] { FileParse.class }).invoke(annotate3d, new Object[] { new FileParse(getDataName(), type) })); + for (SequenceI sq : al.getSequences()) + { + if (sq.getDatasetSequence() != null) + { + sq.getDatasetSequence().getPDBId().clear(); + } + else + { + sq.getPDBId().clear(); + } + } AlignSeq.replaceMatchingSeqsWith(seqs, annotations, rna, al, AlignSeq.DNA, false); } } catch (ClassNotFoundException x)