code: public void setSubunitMap(Map<Integer, Integer> subunitMap) {
  
  		// Check consistency of the map
  		if (Collections.max(subunitMap.keySet()) > subunits1.size()
  				| Collections.max(subunitMap.values()) > subunits2.size())
  			throw new IndexOutOfBoundsException(
  					"Subunit Map index higher than Subunit List size.");
  
  		// Update the relation enum
  		if (subunitMap.size() == 0) {
  			relation = QsRelation.DIFFERENT;
  		} else if (subunitMap.keySet().size() == subunits1.size()) {
  			if (subunitMap.values().size() == subunits2.size()) {
  				relation = QsRelation.EQUIVALENT;
  			} else {
  				relation = QsRelation.PARTIAL_COMPLETE;
  			}
  		} else {
  			if (subunitMap.values().size() == subunits2.size()) {
  				relation = QsRelation.PARTIAL_COMPLETE;
  			} else {
  				relation = QsRelation.PARTIAL_INCOMPLETE;
  			}
  		}
  
  		this.subunitMap = subunitMap;
  	}
docs: Map of Subunit equivalencies from the first to the second group.
  
  @param subunitMap