byte[] calculateRunsFourOrMore(byte[] codes) {
		byte[] tags = new byte[monomerCount];
		byte tag = TAG_NADA;
		byte code = CODE_NADA;
		int runLength = 0;
		for (int i = 0; i < monomerCount; ++i) {
			// throw away the sheets ... their angle technique does not work well
			if (codes[i] == code && code != CODE_NADA && code != CODE_BETA_SHEET) {
				++runLength;
				if (runLength == 4) {
					tag = (code == CODE_BETA_SHEET ? TAG_SHEET : TAG_HELIX);
					for (int j = 4; --j >= 0;)
						tags[i - j] = tag;
				}
				else if (runLength > 4)
					tags[i] = tag;
			}
			else {
				runLength = 1;
				code = codes[i];
			}
		}
		return tags;
	}