code: def scrobble_data_dir(dataDir, sampleMap, outF, qualF=None, idopt=None,
                        utf16=False):
      
      seqcount = 0
      outfiles = [osp.split(outF.name)[1]]
      if qualF:
          outfiles.append(osp.split(qualF.name)[1])
  
      for item in os.listdir(dataDir):
          if item in outfiles or not osp.isfile(os.path.join(dataDir, item)):
              continue
          # FASTA files
          if osp.splitext(item)[1] in file_types['fasta']:
              fh = open_enc(os.path.join(dataDir, item), utf16)
              records = SeqIO.parse(fh, 'fasta')
              for record in records:
                  if isinstance(idopt, tuple):
                      sep, field = idopt
                      sampleID = record.id.split(sep)[field - 1]
                  else:
                      sampleID = osp.splitext(item)[0]
                  record.seq = (sampleMap[sampleID].barcode +
                                sampleMap[sampleID].primer +
                                record.seq)
                  SeqIO.write(record, outF, 'fasta')
                  seqcount += 1
              fh.close()
          # QUAL files
          elif qualF and osp.splitext(item)[1] in file_types['qual']:
              fh = open_enc(os.path.join(dataDir, item), utf16)
              records = SeqIO.parse(fh, 'qual')
              for record in records:
                  mi = sampleMap[sampleMap.keys()[0]]
                  quals = [40 for _ in range(len(mi.barcode) + len(mi.primer))]
                  record.letter_annotations['phred_quality'][0:0] = quals
                  SeqIO.write(record, qualF, 'qual')
              fh.close()
      return seqcount
docs: Given a sample ID and a mapping, modify a Sanger FASTA file
      to include the barcode and 'primer' in the sequence data
      and change the description line as needed.