def dbs_has_min_columns(column_name_list):
    """
    Function determines if DBS headers passed contain the required
    columns.
    """

    compulsory_header_cols = set([
        'runtype',
        'station',
        'cast',
        'niskin',
        'depth',
        'bottle',
        'date',
        'time',
        'temp',
        'salt',
        'po4',
        'sio4',
        'acidconcL',
        'pipVol',
        'aciddens',
        'pKchoice',
        'CRMCT',
        'CRMAT',
        'calcID',
        'DIC',
    ])

    missing_header_cols = compulsory_header_cols - set(column_name_list)

    if any(missing_header_cols):
        raise UserWarning(
            "The header is missing compulsory header columns: " +
            str(missing_header_cols).replace('{', '').replace('}', ''))
    else:
        return True