nodes: 0, module; 1, function_definition; 2, function_name:_StartAnalysisProcesses; 3, parameters; 4, block; 5, identifier:self; 6, identifier:storage_writer; 7, identifier:analysis_plugins; 8, expression_statement; 9, expression_statement; 10, for_statement; 11, expression_statement; 12, comment:"""Starts the analysis processes.
  
      Args:
        storage_writer (StorageWriter): storage writer.
        analysis_plugins (dict[str, AnalysisPlugin]): analysis plugins that
            should be run and their names.
      """; 13, call; 14, identifier:analysis_plugin; 15, call; 16, block; 17, call; 18, attribute; 19, argument_list; 20, attribute; 21, argument_list; 22, expression_statement; 23, expression_statement; 24, if_statement; 25, attribute; 26, argument_list; 27, identifier:logger; 28, identifier:info; 29, string; 30, identifier:analysis_plugins; 31, identifier:values; 32, assignment; 33, assignment; 34, not_operator; 35, block; 36, identifier:logger; 37, identifier:info; 38, string; 39, string_content:Starting analysis plugins.; 40, subscript; 41, identifier:analysis_plugin; 42, identifier:process; 43, call; 44, identifier:process; 45, expression_statement; 46, string_content:Analysis plugins running; 47, attribute; 48, attribute; 49, attribute; 50, argument_list; 51, call; 52, identifier:self; 53, identifier:_analysis_plugins; 54, identifier:analysis_plugin; 55, identifier:NAME; 56, identifier:self; 57, identifier:_StartWorkerProcess; 58, attribute; 59, identifier:storage_writer; 60, attribute; 61, argument_list; 62, identifier:analysis_plugin; 63, identifier:NAME; 64, identifier:logger; 65, identifier:error; 66, call; 67, attribute; 68, argument_list; 69, string; 70, identifier:format; 71, attribute; 72, string_content:Unable to create analysis process: {0:s}; 73, identifier:analysis_plugin; 74, identifier:NAME
code: def _StartAnalysisProcesses(self, storage_writer, analysis_plugins):
      """Starts the analysis processes.
  
      Args:
        storage_writer (StorageWriter): storage writer.
        analysis_plugins (dict[str, AnalysisPlugin]): analysis plugins that
            should be run and their names.
      """
      logger.info('Starting analysis plugins.')
  
      for analysis_plugin in analysis_plugins.values():
        self._analysis_plugins[analysis_plugin.NAME] = analysis_plugin
  
        process = self._StartWorkerProcess(analysis_plugin.NAME, storage_writer)
        if not process:
          logger.error('Unable to create analysis process: {0:s}'.format(
              analysis_plugin.NAME))
  
      logger.info('Analysis plugins running')