From 2ee434fd0b628f004674119095ab3aa893ad6831 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Fri, 15 Mar 2013 17:01:49 +0000 Subject: [PATCH] JAL-1140 JAL-674 process with annotate3d and Jmol to get RNA and protein secondary structure (will need to refactor this when merging to development branch) --- src/MCview/PDBfile.java | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/MCview/PDBfile.java b/src/MCview/PDBfile.java index 95dec13..90328e0 100755 --- a/src/MCview/PDBfile.java +++ b/src/MCview/PDBfile.java @@ -24,6 +24,7 @@ import java.awt.*; import jalview.analysis.AlignSeq; import jalview.datamodel.*; +import jalview.ext.jmol.PDBFileWithJmol; import jalview.io.FileParse; import jalview.ws.jws1.Annotate3D; @@ -159,7 +160,9 @@ public class PDBfile extends jalview.io.AlignFile PDBEntry entry = new PDBEntry(); entry.setId(id); entry.setProperty(new Hashtable()); - entry.getProperty().put("CHAIN", ((PDBChain)chains.elementAt(i)).id); + if (((PDBChain)chains.elementAt(i)).id!=null) { + entry.getProperty().put("CHAIN", ((PDBChain)chains.elementAt(i)).id); + } if (inFile != null) { entry.setFile(inFile.getAbsolutePath()); @@ -211,6 +214,15 @@ public class PDBfile extends jalview.io.AlignFile x.printStackTrace(); }; + if (prot.size()>0) + try { + processPdbFileWithJmol(prot); + } catch (Exception x) + { + System.err.println("Exceptions when dealing with RNA in pdb file"); + x.printStackTrace(); + + }; } catch (OutOfMemoryError er) { System.out.println("OUT OF MEMORY LOADING PDB FILE"); @@ -226,8 +238,10 @@ public class PDBfile extends jalview.io.AlignFile } private void processPdbFileWithJmol(ArrayList prot) throws Exception { - // process prot sequence with Jmol to get annotated alignment. - // replaceMatchingSeqsWith(prot, al, AlignSeq.PEP); + PDBFileWithJmol jmf = new PDBFileWithJmol(new FileParse(getDataName(),type)); + Alignment al = new Alignment(jmf.getSeqsAsArray()); + jmf.addAnnotations(al); + replaceMatchingSeqsWith(prot, al, AlignSeq.PEP); } private void processPdbFileWithAnnotate3d(ArrayList rna) throws Exception { // System.out.println("this is a PDB format and RNA sequence"); @@ -286,7 +300,9 @@ public class PDBfile extends jalview.io.AlignFile ap++; } } - annotations.addAll(inspos, Arrays.asList(sq.getAnnotation())); + if (sq.getAnnotation()!=null) { + annotations.addAll(inspos, Arrays.asList(sq.getAnnotation())); + } } } } -- 1.7.10.2