def METHOD_NAME(self):
    y_map = {}
    data_list = []
    split_slices = [0]
    for split in ['train', 'val', 'test']:
        with open(osp.join(self.raw_paths[1], f'{split}.txt'), 'r') as f:
            filenames = f.read().split('\n')[:-1]
            split_slices.append(split_slices[-1] + len(filenames))
        for filename in filenames:
            path = osp.join(self.raw_paths[0], f'{filename}.edgelist')
            malware_type = filename.split('/')[0]
            y = y_map.setdefault(malware_type, len(y_map))
            with open(path, 'r') as f:
                edges = f.read().split('\n')[5:-1]
            edge_index = [[int(s) for s in edge.split()] for edge in edges]
            edge_index = torch.tensor(edge_index).t().contiguous()
            num_nodes = int(edge_index.max()) + 1
            data = Data(edge_index=edge_index, y=y, num_nodes=num_nodes)
            data_list.append(data)
    if self.pre_filter is not None:
        data_list = [data for data in data_list if self.pre_filter(data)]
    if self.pre_transform is not None:
        data_list = [self.pre_transform(data) for data in data_list]
    torch.save(self.collate(data_list), self.processed_paths[0])
    torch.save(split_slices, self.processed_paths[1])