code: def orth(x_in, y_in):
      """Orthogonalize y_in with respect to x_in.
  
      >>> orth_expected = np.array([1.7142857142857144, 0.42857142857142883, \
                                    -0.85714285714285676])
      >>> err = np.abs(np.array(orth([1, 2, 3],[4, 5, 6]) - orth_expected))
      >>> all(err < np.finfo(float).eps)
      True
  
      """
      x = np.array(x_in)[:, None]
      y = np.array(y_in)[:, None]
      y = y - np.dot(
          x, np.dot(np.linalg.inv(np.dot(x.T, x)), np.dot(x.T, y))
      )
      if np.linalg.norm(y, 1) > np.exp(-32):
          y = y[:, 0].tolist()
      else:
          y = y_in
      return y
  
imports: from copy import deepcopy
  import csv, math, os
  from nibabel import load
  import numpy
  from ..interfaces.base import BaseInterface, TraitedSpec, InputMultiPath, traits, File, Bunch, BaseInterfaceInputSpec, isdefined
  from ..utils.filemanip import ensure_list
  from ..utils.misc import normalize_mc_params
  from ..None import config, logging
label_desc: Use image node_id 2 for calling a global function with example usage: orth(x_in, y_in) and returns: y