def handle_base_quality_nan(split_line: list) -> list:
    """
    Parse a per-base quality line from FastQC containing NaN values.

    :param split_line: the quality line split into a :class:`.List`
    :return: replacement values

    """
    values = split_line[1:]

    for value in values:
        try:
            value = round(int(value.split(".")[0]), 2)
            return [value for _ in values]
        except ValueError:
            pass

    # Return all zeroes if none of the quality values are numbers.
    if set(values) == {"NaN"}:
        return [0] * 4

    joined = ",".join(split_line)

    raise ValueError(f"Could not parse base quality values '{joined}'")