BitSet getMoleculeBitSet(BitSet bs) {
		// returns cumulative sum of all atoms in molecules containing these atoms
		if (moleculeCount == 0)
			getMolecules();
		BitSet bsResult = (BitSet) bs.clone();
		BitSet bsInitial = (BitSet) bs.clone();
		int iLastBit;
		while ((iLastBit = bsInitial.length()) > 0) {
			bsTemp = getMoleculeBitSet(iLastBit - 1);
			bsInitial.andNot(bsTemp);
			bsResult.or(bsTemp);
		}
		return bsResult;
	}