docs: def _do_subread_set(flag,input_file,of,negative_filter,aligned):
      best = {}
      cmd = 'samtools view '+flag+' '+input_file
      sys.stderr.write(cmd+"\n")
      p = Popen(cmd.split(),stdout=PIPE)
      z = 0
      for line in p.stdout:
        z += 1
        if z%10000==0: sys.stderr.write(str(z) + " subread alignment paths scanned for alignment length\r")
        pbname = PacBioReadName(_nameprog.match(line).group(1))
        mol = pbname.get_molecule()
        if mol in negative_filter: continue
        name = pbname.name()
        sam = SAM(line)
        c = 0 # aligned base count if we are aligned, subread length if we are not aligned
        if aligned:
          c = sam.get_aligned_bases_count()
        else:
          c = sam.get_query_length()
        if mol not in best:
          best[mol] = [name,c]
        if c > best[mol][1]: best[mol] = [name,c]
      p.communicate()
      sys.stderr.write("\n")
      sys.stderr.write("Finished analyzing subread lengths\nWriting aligned subreads\n")
      """After getting all the best alignment counts we can traverse again
         to keep the best"""
      cmd = 'samtools view '+flag+' '+input_file
      sys.stderr.write(cmd+"\n")
      z = 0
      p = Popen(cmd.split(),stdout=PIPE)
      for line in p.stdout:
        z += 1
        if z%10000==0: sys.stderr.write(str(z) + " subreads alignment paths scanned during selected for best\r")
        pbname = PacBioReadName(_nameprog.match(line).group(1))
        mol = pbname.get_molecule()
        name = pbname.name()
        if mol in negative_filter: continue
        if not best[mol][0] == name: continue
        of.write(line)
      p.communicate()
      for mol in best: negative_filter.add(mol)
      sys.stderr.write("\n")
      sys.stderr.write("molecules written: "+str(len(negative_filter))+"\n")
      return negative_filter