docs: def _get_nonsynonymous_var(data_dict):
          '''if data_dict has a non synonymous variant, return string:
          ref_name.change. Otherwise return None'''
          has_nonsyn = SummaryCluster._has_nonsynonymous(data_dict)
  
          if has_nonsyn == 'no':
              return None
          elif data_dict['known_var_change'] == data_dict['ref_ctg_change'] == '.' == data_dict['ref_ctg_effect']:
              raise Error('Unexpected data in ariba summary... \n' + str(data_dict) + '\n... known_var_change, ref_ctg_change, ref_ctg_effect all equal to ".", but has a non synonymous change. Something is inconsistent. Cannot continue')
          else:
              if '.' not in [data_dict['known_var_change'], data_dict['ref_ctg_change']] and \
                data_dict['known_var_change'] != data_dict['ref_ctg_change']:
                  raise Error('Unexpected data in ariba summary... \n' + str(data_dict) + '\n... known_var_change != ref_ctg_change. Cannot continue')
  
              var_group = 'novel', None
  
              if data_dict['known_var'] == '1' and data_dict['known_var_change'] != '.':
                  var_change = data_dict['known_var_change']
                  if data_dict['var_group'] == '.':
                      var_group = 'ungrouped', None
                  else:
                      var_group = 'grouped', data_dict['var_group']
              elif data_dict['ref_ctg_change'] != '.':
                  var_change = data_dict['ref_ctg_change']
              else:
                  var_change = data_dict['ref_ctg_effect']
  
              return (data_dict['ref_name'], var_change) + var_group