code: public Pair<List<Group>> getRimResidues(double bsaToAsaCutoff, double minAsaForSurface) {
  
  		List<Group> rim1 = new ArrayList<Group>();
  		List<Group> rim2 = new ArrayList<Group>();
  
  		for (GroupAsa groupAsa:groupAsas1.values()) {
  
  			if (groupAsa.getAsaU()>minAsaForSurface && groupAsa.getBsa()>0) {
  				if (groupAsa.getBsaToAsaRatio()<bsaToAsaCutoff) {
  					rim1.add(groupAsa.getGroup());
  				} else {
  					//core1.add(groupAsa.getGroup());
  				}
  			}
  		}
  		for (GroupAsa groupAsa:groupAsas2.values()) {
  
  			if (groupAsa.getAsaU()>minAsaForSurface && groupAsa.getBsa()>0) {
  				if (groupAsa.getBsaToAsaRatio()<bsaToAsaCutoff) {
  					rim2.add(groupAsa.getGroup());
  				} else {
  					//core2.add(groupAsa.getGroup());
  				}
  			}
  		}
  
  		return new Pair<List<Group>>(rim1, rim2);
  	}
docs: Returns the residues belonging to the interface rim, defined as those residues at
  the interface (BSA>0) and for which the BSA/ASA ratio is below the given bsaToAsaCutoff
  @param bsaToAsaCutoff
  @param minAsaForSurface the minimum ASA to consider a residue on the surface
  @return