docs: def find_unpaired_reads(fastq_directory, forward_id='_R1', reverse_id='_R2', find_fasta=False):
      """
      Looks at a directory to find unpaired fastq files.
      :param fastq_directory: Complete path to directory containing fastq files.
      :param forward_id: Identifier for forward reads. Default _R1.
      :param reverse_id: Identifier for forward reads. Default _R2.
      :param find_fasta: If False, will look for fastq files. Otherwise, looks for Fasta files.
      :return: List of files that appear to be unpaired reads.
      """
      read_list = list()
      if find_fasta is False:
          fastq_files = glob.glob(os.path.join(fastq_directory, '*.f*q*'))
      else:
          # Very misnamed!
          fastq_files = glob.glob(os.path.join(fastq_directory, '*.f*a*'))
      for name in sorted(fastq_files):
          # Iterate through files, adding them to our list of unpaired reads if:
          # 1) They don't have the forward identifier or the reverse identifier in their name.
          # 2) They have forward but the reverse isn't there.
          # 3) They have reverse but the forward isn't there.
          if forward_id not in name and reverse_id not in name:
              read_list.append([name])
          elif forward_id in name and not os.path.isfile(name.replace(forward_id, reverse_id)):
              read_list.append([name])
          elif reverse_id in name and not os.path.isfile(name.replace(reverse_id, forward_id)):
              read_list.append([name])
      return read_list