code: def process_sub(subspace, gm, median, scaler1, scaler2):
      """
      Apply ROD on a 3D subSpace then process it with sigmoid
      to compare apples to apples
  
      Parameters
      ----------
      subspace : array-like, 3D subspace of the data
      gm: list, the geometric median
      median: float, MAD median
      scaler1: obj, MinMaxScaler of Angles group 1
      scaler2: obj, MinMaxScaler of Angles group 2
  
      Returns
      -------
      ROD decision scores with sigmoid applied, gm, scaler1, scaler2
      """
      mad_subspace, gm, median, scaler1, scaler2 = rod_3D(
          subspace,
          gm=gm,
          median=median,
          scaler1=scaler1,
          scaler2=scaler2,
      )
      return (
          sigmoid(np.nan_to_num(np.array(mad_subspace))),
          gm,
          median,
          scaler1,
          scaler2,
      )
  
imports: from __future__ import division
  from __future__ import print_function
  import multiprocessing
  from itertools import combinations
  from multiprocessing import Pool
  import numba
  import numpy
  from sklearn.preprocessing import MinMaxScaler, RobustScaler
  from sklearn.utils import check_array
  from .base import BaseDetector
label_desc: Use image node_id 8 for calling a global function with example usage: process_sub(subspace, gm, median, scaler1, scaler2) and returns: sigmoid,  gm,  median,  scaler1,  scaler2