X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignment.java;h=1ec702cf523b47413097c9d17e4bd2177f88a998;hb=9e40070f757fc662aba39ba6314be4937276ead4;hp=fe6582951e5df44bf76330c1f118b6ada51fe6a0;hpb=b197088233e07bcdbf41a12e975185aee3efe146;p=jalview.git diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index fe65829..1ec702c 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -2047,9 +2047,23 @@ public class Alignment implements AlignmentI, AutoCloseable } @Override - public ContactMatrixI getContactMatrixFor(AlignmentAnnotation ann) + public ContactMatrixI getContactMatrixFor(AlignmentAnnotation _aa) { - return cmholder.getContactMatrixFor(ann); + ContactMatrixI cm = cmholder.getContactMatrixFor(_aa); + if (cm==null && _aa.groupRef!=null) + { + cm = _aa.groupRef.getContactMatrixFor(_aa); + } + if (cm==null && _aa.sequenceRef!=null) + { + cm = _aa.sequenceRef.getContactMatrixFor(_aa); + if (cm==null) + { + // TODO fix up this logic and unify with getContactListFor + cm = _aa.sequenceRef.getDatasetSequence().getContactMatrixFor(_aa); + } + } + return cm; } @Override @@ -2062,14 +2076,19 @@ public class Alignment implements AlignmentI, AutoCloseable } if (cl == null && _aa.sequenceRef != null) { - int spos = _aa.sequenceRef.findPosition(column) - 1; - if (spos >= _aa.sequenceRef.getStart() - && spos <= 1 + _aa.sequenceRef.getEnd()) + if (_aa.annotations[column] != null) { - cl = _aa.sequenceRef.getContactListFor(_aa, spos); + // sequence associated + cl = _aa.sequenceRef.getContactListFor(_aa, column); if (cl == null && _aa.sequenceRef.getDatasetSequence() != null) { - _aa.sequenceRef.getDatasetSequence().getContactListFor(_aa, spos); + int spos = _aa.sequenceRef.findPosition(column); + if (spos >= _aa.sequenceRef.getStart() + && spos <= 1 + _aa.sequenceRef.getEnd()) + { + cl = _aa.sequenceRef.getDatasetSequence().getContactListFor(_aa, + spos-_aa.sequenceRef.getStart()); + } } } }