class_docstr: A `Pytorch Geometric <https://pytorch-geometric.readthedocs.io/en/latest/index.html>`_ data interface for :obj:`QM9` dataset 
  which is from `"Quantum chemistry structures and properties of 134 kilo molecules" <https://www.nature.com/articles/sdata201422>`_ paper.
  It connsists of about 130,000 equilibrium molecules with 12 regression targets: 
  :obj:`mu`, :obj:`alpha`, :obj:`homo`, :obj:`lumo`, :obj:`gap`, :obj:`r2`, :obj:`zpve`, :obj:`U0`, :obj:`U`, :obj:`H`, :obj:`G`, :obj:`Cv`.
  Each molecule includes complete spatial information for the single low energy conformation of the atoms in the molecule.
  
  .. note::
      We used the processed data in `DimeNet <https://github.com/klicperajo/dimenet/tree/master/data>`_, wihch includes spatial information and type for each atom.
      You can also use `QM9 in Pytorch Geometric <https://pytorch-geometric.readthedocs.io/en/latest/_modules/torch_geometric/datasets/qm9.html#QM9>`_.
  
  
  Args:
      root (string): the dataset folder will be located at root/qm9.
      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`)
  
  Example:
  --------
  
  >>> dataset = QM93D()
  >>> target = 'mu'
  >>> dataset.data.y = dataset.data[target]
  >>> split_idx = dataset.get_idx_split(len(dataset.data.y), train_size=110000, valid_size=10000, seed=42)
  >>> train_dataset, valid_dataset, test_dataset = dataset[split_idx['train']], dataset[split_idx['valid']], dataset[split_idx['test']]
  >>> train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
  >>> data = next(iter(train_loader))
  >>> data
  Batch(Cv=[32], G=[32], H=[32], U=[32], U0=[32], alpha=[32], batch=[579], gap=[32], homo=[32], lumo=[32], mu=[32], pos=[579, 3], ptr=[33], r2=[32], y=[32], z=[579], zpve=[32])
  
  Where the attributes of the output data indicates:
  
  * :obj:`z`: The atom type.
  * :obj:`pos`: The 3D position for atoms.
  * :obj:`y`: The target property for the graph (molecule).
  * :obj:`batch`: The assignment vector which maps each node to its respective graph identifier and can help reconstructe single graphs
class_docstr_tok: ["A","`","Pytorch","Geometric","<","https",":","\/\/pytorch-geometric.readthedocs.io\/en\/latest\/index.html",">","`","_","data","interface","for",":","obj",":","`","QM9","`","dataset","which","is","from","`","``","Quantum","chemistry","structures","and","properties","of","134","kilo","molecules","''","<","https",":","\/\/www.nature.com\/articles\/sdata201422",">","`","_","paper",".","It","connsists","of","about","130,000","equilibrium","molecules","with","12","regression","targets",":",":","obj",":","`","mu","`",",",":","obj",":","`","alpha","`",",",":","obj",":","`","homo","`",",",":","obj",":","`","lumo","`",",",":","obj",":","`","gap","`",",",":","obj",":","`","r2","`",",",":","obj",":","`","zpve","`",",",":","obj",":","`","U0","`",",",":","obj",":","`","U","`",",",":","obj",":","`","H","`",",",":","obj",":","`","G","`",",",":","obj",":","`","Cv","`",".","Each","molecule","includes","complete","spatial","information","for","the","single","low","energy","conformation","of","the","atoms","in","the","molecule",".","..","note",":",":","We","used","the","processed","data","in","`","DimeNet","<","https",":","\/\/github.com\/klicperajo\/dimenet\/tree\/master\/data",">","`","_",",","wihch","includes","spatial","information","and","type","for","each","atom",".","You","can","also","use","`","QM9","in","Pytorch","Geometric","<","https",":","\/\/pytorch-geometric.readthedocs.io\/en\/latest\/_modules\/torch_geometric\/datasets\/qm9.html","#","QM9",">","`","_",".","Args",":","root","(","string",")",":","the","dataset","folder","will","be","located","at","root\/qm9",".","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","`",")","Example",":","--","--","--","--",">",">",">","dataset","=","QM93D","(",")",">",">",">","target","=","'mu'",">",">",">","dataset.data.y","=","dataset.data","[","target","]",">",">",">","split_idx","=","dataset.get_idx_split","(","len","(","dataset.data.y",")",",","train_size=110000",",","valid_size=10000",",","seed=42",")",">",">",">","train_dataset",",","valid_dataset",",","test_dataset","=","dataset","[","split_idx","[","'train","'","]","]",",","dataset","[","split_idx","[","'valid","'","]","]",",","dataset","[","split_idx","[","'test","'","]","]",">",">",">","train_loader","=","DataLoader","(","train_dataset",",","batch_size=32",",","shuffle=True",")",">",">",">","data","=","next","(","iter","(","train_loader",")",")",">",">",">","data","Batch","(","Cv=","[","32","]",",","G=","[","32","]",",","H=","[","32","]",",","U=","[","32","]",",","U0=","[","32","]",",","alpha=","[","32","]",",","batch=","[","579","]",",","gap=","[","32","]",",","homo=","[","32","]",",","lumo=","[","32","]",",","mu=","[","32","]",",","pos=","[","579",",","3","]",",","ptr=","[","33","]",",","r2=","[","32","]",",","y=","[","32","]",",","z=","[","579","]",",","zpve=","[","32","]",")","Where","the","attributes","of","the","output","data","indicates",":","*",":","obj",":","`","z","`",":","The","atom","type",".","*",":","obj",":","`","pos","`",":","The","3D","position","for","atoms",".","*",":","obj",":","`","y","`",":","The","target","property","for","the","graph","(","molecule",")",".","*",":","obj",":","`","batch","`",":","The","assignment","vector","which","maps","each","node","to","its","respective","graph","identifier","and","can","help","reconstructe","single","graphs"]
code: def __init__(
      self,
      root="dataset/",
      transform=None,
      pre_transform=None,
      pre_filter=None,
  ):
      self.url = "https://github.com/klicperajo/dimenet/raw/master/data/qm9_eV.npz"
      self.folder = osp.join(root, "qm9")
  
      super(QM93D, self).__init__(
          self.folder, transform, pre_transform, pre_filter
      )
  
      self.data, self.slices = torch.load(self.processed_paths[0])
  
file_path: DIG/dig/threedgraph/dataset/PygQM93D.py
imports: import os.path
  import numpy
  from tqdm import tqdm
  import torch
  from sklearn.utils import shuffle
  from torch_geometric.data import InMemoryDataset, download_url
  from torch_geometric.data import Data, DataLoader
label_desc: Use image node_id 1 to create a new QM93D object from inherited base classes: InMemoryDataset with example: obj = QM93D(root, transform, pre_transform, pre_filter)