docs: def parse_single_data(self, path, cols, selected_region_data, selected_values, full_load):
          """
          Parses a single region data file
          :param path: path to the file
          :param cols: the column names coming from the schema file
          :param selected_region_data: the selected of the region data to be parsed
          In most cases the analyst only needs a small subset of the region data
          :param selected_values: the selected values to be put in the matrix cells
          :param full_load: Specifies the method of parsing the data. If False then parser omits the parsing of zero(0)
              values in order to speed up and save memory. However, while creating the matrix, those zero values are going to be put into the matrix.
              (unless a row contains "all zero columns". This parsing is strongly recommended for sparse datasets.
              If the full_load parameter is True then all the zero(0) data are going to be read.
          :return: the dataframe containing the region data
          """
          # reads a sample file
          df = pd.read_table(path, engine='c', sep="\t", lineterminator="\n", header=None)
          df.columns = cols  # column names from schema
          df = df[selected_region_data]
  
          if not full_load:
              if type(selected_values) is list:
                  df_2 = pd.DataFrame(dtype=float)
                  for value in selected_values:
                      df_3 = df.loc[df[value] != 0]
                      df_2 = pd.concat([df_2, df_3], axis=0)
                  df = df_2
              else:
                  df = df.loc[df[selected_values] != 0]
  
          sample = self._get_sample_name(path)
          df['sample'] = sample
          return df