Streams a FASTQ file as rows: one row per record with columns id, desc,
seq, and qual (the raw quality string, same length as seq). id and
desc are split from the header as in tbl_fasta(). Records stream one
batch at a time, so a read set larger than RAM never fully materializes.
Gzip-compressed files (.fastq.gz, .fq.gz) are read transparently. No data
is read until collect() is called.
Details
Records are parsed in the standard four-line form (header, sequence, +
separator, quality). A record cut short — a missing sequence, separator, or
quality line, or a quality string whose length does not match the sequence
— is a loud error, not a silent drop. When the scan reaches the end of the
file it reports the number of records read (suppress with quiet = TRUE).