code: def orthogonalize(X):
      """Orthogonalize every column of design `X` w.r.t preceding columns.
  
      Parameters
      ----------
      X : array of shape(n, p)
         The data to be orthogonalized.
  
      Returns
      -------
      X : array of shape(n, p)
         The data after orthogonalization.
  
      Notes
      -----
      X is changed in place. The columns are not normalized.
  
      """
      if X.size == X.shape[0]:
          return X
  
      from scipy.linalg import pinv
  
      for i in range(1, X.shape[1]):
          X[:, i] -= np.dot(np.dot(X[:, i], X[:, :i]), pinv(X[:, :i]))
  
      return X
  
imports: import warnings
  from collections.abc import Iterable
  import numpy
  from scipy.stats import gamma
  from nilearn._utils import fill_doc
label_desc: Use image node_id 15 for calling a global function with example usage: orthogonalize(X) and returns: X, X