code: def __init__(self, data, vocab, training=True):
      self.dir = get_download_dir()
      self.zip_file_path = "{}/jtnn.zip".format(self.dir)
  
      download(
          _get_dgl_url("dgllife/jtnn.zip"), path=self.zip_file_path
      )
      extract_archive(self.zip_file_path, "{}/jtnn".format(self.dir))
      print("Loading data...")
      data_file = "{}/jtnn/{}.txt".format(self.dir, data)
      with open(data_file) as f:
          self.data = [line.strip("\r\n ").split()[0] for line in f]
      self.vocab_file = "{}/jtnn/{}.txt".format(self.dir, vocab)
      print("Loading finished.")
      print("\tNum samples:", len(self.data))
      print("\tVocab file:", self.vocab_file)
      self.training = training
      self.vocab = Vocab(
          [x.strip("\r\n ") for x in open(self.vocab_file)]
      )
  
file_path: dgl/examples/pytorch/jtnn/jtnn/datautils.py
imports: import dgl
  import torch
  from dgl.data.utils import _get_dgl_url, download, extract_archive, get_download_dir
  from torch.utils.data import Dataset
  from .jtmpn import ATOM_FDIM, BOND_FDIM, mol2dgl_single
  from .mol_tree import Vocab
  from .mol_tree_nx import DGLMolTree
  from .mpn import mol2dgl_single
label_desc: Use image node_id 1 to create a new JTNNDataset object from inherited base classes: Dataset with example: obj = JTNNDataset(data, vocab, training)