apply properties to the molecule object

    Returns:
        None (alter molecule object directly)

def add_properties(props, mol):
    """apply properties to the molecule object

    Returns:
        None (alter molecule object directly)
    """
    if not props:
        return
    # The properties supersedes all charge and radical values in the atom block
    for _, atom in mol.atoms_iter():
        atom.charge = 0
        atom.multi = 1
        atom.mass = None
    for prop in props.get("CHG", []):
        mol.atom(prop[0]).charge = prop[1]
    for prop in props.get("RAD", []):
        mol.atom(prop[0]).multi = prop[1]
    for prop in props.get("ISO", []):
        mol.atom(prop[0]).mass = prop[1]