code: public boolean isCompatible(ResidueGroup other) {
  
  		// Same order needed is necessary
  		if (this.order() != other.order())
  			return false;
  
  		// Use the method of the smallest ResidueGroup
  		if (this.residues.get(0) > other.residues.get(0))
  			return other.isCompatible(this);
  
  		// Check for intercalation of residues
  		for (int i = 0; i < order() - 1; i++) {
  			if (other.residues.get(i) > residues.get(i + 1))
  				return false;
  			if (residues.get(i) > other.residues.get(i + 1))
  				return false;
  		}
  
  		return true;
  	}
docs: Determine if two Residuegroups (maximally connected components of the
  alignment Graph) are compatible, based in the following criterion:
  
  <pre>
  Two maximally connected components of the self-alignment Graph are
  compatible if they can be combined in a consistent multiple alignment
  of repeats, i.e.there exists one residue in c1 between each sorted
  pair of residues in c2.
  </pre>
  
  Compatibility is an intransitive relation, which means that for three
  ResidueGroups {A,B,C}, if A is compatible with B and B is compatible with
  C, then A is not necessarily compatible with C.
  
  @param c2
  second maximally connected component
  @return true if compatible, false otherwise