<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_amino_acid_to_json(code, description, letter='X', modified=None, force_add=False):
 """ Add an amino acid to the amino_acids.json file used to populate the amino_acid table. Parameters code : str New code to be added to amino acid table. description : str Description of the amino acid, e.g. 'amidated terminal carboxy group'. letter : str, optional One letter code for the amino acid. Defaults to 'X' modified : str or None, optional Code of modified amino acid, e.g. 'ALA', or None. Defaults to None force_add : bool, optional If True, will over-write existing dictionary value for code if already in amino_acids.json. If False, then an IOError is raised if code is already in amino_acids.json. Raises ------ IOError If code is already in amino_acids.json and force_add is False. Returns ------- None """

    # If code is already in the dictionary, raise an error
    if (not force_add) and code in amino_acids_dict.keys():
        raise IOError("{0} is already in the amino_acids dictionary, with values: {1}".format(
            code, amino_acids_dict[code]))

    # Prepare data to be added.
    add_code = code
    add_code_dict = {'description': description, 'letter': letter, 'modified': modified}

    # Check that data does not already exist, and if not, add it to the dictionary.
    amino_acids_dict[add_code] = add_code_dict

    # Write over json file with updated dictionary.
    with open(_amino_acids_json_path, 'w') as foo:
        foo.write(json.dumps(amino_acids_dict))

    return