code: def _data_err(data, S_tot, cals, idx=None, axis=None):
      if idx is None:
          idx = slice(None)
      S_tot = S_tot / cals
      data_model = np.dot(
          np.dot(S_tot[idx], _col_norm_pinv(S_tot.copy())[0]), data
      )
      err = 100 * (
          np.linalg.norm(data_model - data[idx], axis=axis)
          / np.linalg.norm(data[idx], axis=axis)
      )
      return err
  
imports: from collections import defaultdict
  from functools import partial
  import numpy
  from scipy.optimize import fmin_cobyla
  from .._fiff.pick import pick_info, pick_types
  from .._fiff.tag import _coil_trans_to_loc, _loc_to_coil_trans
  from ..bem import _check_origin
  from ..io import BaseRaw
  from ..transforms import _find_vector_rotation
  from ..utils import _check_fname, _check_option, _ensure_int, _pl, _reg_pinv, _validate_type, check_fname, logger, verbose
  from .maxwell import _col_norm_pinv, _get_grad_point_coilsets, _prep_fine_cal, _prep_mf_coils, _read_cross_talk, _trans_sss_basis
label_desc: Use image node_id 6 for calling a global function with example usage: _data_err(data, S_tot, cals, idx, axis) and returns: err