class_docstr: Bundle-based Minimum Distance aka BMD
  
  This is the cost function used by the StreamlineLinearRegistration
  
  Methods
  -------
  setup(static, moving)
  distance(xopt)
  
  Notes
  -----
  The difference with BundleMinDistanceMetric is that this creates
  the entire distance matrix and therefore requires more memory.
class_docstr_tok: ["Bundle-based","Minimum","Distance","aka","BMD","This","is","the","cost","function","used","by","the","StreamlineLinearRegistration","Methods","--","--","--","-","setup","(","static",",","moving",")","distance","(","xopt",")","Notes","--","--","-","The","difference","with","BundleMinDistanceMetric","is","that","this","creates","the","entire","distance","matrix","and","therefore","requires","more","memory","."]
docstr: Distance calculated from this Metric.
  
  Parameters
  ----------
  xopt : sequence
      List of affine parameters as an 1D vector
docstr_tok: ["Distance","calculated","from","this","Metric",".","Parameters","--","--","--","--","--","xopt",":","sequence","List","of","affine","parameters","as","an","1D","vector"]
code: def distance(self, xopt):
      """Distance calculated from this Metric.
  
      Parameters
      ----------
      xopt : sequence
          List of affine parameters as an 1D vector
      """
      return bundle_min_distance(xopt, self.static, self.moving)
  
imports: import logging
  import abc
  from itertools import combinations
  import numpy
  from dipy.core.optimize import Optimizer
  from dipy.align.bundlemin import _bundle_minimum_distance, _bundle_minimum_distance_asymmetric, distance_matrix_mdf
  from dipy.tracking.streamline import transform_streamlines, unlist_streamlines, center_streamlines, set_number_of_points, select_random_set_of_streamlines, length, Streamlines
  from dipy.segment.clustering import qbx_and_merge
  from dipy.core.geometry import compose_transformations, compose_matrix, decompose_matrix
  from time import time
label_desc: Use image node_id 2 for calling the BundleMinDistanceMatrixMetric obj's underlying member method code with example usage: obj.distance(xopt) and returns: bundle_min_distance