class_docstr: The multiomics data for creating graph dataset.
  See `here <https://pytorch-geometric.readthedocs.io/en/latest/tutorial/create_dataset.html>`__ in PyTorch Geometric
  for the accompanying tutorial.
  
  Args:
      root (string): Root directory where the dataset should be saved.
      num_modalities (int): The total number of modalities in the dataset.
      num_classes (int): The total number of classes in the dataset.
      url (string, optional): The url to download the dataset from.
      raw_file_names (list[callable], optional): The name of the files in the ``self.raw_dir`` folder that must be
          present in order to skip downloading.
      random_split (bool, optional): Whether to split the dataset into random train and test subsets. (default:
          ``False``)
      train_size (float, optional): The proportion of the dataset to include in the train split that should be between
          0.0 and 1.0. This parameter is used when ``random_split`` is ``True``.
      transform (callable, optional): A function/transform that takes in an array_like data and returns a transformed
          version. The data object will be transformed before every access. (default: ``None``)
      pre_transform (callable, optional): A function/transform that takes in an array_like data and returns a
          transformed version. The data object will be transformed before being saved to disk. (default: ``None``)
      target_pre_transform (callable, optional): A function/transform that takes in an array_like of labels and
          returns a transformed version. The label object will be transformed before being saved to disk. (default:
          ``None``)
class_docstr_tok: ["The","multiomics","data","for","creating","graph","dataset",".","See","`","here","<","https",":","\/\/pytorch-geometric.readthedocs.io\/en\/latest\/tutorial\/create_dataset.html",">","`","__","in","PyTorch","Geometric","for","the","accompanying","tutorial",".","Args",":","root","(","string",")",":","Root","directory","where","the","dataset","should","be","saved",".","num_modalities","(","int",")",":","The","total","number","of","modalities","in","the","dataset",".","num_classes","(","int",")",":","The","total","number","of","classes","in","the","dataset",".","url","(","string",",","optional",")",":","The","url","to","download","the","dataset","from",".","raw_file_names","(","list","[","callable","]",",","optional",")",":","The","name","of","the","files","in","the","``","self.raw_dir","``","folder","that","must","be","present","in","order","to","skip","downloading",".","random_split","(","bool",",","optional",")",":","Whether","to","split","the","dataset","into","random","train","and","test","subsets",".","(","default",":","``","False","``",")","train_size","(","float",",","optional",")",":","The","proportion","of","the","dataset","to","include","in","the","train","split","that","should","be","between","0.0","and","1.0",".","This","parameter","is","used","when","``","random_split","``","is","``","True","``",".","transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an","array_like","data","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","every","access",".","(","default",":","``","None","``",")","pre_transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an","array_like","data","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","being","saved","to","disk",".","(","default",":","``","None","``",")","target_pre_transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an","array_like","of","labels","and","returns","a","transformed","version",".","The","label","object","will","be","transformed","before","being","saved","to","disk",".","(","default",":","``","None","``",")"]
docstr: Processes the dataset to the ``self.processed_dir`` folder. This function reads input files, creates a
  ''Data'' object, and saves it into the ''processed_dir''.
docstr_tok: ["Processes","the","dataset","to","the","``","self.processed_dir","``","folder",".","This","function","reads","input","files",",","creates","a","''","Data","''","object",",","and","saves","it","into","the","``","processed_dir","''","."]
code: def process(self) -> None:
      r"""Processes the dataset to the ``self.processed_dir`` folder. This function reads input files, creates a
      ''Data'' object, and saves it into the ''processed_dir''."""
      data_list = []
  
      for modality in range(self.num_modalities):
          if self._random_split:
              full_data = np.loadtxt(
                  self.raw_paths[modality * 2], delimiter=","
              )
              full_labels = np.loadtxt(
                  self.raw_paths[(modality * 2) + 1], delimiter=","
              )
              full_labels = full_labels.astype(int)
  
              train_idx, test_idx = self.get_random_split(
                  full_labels, self._num_classes, self._train_size
              )
              num_train = len(train_idx)
              num_tests = len(test_idx)
          else:
              # The datasets provided here have already been pre-split into training and test sets.
              train_data = np.loadtxt(
                  self.raw_paths[modality * 4], delimiter=","
              )
              train_labels = np.loadtxt(
                  self.raw_paths[(modality * 4) + 1], delimiter=","
              )
              train_labels = train_labels.astype(int)
              num_train = len(train_labels)
              train_idx = torch.tensor(
                  list(range(num_train)), dtype=torch.long
              )
  
              test_data = np.loadtxt(
                  self.raw_paths[(modality * 4) + 2], delimiter=","
              )
              test_labels = np.loadtxt(
                  self.raw_paths[(modality * 4) + 3], delimiter=","
              )
              test_labels = test_labels.astype(int)
              num_tests = len(test_labels)
              test_idx = torch.tensor(
                  list(range(num_train, num_train + num_tests)),
                  dtype=torch.long,
              )
  
              full_data = np.concatenate(
                  (train_data, test_data), axis=0
              )
              full_labels = np.concatenate((train_labels, test_labels))
              full_labels = full_labels.astype(int)
  
          full_data = (
              full_data
              if self.pre_transform is None
              else self.pre_transform(full_data)
          )
          full_labels = (
              full_labels
              if self._target_pre_transform is None
              else self._target_pre_transform(full_labels)
          )
  
          edge_index, edge_weight = self.get_adjacency_info(full_data)
          adj_t = SparseTensor(
              row=edge_index[0], col=edge_index[1], value=edge_weight
          )
  
          data = Data(
              x=full_data,
              edge_index=edge_index,
              edge_weight=edge_weight,
              adj_t=adj_t,
              y=full_labels,
              train_idx=train_idx,
              test_idx=test_idx,
              num_train=num_train,
              num_test=num_tests,
          )
  
          data = self.extend_data(data)
          data_list.append(data)
  
      torch.save(data_list, osp.join(self.processed_dir, "data.pt"))
  
imports: import os.path
  from typing import Callable, List, Optional, Tuple, Union
  import numpy
  import torch
  import torch.nn.functional
  from torch_geometric.data import Data, Dataset, download_url, extract_zip
  from torch_sparse import SparseTensor
  from kale.utils.distance import calculate_distance, DistanceMetric
label_desc: Use image node_id 5 for calling the MultiomicsDataset obj's underlying member method code with example usage: obj.process() without return types