docs: def grnboost2(expression_data,
                gene_names=None,
                tf_names='all',
                client_or_address='local',
                early_stop_window_length=EARLY_STOP_WINDOW_LENGTH,
                limit=None,
                seed=None,
                verbose=False):
      """
      Launch arboreto with [GRNBoost2] profile.
  
      :param expression_data: one of:
             * a pandas DataFrame (rows=observations, columns=genes)
             * a dense 2D numpy.ndarray
             * a sparse scipy.sparse.csc_matrix
      :param gene_names: optional list of gene names (strings). Required when a (dense or sparse) matrix is passed as
                         'expression_data' instead of a DataFrame.
      :param tf_names: optional list of transcription factors. If None or 'all', the list of gene_names will be used.
      :param client_or_address: one of:
             * None or 'local': a new Client(LocalCluster()) will be used to perform the computation.
             * string address: a new Client(address) will be used to perform the computation.
             * a Client instance: the specified Client instance will be used to perform the computation.
      :param early_stop_window_length: early stop window length. Default 25.
      :param limit: optional number (int) of top regulatory links to return. Default None.
      :param seed: optional random seed for the regressors. Default None.
      :param verbose: print info.
      :return: a pandas DataFrame['TF', 'target', 'importance'] representing the inferred gene regulatory links.
      """
  
      return diy(expression_data=expression_data, regressor_type='GBM', regressor_kwargs=SGBM_KWARGS,
                 gene_names=gene_names, tf_names=tf_names, client_or_address=client_or_address,
                 early_stop_window_length=early_stop_window_length, limit=limit, seed=seed, verbose=verbose)