code: def _map_agent_mod(self, agent, mod_condition):
          
          # Get the UniProt ID of the agent, if not found, return
          up_id = _get_uniprot_id(agent)
          if not up_id:
              logger.debug("No uniprot ID for %s" % agent.name)
              return None
          # If no site information for this residue, skip
          if mod_condition.position is None or mod_condition.residue is None:
              return None
          # Otherwise, try to map it and return the mapped site
          mapped_site = \
              self.map_to_human_ref(up_id, 'uniprot',
                  mod_condition.residue,
                  mod_condition.position,
                  do_methionine_offset=self.do_methionine_offset,
                  do_orthology_mapping=self.do_orthology_mapping,
                  do_isoform_mapping=self.do_isoform_mapping)
          return mapped_site
docs: Map a single modification condition on an agent.
  
          Parameters
          ----------
          agent : :py:class:`indra.statements.Agent`
              Agent to check for invalid modification sites.
          mod_condition : :py:class:`indra.statements.ModCondition`
              Modification to check for validity and map.
  
          Returns
          -------
          protmapper.MappedSite or None
              A MappedSite object is returned if a UniProt ID was found for the
              agent, and if both the position and residue for the modification
              condition were available. Otherwise None is returned.