X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FMCview%2FPDBChain.java;h=30712f2228f98d9dcf1e610d5dfa232b03e5f44b;hb=6af5ebe6f1879c7b705a42dab3bd51857e4e30b2;hp=76a0cde2e7b5415dabb4916cf5511827f01a0e31;hpb=5c4ae10dd4841be26efc77548bb5b9e2a9d7ff0b;p=jalview.git diff --git a/src/MCview/PDBChain.java b/src/MCview/PDBChain.java index 76a0cde..30712f2 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 @@ -126,7 +126,7 @@ public class PDBChain SequenceFeature[] features = sequence.getSequenceFeatures(); for (int i = 0; i < features.length; i++) { - if (features[i].getFeatureGroup().equals(PDBChain.PDBFILEFEATURE)) + if (features[i].getFeatureGroup().equals(pdbid)) { SequenceFeature tx = new SequenceFeature(features[i]); tx.setBegin(1 + @@ -189,6 +189,7 @@ public class PDBChain int count = 0; StringBuffer seq = new StringBuffer(); Vector resFeatures = new Vector(); + Vector resAnnotation = new Vector(); int i, iSize = atoms.size() - 1; int resNumber = -1; for (i = 0; i <= iSize; i++) @@ -234,8 +235,11 @@ public class PDBChain tmpat.resName + ":" + tmpat.resNumIns + " " + pdbid + id, "", offset + count, offset + count, - MCview.PDBChain.PDBFILEFEATURE); + pdbid); + + //MCview.PDBChain.PDBFILEFEATURE); resFeatures.addElement(sf); + resAnnotation.addElement(new Annotation(tmpat.tfactor)); // Keep totting up the sequence if (ResidueProperties.getAA3Hash().get(tmpat.resName) == null) { @@ -266,6 +270,19 @@ public class PDBChain sequence.addSequenceFeature( (SequenceFeature) resFeatures.elementAt(i)); resFeatures.setElementAt(null, i); } + Annotation[] annots = new Annotation[resAnnotation.size()]; + float max=0; + for (i=0,iSize=annots.length; imax) + max = annots[i].value; + resAnnotation.setElementAt(null, i); + } + AlignmentAnnotation tfactorann = new AlignmentAnnotation("PDB.CATempFactor","CA Temperature Factor for "+sequence.getName(), + annots, 0, max, AlignmentAnnotation.LINE_GRAPH); + tfactorann.setSequenceRef(sequence); + sequence.addAlignmentAnnotation(tfactorann); } public void setChargeColours() @@ -360,4 +377,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