def alt_or_ref(record, samples: list):
    """
    takes in a single record in a vcf file and returns the sample names divided into two lists:
    ones that have the reference snp state and ones that have the alternative snp state
    Parameters
    ----------
    record
        the record supplied by the vcf reader
    samples: list
        list of sample names
    Returns
    -------
    ref_group, alt_group : list
        lists of samples divided by ref or alt snp state
    """
    tracker = 0
    ref_group = []
    alt_group = []
    for call in record.calls:
        state = int(call.data.get('GT'))
        sample_name = samples[tracker]
        if state == 0:
            ref_group.append(sample_name)
        elif state == 1:
            alt_group.append(sample_name)
        else:
            print("there is a problem reading the state information")
            raise SystemExit(0)
        tracker += 1
    return ref_group, alt_group