import copy


def create_sample_tallying_counters(samples_list):
    
    """
    
    Creates a tallyiing dictionary of samples for reporting
    the final results
    
    : Param samples_list: List of samples

    : Return samples_counter_dict: Dictionary of samples and empty tally
        scores
    
    """

    samples_counters_dict = {}
    tallying_dictionary = {'Biallelic_Testable': 0, 'Sig_ASE': 0, 
                           'Sig_ASE_Ref': 0, 'Sig_ASE_Alt': 0,
                           'Biallelic_No_ASE': 0,
                           'Passing_Homozygous': 0,
                           'Passing_Homozygous_Ref': 0,
                           'Passing_Homozygous_Alt': 0,
                           'Non_Testable': 0} 

    for sample in samples_list:

        #Making a deep copy of the dictionary, so each one is independent
        tallying_dictionary = copy.deepcopy(tallying_dictionary)
        
        samples_counters_dict.update({sample: tallying_dictionary})
    
    return(samples_counters_dict)