private int seek(long annotationNumber) {
		long readPos = annotationNumber * TUPLE_SIZE_IN_BYTES / readBuffer.length;
		if (readPos != absoluteReadPos) {
			try {
				absoluteReadPos = readPos;
				annotFile.seek(absoluteReadPos);
				annotFile.read(readBuffer);
			} catch (IOException ex) {
				throw new RuntimeException("Canot read from annotation file: " + ex.getMessage());
			}
		}
		return (int) ((annotationNumber * TUPLE_SIZE_IN_BYTES) % readBuffer.length);
	}