X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FMCview%2FPDBfile.java;h=58611e2de400c63266543719a10ee7b571590ca3;hb=7a16dc455ffdc4956013aaa4707cc79886b6969a;hp=58991f39f3980af17a814a904d1d27ecd918843b;hpb=06e3a52df5af8243cdb67c023c8ddd834711ad36;p=jalview.git diff --git a/src/MCview/PDBfile.java b/src/MCview/PDBfile.java index 58991f3..58611e2 100755 --- a/src/MCview/PDBfile.java +++ b/src/MCview/PDBfile.java @@ -24,6 +24,8 @@ import jalview.analysis.AlignSeq; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; +import jalview.datamodel.DBRefEntry; +import jalview.datamodel.DBRefSource; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; import jalview.io.FileParse; @@ -63,8 +65,8 @@ public class PDBfile extends jalview.io.AlignFile */ private boolean externalSecondaryStructure = false; - public PDBfile(boolean addAlignmentAnnotations, boolean predictSecondaryStructure, - boolean externalSecStr) + public PDBfile(boolean addAlignmentAnnotations, + boolean predictSecondaryStructure, boolean externalSecStr) { super(); this.visibleChainAnnotation = addAlignmentAnnotations; @@ -72,9 +74,9 @@ public class PDBfile extends jalview.io.AlignFile this.externalSecondaryStructure = externalSecStr; } - public PDBfile(boolean addAlignmentAnnotations, boolean predictSecondaryStructure, - boolean externalSecStr, String file, String protocol) - throws IOException + public PDBfile(boolean addAlignmentAnnotations, + boolean predictSecondaryStructure, boolean externalSecStr, + String file, String protocol) throws IOException { super(false, file, protocol); this.visibleChainAnnotation = addAlignmentAnnotations; @@ -83,8 +85,9 @@ public class PDBfile extends jalview.io.AlignFile doParse(); } - public PDBfile(boolean addAlignmentAnnotations, boolean predictSecondaryStructure, - boolean externalSecStr, FileParse source) throws IOException + public PDBfile(boolean addAlignmentAnnotations, + boolean predictSecondaryStructure, boolean externalSecStr, + FileParse source) throws IOException { super(false, source); this.visibleChainAnnotation = addAlignmentAnnotations; @@ -93,11 +96,13 @@ public class PDBfile extends jalview.io.AlignFile doParse(); } + @Override public String print() { return null; } + @Override public void parse() throws IOException { // TODO set the filename sensibly - try using data source name. @@ -252,8 +257,7 @@ public class PDBfile extends jalview.io.AlignFile processPdbFileWithAnnotate3d(rnaSequences); } catch (Exception x) { - System.err - .println("Exceptions when dealing with RNA in pdb file"); + System.err.println("Exceptions when dealing with RNA in pdb file"); x.printStackTrace(); } @@ -285,8 +289,8 @@ public class PDBfile extends jalview.io.AlignFile */ protected SequenceI postProcessChain(PDBChain chain) { - SequenceI dataset = chain.sequence; - dataset.setName(id + "|" + dataset.getName()); + SequenceI pdbSequence = chain.sequence; + pdbSequence.setName(id + "|" + pdbSequence.getName()); PDBEntry entry = new PDBEntry(); entry.setId(id); entry.setType(PDBEntry.Type.PDB); @@ -305,9 +309,16 @@ public class PDBfile extends jalview.io.AlignFile // TODO: decide if we should dump the datasource to disk entry.setFile(getDataName()); } - dataset.addPDBId(entry); + pdbSequence.addPDBId(entry); + + DBRefEntry sourceDBRef = new DBRefEntry(); + sourceDBRef.setAccessionId(id); + sourceDBRef.setSource(DBRefSource.PDB); + sourceDBRef.setStartRes(pdbSequence.getStart()); + sourceDBRef.setEndRes(pdbSequence.getEnd()); + pdbSequence.setSourceDBRef(sourceDBRef); // PDBChain objects maintain reference to dataset - SequenceI chainseq = dataset.deriveSequence(); + SequenceI chainseq = pdbSequence.deriveSequence(); seqs.addElement(chainseq); AlignmentAnnotation[] chainannot = chainseq.getAnnotation(); @@ -339,7 +350,8 @@ public class PDBfile extends jalview.io.AlignFile public static String relocateCalcId(String calcId, Hashtable alreadyLoadedPDB) throws Exception { - int s = CALC_ID_PREFIX.length(), end = calcId.indexOf(CALC_ID_PREFIX, s); + int s = CALC_ID_PREFIX.length(), end = calcId + .indexOf(CALC_ID_PREFIX, s); String between = calcId.substring(s, end - 1); return CALC_ID_PREFIX + alreadyLoadedPDB.get(between) + ":" + calcId.substring(end); @@ -374,16 +386,15 @@ public class PDBfile extends jalview.io.AlignFile Class cl = Class.forName("jalview.ext.jmol.PDBFileWithJmol"); if (cl != null) { - final Constructor constructor = cl.getConstructor(new Class[] - { FileParse.class }); - final Object[] args = new Object[] - { new FileParse(getDataName(), type) }; + final Constructor constructor = cl + .getConstructor(new Class[] { FileParse.class }); + final Object[] args = new Object[] { new FileParse(getDataName(), + type) }; Object jmf = constructor.newInstance(args); AlignmentI al = new Alignment((SequenceI[]) cl.getMethod( - "getSeqsAsArray", new Class[] - {}).invoke(jmf)); - cl.getMethod("addAnnotations", new Class[] - { AlignmentI.class }).invoke(jmf, al); + "getSeqsAsArray", new Class[] {}).invoke(jmf)); + cl.getMethod("addAnnotations", new Class[] { AlignmentI.class }) + .invoke(jmf, al); for (SequenceI sq : al.getSequences()) { if (sq.getDatasetSequence() != null) @@ -402,8 +413,8 @@ public class PDBfile extends jalview.io.AlignFile } } - private void replaceAndUpdateChains(List prot, - AlignmentI al, String pep, boolean b) + private void replaceAndUpdateChains(List prot, AlignmentI al, + String pep, boolean b) { List> replaced = AlignSeq .replaceMatchingSeqsWith(seqs, annotations, prot, al, pep, @@ -445,13 +456,11 @@ public class PDBfile extends jalview.io.AlignFile { // TODO: use the PDB ID of the structure if one is available, to save // bandwidth and avoid uploading the whole structure to the service - Object annotate3d = cl.getConstructor(new Class[] - {}).newInstance(new Object[] - {}); + Object annotate3d = cl.getConstructor(new Class[] {}).newInstance( + new Object[] {}); AlignmentI al = ((AlignmentI) cl.getMethod("getRNAMLFor", - new Class[] - { FileParse.class }).invoke(annotate3d, new Object[] - { new FileParse(getDataName(), type) })); + new Class[] { FileParse.class }).invoke(annotate3d, + new Object[] { new FileParse(getDataName(), type) })); for (SequenceI sq : al.getSequences()) { if (sq.getDatasetSequence() != null)