code: def iter_fasta(file_path):
      
      fh = open(file_path)
  
      # ditch the boolean (x[0]) and just keep the header or sequence since
      # we know they alternate.
      faiter = (x[1] for x in groupby(fh, lambda line: line[0] == ">"))
  
      for header in faiter:
          # drop the ">"
          headerStr = header.__next__()[1:].strip()
          # join all sequence lines to one.
          seq = "".join(s.strip() for s in faiter.__next__())
          yield (headerStr, seq)
docs: Returns an iterator over the fasta file
  
      Given a fasta file. yield tuples of header, sequence
  
      Code modified from Brent Pedersen's:
      "Correct Way To Parse A Fasta File In Python"
  
  
      # Example
  
          ```python
              fasta = fasta_iter("hg19.fa")
              for header, seq in fasta:
                 print(header)
          ```