def make_score_structure(molecules, ensemble):
    """
    puts data in the score_structure format for subsequent processing
    :param molecules: list [mol_object_1, mol_object_2, .... ] mol_objects are instances of common_tools.molecules
    :return score_structure: list [(id, best_score, best_query, status, net decoy count, net active count), ..., ]
    """
    # sort molecules by their ensemble score
    #sort_order = get_sort_order(molecules)
    sort_order = 'asc'
    sorted_molecules = screener.screener(molecules, ensemble, sort_order)

    # initiate variables
    score_structure = []
    net_active_count = 0
    net_decoy_count = 0

    for mol in sorted_molecules:
        # determine net active count & net decoy count
        status = mol.GetProp('status')
        if status == '1':
            net_active_count += 1
        elif status == '0':
            net_decoy_count += 1
        else:
            continue

        score_structure.append((mol.GetProp('id'), mol.GetProp('best_score'), mol.GetProp('best_query'), status,
                                net_decoy_count, net_active_count))

    return score_structure