class_docstr: A `Pytorch Geometric <https://pytorch-geometric.readthedocs.io/en/latest/index.html>`_ data interface for datasets used in molecule generation.
  
  .. note::
      When creating data loaders of this dataset class, only dig.ggraph3D.dataset.collate_fn can be used as the collate function.
  
  Args:
      root (string, optional): Root directory where the dataset should be saved. (default: :obj:`./`)
      subset_idxs (list, optional): if it is not None, only the data located 
          at the indexs in subset_idxs of the dataset will be sampled.
          (default: :obj:`None`)
      transform (callable, optional): A function/transform that takes in an
          :obj:`torch_geometric.data.Data` object and returns a transformed
          version. The data object will be transformed before every access.
          (default: :obj:`None`)
      pre_transform (callable, optional): A function/transform that takes in
          an :obj:`torch_geometric.data.Data` object and returns a
          transformed version. The data object will be transformed before
          being saved to disk. (default: :obj:`None`)
      pre_filter (callable, optional): A function that takes in an
          :obj:`torch_geometric.data.Data` object and returns a boolean
          value, indicating whether the data object should be included in the
          final dataset. (default: :obj:`None`)
code: def __init__(
      self,
      root="./qm9_3Dgen",
      subset_idxs=None,
      transform=None,
      pre_transform=None,
      pre_filter=None,
  ):
      super(QM93DGEN, self).__init__(
          root, transform, pre_transform, pre_filter
      )
      self.root = root
      if not osp.exists(self.raw_paths[0]):
          self.download()
      if osp.exists(self.processed_paths[0]):
          (
              self.atom_type_list,
              self.position_list,
              self.con_mat_list,
          ) = torch.load(self.processed_paths[0])
      else:
          self.process()
      self._indices = (
          subset_idxs
          if subset_idxs is not None
          else range(len(self.atom_type_list))
      )
  
imports: import os
  import os.path
  import numpy
  import torch
  import networkx
  from networkx.algorithms import tree
  from math import pi
  from rdkit import Chem
  from rdkit.Chem.rdchem import BondType
  from torch_geometric.data import Data, InMemoryDataset, download_url, extract_tar
label_desc: Use image node_id 1 to create a new QM93DGEN object from inherited base classes: InMemoryDataset with example: obj = QM93DGEN(root, subset_idxs, transform, pre_transform, pre_filter)