import jalview.analysis.*;
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.structure.StructureMapping;
public class PDBChain
{
}
}
}
-
/**
* copy over the RESNUM seqfeatures from the internal chain sequence to the mapped sequence
* @param seq
"", 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)
{
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<k)
+ {
+ max=k;
+ }
+ }
+ }
+ sq.addAlignmentAnnotation(new AlignmentAnnotation("PDB.RESNUM", "PDB Residue Numbering for "+this.pdbid+":"+this.id, an, (float)min,(float)max, AlignmentAnnotation.LINE_GRAPH));
+ }
+ }
}
if(protocol.equals(jalview.io.AppletFormatAdapter.PASTE))
pdbFile = "INLINE"+pdb.id;
-
+
mappings[mappings.length - 1]
= new StructureMapping(sequence[s], pdbFile, pdb.id, maxChainId,
mapping, mappingDetails.toString());
+ maxChain.transferResidueAnnotation(mappings[mappings.length-1]);
}
/////////