code: def get_kinetics(assay):
      
      try:
          val = float(assay.get('standard_value'))
      except TypeError:
          logger.warning('Invalid assay value: %s' % assay.get('standard_value'))
          return None
      unit = assay.get('standard_units')
      if unit == 'nM':
          unit_sym = 1e-9 * units.mol / units.liter
      elif unit == 'uM':
          unit_sym = 1e-6 * units.mol / units.liter
      else:
          logger.warning('Unhandled unit: %s' % unit)
          return None
      param_type = assay.get('standard_type')
      if param_type not in ['IC50', 'EC50', 'INH', 'Potency', 'Kd']:
          logger.warning('Unhandled parameter type: %s' % param_type)
          logger.info(str(assay))
          return None
      kin = {param_type: val * unit_sym}
      return kin
docs: Given an activity, return its kinetics values.
  
      Parameters
      ----------
      assay : dict
          an activity from the activities list returned by a query to the API
  
      Returns
      -------
      kin : dict
          dictionary of values with units keyed to value types 'IC50', 'EC50',
          'INH', 'Potency', 'Kd'