def METHOD_NAME(self):
    from scipy.io import loadmat
    mat = loadmat(self.raw_paths[0])
    A = mat['A'].tocsr().tocoo()
    row = torch.from_numpy(A.row).to(torch.long)
    col = torch.from_numpy(A.col).to(torch.long)
    edge_index = torch.stack([row, col], dim=0)
    metadata = torch.from_numpy(mat['local_info'].astype('int64'))
    xs = []
    y = metadata[:, 1] - 1  # gender label, -1 means unlabeled
    x = torch.cat([metadata[:, :1], metadata[:, 2:]], dim=-1)
    for i in range(x.size(1)):
        _, out = x[:, i].unique(return_inverse=True)
        xs.append(one_hot(out))
    x = torch.cat(xs, dim=-1)
    data = Data(x=x, edge_index=edge_index, y=y)
    if self.name in self.splits:
        splits = np.load(self.raw_paths[1], allow_pickle=True)
        sizes = (data.num_nodes, len(splits))
        data.train_mask = torch.zeros(sizes, dtype=torch.bool)
        data.val_mask = torch.zeros(sizes, dtype=torch.bool)
        data.test_mask = torch.zeros(sizes, dtype=torch.bool)
        for i, split in enumerate(splits):
            data.train_mask[:, i][torch.tensor(split['train'])] = True
            data.val_mask[:, i][torch.tensor(split['valid'])] = True
            data.test_mask[:, i][torch.tensor(split['test'])] = True
    return data