def METHOD_NAME(df, source_map, target_map):
    """
    converts the target and source 
    :param df: The daraframe containing the sources and targets to be converted
    :param source_map: A dict containg the cuis as keys and curies as values
    :param target_map: A dict containg the cuis as keys and curies as values
    :return: A data frame with converted source and target ids
    """
    d = 0
    new_df_list = []
    count_flag = 'count' in df
    for row in range(len(df)):
        if df['source'][row] in source_map.keys() and df['target'][row] in target_map.keys():
            for src in source_map[df['source'][row]]:
                for trg in target_map[df['target'][row]]:
                    if count_flag:
                        new_df_list += [[df['count'][row],src,trg]]
                    else:
                        new_df_list += [[src,trg]]
        d += 1
        # This just prints out progress every 10% uncomment if you want this
        #if d % int(len(df)/10 + 1) == 0:
        #    print(d/len(df))
    if count_flag:
        new_df = pandas.DataFrame(new_df_list,columns = ['count','source','target'])
    else:
        new_df = pandas.DataFrame(new_df_list,columns = ['source','target'])
    return new_df