String getModelExtract(BitSet bs) {
		int atomCount = getAtomCount();
		int bondCount = getBondCount();
		int nAtoms = 0;
		int nBonds = 0;
		int[] atomMap = new int[atomCount];
		StringBuffer mol = new StringBuffer();
		StringBuffer s = new StringBuffer();

		for (int i = 0; i < atomCount; i++) {
			if (bs.get(i)) {
				atomMap[i] = ++nAtoms;
				getAtomRecordMOL(s, i);
			}
		}
		for (int i = 0; i < bondCount; i++) {
			if (bs.get(frame.getBondAt(i).getAtom1().atomIndex) && bs.get(frame.getBondAt(i).getAtom2().atomIndex)) {
				int order = getBondOrder(i);
				if (order >= 1 && order < 3) {
					getBondRecordMOL(s, i, atomMap);
					nBonds++;
				}
			}
		}
		if (nAtoms > 999 || nBonds > 999) {
			Logger.error("ModelManager.java::getModel: ERROR atom/bond overflow");
			return "";
		}
		// 21 21 0 0 0
		rFill(mol, "   ", "" + nAtoms);
		rFill(mol, "   ", "" + nBonds);
		mol.append("  0  0  0\n");
		mol.append(s);
		return mol.toString();
	}