def load_candidate_bond_changes_for_one_reaction(line):
    """Load candidate bond changes for a reaction

    Parameters
    ----------
    line : str
        Candidate bond changes separated by ;. Each candidate bond change takes the
        form of atom1, atom2, change_type and change_score.

    Returns
    -------
    list of 4-tuples
        Loaded candidate bond changes.
    """
    reaction_candidate_bond_changes = []
    elements = line.strip().split(';')[:-1]
    for candidate in elements:
        atom1, atom2, change_type, score = candidate.split(' ')
        atom1, atom2 = int(atom1) - 1, int(atom2) - 1
        reaction_candidate_bond_changes.append((
            min(atom1, atom2), max(atom1, atom2), float(change_type), float(score)))

    return reaction_candidate_bond_changes