docs: def start_fitting(self):
          """
          Launches the fitting routine on another thread
          """
          self.queue = queue.Queue()
          self.peak_vals = []
          self.fit_thread = QThread() #must be assigned as an instance variable, not local, as otherwise thread is garbage
                                      #collected immediately at the end of the function before it runs
          self.fitobj = self.do_fit(str(self.data_filepath.text()), self.matplotlibwidget, self.queue, self.peak_vals, self.peak_locs)
          self.fitobj.moveToThread(self.fit_thread)
          self.fit_thread.started.connect(self.fitobj.run)
          self.fitobj.finished.connect(self.fit_thread.quit)  # clean up. quit thread after script is finished
          self.fitobj.status.connect(self.update_status)
          self.fit_thread.start()