docs: def _split_sequences_singletraj(dtraj, nstates, lag):
      """ splits the discrete trajectory into conditional sequences by starting state
  
      Parameters
      ----------
      dtraj : int-iterable
          discrete trajectory
      nstates : int
          total number of discrete states
      lag : int
          lag time
  
      """
      sall = [[] for _ in range(nstates)]
      res_states = []
      res_seqs = []
  
      for t in range(len(dtraj)-lag):
          sall[dtraj[t]].append(dtraj[t+lag])
  
      for i in range(nstates):
          if len(sall[i]) > 0:
              res_states.append(i)
              res_seqs.append(np.array(sall[i]))
      return res_states, res_seqs