code: def aligned_read_to_read(read, revcomp=True, qual=None, ignore_quality=False):
      '''Returns Fasta or Fastq sequence from pysam aligned read'''
      if read.qual is None or ignore_quality:
          if qual is None or ignore_quality:
              seq = pyfastaq.sequences.Fasta(read.qname, common.decode(read.seq))
          else:
              seq = pyfastaq.sequences.Fastq(read.qname, common.decode(read.seq), qual * read.query_length)
      else:
          if qual is None:
              seq = pyfastaq.sequences.Fastq(read.qname, common.decode(read.seq), common.decode(read.qual))
          else:
              seq = pyfastaq.sequences.Fastq(read.qname, common.decode(read.seq), qual * read.query_length)
  
      if read.is_reverse and revcomp:
          seq.revcomp()
  
      return sef aligned_read_to_read(read, revcomp=True, qual=None, ignore_quality=False):
      '''Returns Fasta or Fastq sequence from pysam aligned read'''
      if read.qual is None or ignore_quality:
          if qual is None or ignore_quality:
              seq = pyfastaq.sequences.Fasta(read.qname, common.decode(read.seq))
          else:
              seq = pyfastaq.sequences.Fastq(read.qname, common.decode(read.seq), qual * read.query_length)
      else:
          if qual is None:
              seq = pyfastaq.sequences.Fastq(read.qname, common.decode(read.seq), common.decode(read.qual))
          else:
              seq = pyfastaq.sequences.Fastq(read.qname, common.decode(read.seq), qual * read.query_length)
  
      if read.is_reverse and revcomp:
          seq.revcomp()
  
      return seq
docs: Returns Fasta or Fastq sequence from pysam aligned read