From bdf6e94eafd5747224ade5d80140111e990596e8 Mon Sep 17 00:00:00 2001 From: jprocter Date: Wed, 25 Apr 2007 11:50:51 +0000 Subject: [PATCH] transfer of residue numbering as alignment annotation --- src/MCview/PDBChain.java | 51 +++++++++++++++++++- .../structure/StructureSelectionManager.java | 3 +- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/src/MCview/PDBChain.java b/src/MCview/PDBChain.java index aa404cc..33944fd 100755 --- a/src/MCview/PDBChain.java +++ b/src/MCview/PDBChain.java @@ -25,6 +25,7 @@ import java.awt.*; import jalview.analysis.*; import jalview.datamodel.*; import jalview.schemes.*; +import jalview.structure.StructureMapping; public class PDBChain { @@ -94,7 +95,6 @@ public class PDBChain } } } - /** * copy over the RESNUM seqfeatures from the internal chain sequence to the mapped sequence * @param seq @@ -237,7 +237,7 @@ public class PDBChain "", offset + count, offset + count, MCview.PDBChain.PDBFILEFEATURE); resFeatures.addElement(sf); - resAnnotation.addElement(new Annotation("","",'\0',tmpat.tfactor)); + resAnnotation.addElement(new Annotation(tmpat.tfactor)); // Keep totting up the sequence if (ResidueProperties.getAA3Hash().get(tmpat.resName) == null) { @@ -375,4 +375,51 @@ public class PDBChain tmp.endCol = col; } } + + public AlignmentAnnotation[] transferResidueAnnotation(SequenceI seq, String status) + { + AlignmentAnnotation[] transferred = null; + + return transferred; + + } + + /** + * copy any sequence annotation onto the sequence mapped using the provided StructureMapping + * @param mapping + */ + public void transferResidueAnnotation(StructureMapping mapping) + { + SequenceI sq = mapping.getSequence(); + if (sq!=null) + { + if (sequence!=null && sequence.getAnnotation()!=null) + { + + } + float min=-1,max=0; + Annotation[] an=new Annotation[sq.getEnd()-sq.getStart()+1]; + for (int i=sq.getStart(),j=sq.getEnd(),k=0; i<=j; i++,k++) + { + int prn = mapping.getPDBResNum(k+1); + + an[k] = new Annotation((float)prn); + if (min==-1) + { + min=k; + max=k; + } else { + if (min>k) + { + min=k; + } else + if (max