code: def fastq(args):
      
      from jcvi.formats.fastq import FastqLite
  
      p = OptionParser(fastq.__doc__)
      p.add_option("--qv", type="int",
                   help="Use generic qv value [dafault: %default]")
  
      opts, args = p.parse_args(args)
  
      if len(args) != 1:
          sys.exit(not p.print_help())
  
      fastafile, = args
      fastqfile = fastafile.rsplit(".", 1)[0] + ".fastq"
      fastqhandle = open(fastqfile, "w")
      num_records = 0
  
      if opts.qv is not None:
          qv = chr(ord('!') + opts.qv)
          logging.debug("QV char '{0}' ({1})".format(qv, opts.qv))
      else:
          qv = None
  
      if qv:
          f = Fasta(fastafile, lazy=True)
          for name, rec in f.iteritems_ordered():
              r = FastqLite("@" + name, str(rec.seq).upper(), qv * len(rec.seq))
              print(r, file=fastqhandle)
              num_records += 1
  
      else:
          qualfile = get_qual(fastafile)
          for rec in iter_fasta_qual(fastafile, qualfile):
              SeqIO.write([rec], fastqhandle, "fastq")
              num_records += 1
  
      fastqhandle.close()
      logging.debug("A total of %d records written to `%s`" % \
              (num_records, fastqfile))
docs: %prog fastq fastafile
  
      Generate fastqfile by combining fastafile and fastafile.qual.
      Also check --qv option to use a default qv score.