code: def do_sample(self, x):
      self.reset()
      g_for_surgery = nx.DiGraph(self.g)
      g_modified = self.do_x_surgery(g_for_surgery, x)
      self._df = self.make_intervention_effective(x)
      g_modified, trace = self.sample_prior_causal_model(
          g_modified,
          self._df,
          self._variable_types,
          initialization_trace=self.fit_trace,
      )
      for col in self._df:
          if col in trace and col not in self._treatment_names:
              self._df[col] = trace[col]
      return self._df.copy()
  
file_path: dowhy/dowhy/do_samplers/mcmc_sampler.py
imports: from typing import List
  import networkx
  import numpy
  import pymc3
  from dowhy import EstimandType
  from dowhy.do_sampler import DoSampler
label_desc: Use image node_id 10 for calling the McmcSampler obj's underlying member method code with example usage: obj.do_sample(x) and returns: self