code: def lowram_srm(reduced_data_list, n_iter=10, n_components=None):
      """Computes shared response and basis in reduced space
  
      Parameters
      ----------
  
      reduced_data_list : array of str, shape=[n_subjects, n_sessions]
          Element i, j of the array is a path to the data of subject i
          collected during session j.
          Data are loaded with numpy.load and expected
          shape is [n_timeframes, n_supervoxels]
          n_timeframes and n_supervoxels are
           assumed to be the same across subjects
          n_timeframes can vary across sessions
          Each voxel's timecourse is assumed to have mean 0 and variance 1
  
      n_iter : int
          Number of iterations performed
  
      n_components : int or None
          number of components
  
      Returns
      -------
  
      shared_response_list : list of array, element i has
       shape=[n_timeframes, n_components]
          shared response, element i is the shared response during session i
      """
  
      n_subjects, n_sessions = reduced_data_list.shape[:2]
      shared_response = _reduced_space_compute_shared_response(
          reduced_data_list, None, n_components
      )
  
      reduced_basis = [None] * n_subjects
      for _ in range(n_iter):
          for n in range(n_subjects):
              cov = None
              for m in range(n_sessions):
                  data_nm = np.load(reduced_data_list[n, m])
                  if cov is None:
                      cov = shared_response[m].T.dot(data_nm)
                  else:
                      cov += shared_response[m].T.dot(data_nm)
              reduced_basis[n] = _compute_subject_basis(cov)
  
          shared_response = _reduced_space_compute_shared_response(
              reduced_data_list, reduced_basis, n_components
          )
  
      return shared_response
  
imports: import hashlib
  import logging
  import os
  import numpy
  import scipy
  from joblib import Parallel, delayed
  from brainiak.funcalign.srm import DetSRM
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.exceptions import NotFittedError
  import uuid
label_desc: Use image node_id 30 for calling a global function with example usage: lowram_srm(reduced_data_list, n_iter, n_components) and returns: shared_response