@Override
	public void sequence(String id, String sequence, String quality) {
		boolean ok = true;

		if (qdecoder != null) {
			int qual[] = null;
			try {
				qual = qdecoder.decodeQuality(quality);
			} catch (QualityFormatException e1) {
				String error = String.format(
						"Quality encoding is not correct: %s", quality);
				System.err.println(error);
			}

			if (wholeSequence) {
				windowsLength = qual.length;
			}

			int lastIndex = qual.length - 1;
			int firstIndex = qual.length - windowsLength;

			int cumQuality = 0;
			int cumCutoff = cutoff * windowsLength;

			ok = true;

			while (firstIndex >= 0) {
				for (int i = lastIndex; i >= firstIndex; i--) {
					cumQuality += qual[i];
				}

				if ((cumQuality - cumCutoff) < 0) {
					ok = false;
					break;
				} else {
					firstIndex--;
					lastIndex--;
				}
			}
		}

		if (ok) {
			notifyListeners(id, sequence, quality);
		} else {
			notifyListeners(id, "", "");
		}

	}