def get_atom_partial_charge(atom: RDKitAtom) -> List[float]:
  """Get a partial charge of an atom.

  Parameters
  ---------
  atom: rdkit.Chem.rdchem.Atom
    RDKit atom object

  Returns
  -------
  List[float]
    A vector of the parital charge.

  Notes
  -----
  Before using this function, you must calculate `GasteigerCharge`
  like `AllChem.ComputeGasteigerCharges(mol)`.
  """
  gasteiger_charge = atom.GetProp('_GasteigerCharge')
  if gasteiger_charge in ['-nan', 'nan', '-inf', 'inf']:
    gasteiger_charge = 0.0
  return [float(gasteiger_charge)]
def get_atom_chirality_one_hot(atom: RDKitAtom) -> List[float]:
  """Get an one-hot feature about an atom chirality type.

  Parameters
  ---------
  atom: rdkit.Chem.rdchem.Atom
    RDKit atom object

  Returns
  -------
  List[float]
    A one-hot vector of the chirality type. The first element
    indicates "R", and the second element indicates "S".
  """
  one_hot = [0.0, 0.0]
  try:
    chiral_type = atom.GetProp('_CIPCode')
    if chiral_type == "R":
      one_hot[0] = 1.0
    elif chiral_type == "S":
      one_hot[1] = 1.0
  except:
    pass
  return one_hot