public FormatVersion formatVersion() {
		// Already set?
		if (formatVersion != null) return formatVersion;

		// OK, guess format version
		if (effectStrings == null) effectStrings = split(effectString);
		int len = effectStrings.length;

		// Error or Warning string is not added under normal situations
		String lastField = effectStrings[len - 2]; // Actually las array item is after the last ')', so we use the previous one
		if (lastField.startsWith("ERROR") || lastField.startsWith("WARNING")) len--;

		// Guess format
		if (len <= 11) return FormatVersion.FORMAT_SNPEFF_2;
		if (len <= 12) return FormatVersion.FORMAT_SNPEFF_3;

		return FormatVersion.FORMAT_SNPEFF_4;
	}