Analyzes a CSV file.
    Expects a CSV file with a header line starting with headers_start_with e.g. "ID,experimental value, prediction 1 value, prediction 2 value,"
    Record IDs are expected in the first column.
    Experimental values are expected in the second column.
    Predicted values are expected in the subsequent columns.

    :param csv_filepath: The path to a CSV file containing experimental and predicted data for some dataset.
    :param expect_negative_correlation: See parse_csv.
    :param STDev_cutoff: See parse_csv.
    :param headers_start_with: See parse_csv.
    :param comments_start_with: See parse_csv.
    :param separator: See parse_csv.

def parse_csv_file(csv_filepath, expect_negative_correlation = False, STDev_cutoff = 1.0, headers_start_with = 'ID', comments_start_with = None, separator = ','):
    """
    Analyzes a CSV file.
    Expects a CSV file with a header line starting with headers_start_with e.g. "ID,experimental value, prediction 1 value, prediction 2 value,"
    Record IDs are expected in the first column.
    Experimental values are expected in the second column.
    Predicted values are expected in the subsequent columns.

    :param csv_filepath: The path to a CSV file containing experimental and predicted data for some dataset.
    :param expect_negative_correlation: See parse_csv.
    :param STDev_cutoff: See parse_csv.
    :param headers_start_with: See parse_csv.
    :param comments_start_with: See parse_csv.
    :param separator: See parse_csv.
    """
    assert (os.path.exists(csv_filepath))
    return parse_csv(get_file_lines(csv_filepath),
                     expect_negative_correlation = expect_negative_correlation, STDev_cutoff = STDev_cutoff, headers_start_with = headers_start_with,
                     comments_start_with = comments_start_with, separator = separator)