code: def read_atoms(
      file: str, chunk_size: int
  ) -> Tuple[np.ndarray, np.ndarray]:
      import pandas as pd
  
      def skipheaders(i: int) -> bool:
          return i % chunk_size == 0 or (i - 1) % chunk_size == 0
  
      dtypes = {
          "atom": "string",
          "x": np.float16,
          "y": np.float16,
          "z": np.float16,
      }
      df = pd.read_table(
          file,
          sep=r"\s+",
          names=list(dtypes.keys()),
          dtype=dtypes,
          skiprows=skipheaders,
          memory_map=True,
      )
  
      z = np.ones(len(df), dtype=np.int8)
      z[(df.atom == "O").to_numpy(dtype=np.bool_)] = 8
      pos = df.iloc[:, 1:4].to_numpy()
      num_nodes = chunk_size - 2
      num_graphs = z.shape[0] // num_nodes
      z.shape = (num_graphs, num_nodes)
      pos.shape = (num_graphs, num_nodes, 3)
      return (z, pos)
  
imports: import copy
  import os
  import os.path
  from dataclasses import dataclass
  from functools import cached_property
  from glob import glob
  from pathlib import Path
  from typing import Callable, List, MutableSequence, Optional, Tuple, Union
  import numpy
  import torch
  from torch.utils.data import ConcatDataset, Subset
  from torch_geometric.data import Data, InMemoryDataset, download_url, extract_zip
  from torch_geometric.data.data import BaseData
label_desc: Use image node_id 3 for calling a global function with example usage: read_atoms(file, chunk_size) and returns: z,  pos, unknown