class_docstr: The GOOD-PCBA dataset. Adapted from `MoleculeNet
  <https://pubs.rsc.org/en/content/articlehtml/2018/sc/c7sc02664a>`_.
  
  Args:
      root (str): The dataset saving root.
      domain (str): The domain selection. Allowed: 'scaffold' and 'size'.
      shift (str): The distributional shift we pick. Allowed: 'no_shift', 'covariate', and 'concept'.
      subset (str): The split set. Allowed: 'train', 'id_val', 'id_test', 'val', and 'test'. When shift='no_shift',
          'id_val' and 'id_test' are not applicable.
      generate (bool): The flag for regenerating dataset. True: regenerate. False: download.
class_docstr_tok: ["The","GOOD-PCBA","dataset",".","Adapted","from","`","MoleculeNet","<","https",":","\/\/pubs.rsc.org\/en\/content\/articlehtml\/2018\/sc\/c7sc02664a",">","`","_",".","Args",":","root","(","str",")",":","The","dataset","saving","root",".","domain","(","str",")",":","The","domain","selection",".","Allowed",":","'scaffold","'","and","'size","'",".","shift","(","str",")",":","The","distributional","shift","we","pick",".","Allowed",":","'no_shift","'",",","'covariate","'",",","and","'concept","'",".","subset","(","str",")",":","The","split","set",".","Allowed",":","'train","'",",","'id_val","'",",","'id_test","'",",","'val","'",",","and","'test","'",".","When","shift='no_shift","'",",","'id_val","'","and","'id_test","'","are","not","applicable",".","generate","(","bool",")",":","The","flag","for","regenerating","dataset",".","True",":","regenerate",".","False",":","download","."]
code: def __init__(
      self,
      root: str,
      domain: str,
      shift: str = "no_shift",
      subset: str = "train",
      transform=None,
      pre_transform=None,
      generate: bool = False,
  ):
      self.name = self.__class__.__name__
      self.mol_name = "PCBA"
      self.domain = domain
      self.metric = "Average Precision"
      self.task = "Binary classification"
      self.url = "https://drive.google.com/file/d/1BGhI153CcJ1wuNAp7nQOhR9jGkmF-jwb/view?usp=sharing"
  
      self.generate = generate
  
      super().__init__(root, transform, pre_transform)
      if shift == "covariate":
          subset_pt = 3
      elif shift == "concept":
          subset_pt = 8
      elif shift == "no_shift":
          subset_pt = 0
      else:
          raise ValueError(f"Unknown shift: {shift}.")
      if subset == "train":
          subset_pt += 0
      elif subset == "val":
          subset_pt += 1
      elif subset == "test":
          subset_pt += 2
      elif subset == "id_val":
          subset_pt += 3
      else:
          subset_pt += 4
  
      self.data, self.slices = torch.load(
          self.processed_paths[subset_pt]
      )
  
file_path: DIG/dig/oodgraph/good_pcba.py
imports: import os
  import os.path
  import gdown
  import torch
  from munch import Munch
  from torch_geometric.data import InMemoryDataset, extract_zip
label_desc: Use image node_id 1 to create a new GOODPCBA object from inherited base classes: InMemoryDataset with example: obj = GOODPCBA(root, domain, shift, subset, transform, pre_transform, generate)