class_docstr: Test reload for datasets.
docstr: Loads or reloads a small version of MUV dataset.
docstr_tok: ["Loads","or","reloads","a","small","version","of","MUV","dataset","."]
code: def _run_muv_experiment(self, dataset_file, reload=False):
      """Loads or reloads a small version of MUV dataset."""
      # Load MUV dataset
      logger.info("About to featurize compounds")
      featurizer = dc.feat.CircularFingerprint(size=1024)
      raw_dataset = dc.utils.data_utils.load_from_disk(dataset_file)
      MUV_tasks = [
          "MUV-692",
          "MUV-689",
          "MUV-846",
          "MUV-859",
          "MUV-644",
          "MUV-548",
          "MUV-852",
          "MUV-600",
          "MUV-810",
          "MUV-712",
          "MUV-737",
          "MUV-858",
          "MUV-713",
          "MUV-733",
          "MUV-652",
          "MUV-466",
          "MUV-832",
      ]
      loader = dc.data.CSVLoader(
          tasks=MUV_tasks, feature_field="smiles", featurizer=featurizer
      )
      dataset = loader.create_dataset(dataset_file)
      assert len(dataset) == len(raw_dataset)
  
      logger.info("About to split compounds into train/valid/test")
      splitter = dc.splits.ScaffoldSplitter()
      frac_train, frac_valid, frac_test = 0.8, 0.1, 0.1
      (
          train_dataset,
          valid_dataset,
          test_dataset,
      ) = splitter.train_valid_test_split(
          dataset,
          log_every_n=1000,
          frac_train=frac_train,
          frac_test=frac_test,
          frac_valid=frac_valid,
      )
      # Do an approximate comparison since splits are sometimes slightly off from
      # the exact fraction.
      assert math.isclose(
          len(train_dataset), frac_train * len(dataset), rel_tol=1e-3
      )
      assert math.isclose(
          len(valid_dataset), frac_valid * len(dataset), rel_tol=1e-3
      )
      assert math.isclose(
          len(test_dataset), frac_test * len(dataset), rel_tol=1e-3
      )
  
      # TODO(rbharath): Transformers don't play nice with reload! Namely,
      # reloading will cause the transform to be reapplied. This is undesirable in
      # almost all cases. Need to understand a method to fix this.
      transformers = [
          dc.trans.BalancingTransformer(dataset=train_dataset)
      ]
      logger.info("Transforming datasets")
      for dataset in [train_dataset, valid_dataset, test_dataset]:
          for transformer in transformers:
              dataset = transformer.transform(dataset)
  
      return (len(train_dataset), len(valid_dataset), len(test_dataset))
  
file_path: deepchem/deepchem/data/tests/test_reload.py
imports: import os
  import math
  import logging
  import unittest
  import deepchem
label_desc: Use image node_id 1 for calling the TestReload obj's underlying member method code with example usage: obj._run_muv_experiment(dataset_file, reload) and returns: len,  len,  len