message: check distance for IntraUnitClashes
diff: @@ -202,8 +202,7 @@ function createInterUnitClashes(structure: Structure, clashes: ValidationReport[
  const builder = new InterUnitGraph.Builder<Unit.Atomic, UnitIndex, InterUnitClashesProps>()
  const { a, b, edgeProps: { id, magnitude, distance } } = clashes
  - const pA = Vec3()
  - const pB = Vec3()
  + const pA = Vec3(), pB = Vec3()
  Structure.eachUnitPair(structure, (unitA: Unit, unitB: Unit) => {
  const elementsA = unitA.elements
  @@ -248,6 +247,8 @@ function createIntraUnitClashes(unit: Unit.Atomic, clashes: ValidationReport['cl
  const magnitudes: number[] = []
  const distances: number[] = []
  + const pA = Vec3(), pB = Vec3()
  +
  const { elements } = unit
  const { a, b, edgeCount, edgeProps } = clashes
  @@ -257,6 +258,11 @@ function createIntraUnitClashes(unit: Unit.Atomic, clashes: ValidationReport['cl
  let indexB = SortedArray.indexOf(elements, b[i])
  if (indexA !== -1 && indexB !== -1) {
  + unit.conformation.position(a[i], pA)
  + unit.conformation.position(b[i], pB)
  +
  + // check actual distance to avoid clashes between unrelated chain instances
  + if (equalEps(edgeProps.distance[i], Vec3.distance(pA, pB), 0.1)) {
  aIndices.push(indexA as UnitIndex)
  bIndices.push(indexB as UnitIndex)
  ids.push(edgeProps.id[i])
  @@ -264,6 +270,7 @@ function createIntraUnitClashes(unit: Unit.Atomic, clashes: ValidationReport['cl
  distances.push(edgeProps.distance[i])
  }
  }
  + }
  const builder = new IntAdjacencyGraph.EdgeBuilder(elements.length, aIndices, bIndices)
  const id = new Int32Array(builder.slotCount)
  @@ -279,7 +286,6 @@ function createIntraUnitClashes(unit: Unit.Atomic, clashes: ValidationReport['cl
  }
  function createClashes(structure: Structure, clashes: ValidationReport['clashes']): Clashes {
  -
  const intraUnit = IntMap.Mutable<IntraUnitClashes>()
  for (let i = 0, il = structure.unitSymmetryGroups.length; i < il; ++i) {
  