original_docstring: 
      Multi-docking protocol: Here is where the alignment is actually made. 
      This method aligns each of the K prematched decoy patches to the target using tehe
      RANSAC algorithm followed by icp
      
docstring: Multi-docking protocol: Here is where the alignment is actually made.
  This method aligns each of the K prematched decoy patches to the target using tehe
  RANSAC algorithm followed by icp
docstring_tokens: Multi - docking protocol : Here is where the alignment is actually made . This method aligns each of the K prematched decoy patches to the target using tehe RANSAC algorithm followed by icp
code: def multidock(
      source_pcd, # the candidate 'decoy' patches
      source_patch_coords, # The geodesic coordinates of the decoy patches
      source_descs, # The source descriptors
      cand_pts, # The central vertex of the candidate patches.
      target_pcd, # The target patch's point cloud
      target_descs, # The descriptors for the target patch
      target_ckdtree, # A kd-tree for the target patch for fast searches. 
      ransac_radius=1.0, # The radius fro RANSAC inliers.
  ):
      """
      Multi-docking protocol: Here is where the alignment is actually made. 
      This method aligns each of the K prematched decoy patches to the target using tehe
      RANSAC algorithm followed by icp
      """
      all_results = []
      all_source_patch = []
      all_source_scores = []
      patch_time = 0.0
      ransac_time = 0.0
      transform_time = 0.0
      score_time = 0.0
      for pt in cand_pts:
          source_patch, source_patch_descs = get_patch_geo(
              source_pcd, source_patch_coords, pt, source_descs
          )
  
          # Align the two patches
          result = registration_ransac_based_on_feature_matching(
              source_patch,
              target_pcd,
              source_patch_descs,
              target_descs,
              ransac_radius,
              TransformationEstimationPointToPoint(False),
              3,
              [
                  CorrespondenceCheckerBasedOnEdgeLength(0.9),
                  CorrespondenceCheckerBasedOnDistance(1.5),
                  CorrespondenceCheckerBasedOnNormal(np.pi / 2),
              ],
              RANSACConvergenceCriteria(ransac_iter, 500)
          )
          # Optimize the alignment using RANSAC.
          result = registration_icp(source_patch, target_pcd, 
              1.0, result.transformation, TransformationEstimationPointToPlane(),
              )
  
          source_patch.transform(result.transformation)
          all_results.append(result)
          all_source_patch.append(source_patch)
  
          # Compute the neural network score for each alignment.
          source_scores = compute_nn_score(
              target_ckdtree,
              target_pcd, 
              source_patch,
              target_descs,
              source_patch_descs
          )
          all_source_scores.append(source_scores)
  
      return all_results, all_source_patch, all_source_scores
code_tokens: def multidock ( source_pcd , source_patch_coords , source_descs , cand_pts , target_pcd , target_descs , target_ckdtree , ransac_radius = 1.0 , ) : all_results = [ ] all_source_patch = [ ] all_source_scores = [ ] patch_time = 0.0 ransac_time = 0.0 transform_time = 0.0 score_time = 0.0 for pt in cand_pts : source_patch , source_patch_descs = get_patch_geo ( source_pcd , source_patch_coords , pt , source_descs ) result = registration_ransac_based_on_feature_matching ( source_patch , target_pcd , source_patch_descs , target_descs , ransac_radius , TransformationEstimationPointToPoint ( False ) , 3 , [ CorrespondenceCheckerBasedOnEdgeLength ( 0.9 ) , CorrespondenceCheckerBasedOnDistance ( 1.5 ) , CorrespondenceCheckerBasedOnNormal ( np . pi / 2 ) , ] , RANSACConvergenceCriteria ( ransac_iter , 500 ) ) result = registration_icp ( source_patch , target_pcd , 1.0 , result . transformation , TransformationEstimationPointToPlane ( ) , ) source_patch . transform ( result . transformation ) all_results . append ( result ) all_source_patch . append ( source_patch ) source_scores = compute_nn_score ( target_ckdtree , target_pcd , source_patch , target_descs , source_patch_descs ) all_source_scores . append ( source_scores ) return all_results , all_source_patch , all_source_scores
short_docstring: Multi-docking protocol: Here is where the alignment is actually made.
short_docstring_tokens: Multi - docking protocol : Here is where the alignment is actually made .
comment: # the candidate 'decoy' patches$SEP$# The geodesic coordinates of the decoy patches$SEP$# The source descriptors$SEP$# The central vertex of the candidate patches.$SEP$# The target patch's point cloud$SEP$# The descriptors for the target patch$SEP$# A kd-tree for the target patch for fast searches. $SEP$# The radius fro RANSAC inliers.$SEP$"""
      Multi-docking protocol: Here is where the alignment is actually made. 
      This method aligns each of the K prematched decoy patches to the target using tehe
      RANSAC algorithm followed by icp
      """$SEP$# Align the two patches$SEP$# Optimize the alignment using RANSAC.$SEP$# Compute the neural network score for each alignment.