code: def query(self, query, k):
      timer = utils.Timer(
          f"Finding {k} nearest neighbors in existing embedding using NN Descent "
          f"approxmimate search...",
          self.verbose,
      )
      timer.__enter__()
  
      indices, distances = self.index.query(query, k=k)
  
      timer.__exit__()
  
      return indices, distances
  
imports: import logging
  import os
  import warnings
  import numpy
  from scipy.spatial.distance import cdist
  from sklearn import neighbors
  from sklearn.utils import check_random_state
  from openTSNE import utils
label_desc: Use image node_id 4 for calling the NNDescent obj's underlying member method code with example usage: obj.query(query, k) and returns: indices,  distances