message: basic support for aligning coarse structures
diff: @@ -24,8 +24,7 @@ namespace AlignSequences {
  function createSeqIdIndicesMap(element: StructureElement.Loci.Element) {
  const seqIds = new Map<number, StructureElement.UnitIndex[]>();
  - if (!Unit.isAtomic(element.unit)) return seqIds;
  -
  + if (Unit.isAtomic(element.unit)) {
  const { label_seq_id } = element.unit.model.atomicHierarchy.residues;
  const { residueIndex } = element.unit;
  for (let i = 0, il = OrderedSet.size(element.indices); i < il; ++i) {
  @@ -35,6 +34,17 @@ namespace AlignSequences {
  if (seqIds.has(seqId)) seqIds.get(seqId)!.push(uI);
  else seqIds.set(seqId, [uI]);
  }
  + } else if (Unit.isCoarse(element.unit)) {
  + const { seq_id_begin } = Unit.isSpheres(element.unit)
  + ? element.unit.model.coarseHierarchy.spheres
  + : element.unit.model.coarseHierarchy.gaussians;
  + for (let i = 0, il = OrderedSet.size(element.indices); i < il; ++i) {
  + const uI = OrderedSet.getAt(element.indices, i);
  + const eI = element.unit.elements[uI];
  + const seqId = seq_id_begin.value(eI);
  + seqIds.set(seqId, [uI]);
  + }
  + }
  return seqIds;
  }
  