class_docstr: Provides with analysis of all the :class:`Pipeline`'s operations hyperparameters
  using sample and analyze methods from ``SALib``
  
  Args:
      pipeline: :obj:`Pipeline` object to analyze
      train_data: data used for :obj:`Pipeline` training
      test_data: data used for :obj:`Pipeline` validation
      requirements: extra requirements to define specific details for different approaches.
          See :class:`SensitivityAnalysisRequirements` class documentation.
      path_to_save: path to save results to. Default: ``~home/Fedot/structural_analysis/``
class_docstr_tok: ["Provides","with","analysis","of","all","the",":","class",":","`","Pipeline","`","'s","operations","hyperparameters","using","sample","and","analyze","methods","from","``","SALib","``","Args",":","pipeline",":",":","obj",":","`","Pipeline","`","object","to","analyze","train_data",":","data","used","for",":","obj",":","`","Pipeline","`","training","test_data",":","data","used","for",":","obj",":","`","Pipeline","`","validation","requirements",":","extra","requirements","to","define","specific","details","for","different","approaches",".","See",":","class",":","`","SensitivityAnalysisRequirements","`","class","documentation",".","path_to_save",":","path","to","save","results","to",".","Default",":","``","~home\/Fedot\/structural_analysis\/","``"]
code: def convert_results_to_json(
      problem: MultiOperationsProblem, si: dict
  ) -> dict:
      sobol_indices = []
      for index, param_name in enumerate(problem.names):
          var_indices = {
              f"{param_name}": {
                  "S1": list(si["S1"])[index],
                  "S1_conf": list(si["S1_conf"])[index],
                  "ST": list(si["ST"])[index],
                  "ST_conf": list(si["ST_conf"])[index],
              }
          }
          sobol_indices.append(var_indices)
  
      indices_per_operation = dict()
      border_index = 0
      for (
          operation_name,
          params_names,
      ) in problem.names_per_node.items():
          if params_names is not None:
              indices_per_operation[operation_name] = sobol_indices[
                  border_index : border_index + len(params_names)
              ]
              border_index += len(params_names)
          else:
              indices_per_operation[operation_name] = "None"
  
      data = {
          "problem": problem.dictionary,
          "sobol_indices_per_operation": indices_per_operation,
      }
  
      return data
  
file_path: FEDOT/fedot/structural_analysis/operations_hp_sensitivity/multi_operations_sensitivity.py
imports: from copy import deepcopy
  from os.path import join
  from typing import List, Optional, Union
  import numpy
  from golem.core.log import default_log
  from fedot.core.composer.metrics import MSE
  from fedot.core.data.data import InputData
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.utils import default_fedot_data_dir
  from fedot.structural_analysis.operations_hp_sensitivity.problem import MultiOperationsProblem, Problem
  from fedot.structural_analysis.operations_hp_sensitivity.sa_and_sample_methods import analyze_method_by_name, sample_method_by_name
  from fedot.structural_analysis.sa_requirements import HyperparamsAnalysisMetaParams, SensitivityAnalysisRequirements
label_desc: Use image node_id 6 for calling the MultiOperationsHPAnalyze obj's underlying member method code with example usage: obj.convert_results_to_json(problem, si) and returns: data