code: def get_chasm_context(tri_nuc):
      
      # check if string is correct length
      if len(tri_nuc) != 3:
          raise ValueError('Chasm context requires a three nucleotide string '
                           '(Provided: "{0}")'.format(tri_nuc))
  
      # try dinuc context if found
      if tri_nuc[1:] == 'CG':
          return 'C*pG'
      elif tri_nuc[:2] == 'CG':
          return 'CpG*'
      elif tri_nuc[:2] == 'TC':
          return 'TpC*'
      elif tri_nuc[1:] == 'GA':
          return 'G*pA'
      else:
          # just return single nuc context
          return tri_nuc[1]
docs: Returns the mutation context acording to CHASM.
  
      For more information about CHASM's mutation context, look
      at http://wiki.chasmsoftware.org/index.php/CHASM_Overview.
      Essentially CHASM uses a few specified di-nucleotide contexts
      followed by single nucleotide context.
  
      Parameters
      ----------
      tri_nuc : str
          three nucleotide string with mutated base in the middle.
  
      Returns
      -------
      chasm context : str
          a string representing the context used in CHASM