private void filterGroups() {
		// apply minimum size and robust size constraint
		ArrayList<String> filteredOut = new ArrayList<String>();
		for(String tag : tag2SNVs.keySet()) {
			if(isAbsent(tag) || (tag2SNVs.get(tag).size() < Parameters.MIN_SNVS_PER_GROUP)) {
				filteredOut.add(tag);
				continue;
			}
	
			if(Parameters.MIN_ROBUST_SNVS_PER_GROUP > 0) {
				int numRobust = 0;
				for(SNVEntry entry : tag2SNVs.get(tag)) {
					if(entry.isRobust()) {
						numRobust++;
						if(numRobust >= Parameters.MIN_ROBUST_SNVS_PER_GROUP) {
							break;
						}
					}
				}
				if(numRobust < Parameters.MIN_ROBUST_SNVS_PER_GROUP) {
					filteredOut.add(tag);
				}
			}
		}
		for(String group : filteredOut) {
			tag2SNVs.remove(group);
		}
	}