docs: def add_read(self, read_number, read_id, start_time, duration, mux, median_before):
          """ Add a new read to the file.
  
          :param read_number: The read number to assign to the read.
          :param read_id: The unique read-id for the read.
          :param start_time: The start time (in samples) of the read.
          :param duration: The duration (in samples) of the read.
          :param mux: The mux set at the time of the read.
          :param median_before: The median level of the data before the read.
  
          Note that most tools assume a file contains only one read.
          Putting multiple reads into a file severely limits the
          ability to operate on those reads with standard tools.
          """
          self.assert_writeable()
          read_info = ReadInfo(read_number, read_id, start_time, duration, mux=mux, median_before=median_before)
          self.status.read_info.append(read_info)
          n = len(self.status.read_info) - 1
          self.status.read_number_map[read_number] = n
          self.status.read_id_map[read_id] = n
          group_name = 'Raw/Reads/Read_{}'.format(read_number)
          attrs = {'read_number': read_number,
                   'read_id': read_id,
                   'start_time': start_time,
                   'duration': duration,
                   'start_mux': mux,
                   'median_before': median_before}
          self._add_group(group_name, attrs)