FASTQ.Record and FASTA.Record stores its data as Vector{UInt8}. Accessing the data, like identifier, quality etc, however, copy the data and return new heap-allocation structs.
I think it would be nicer if all these functions returned views into the original data by default:
It's faster, and that really does matter for FASTX data
I think it makes mores sense semtantically: "This is the identifier of the record", not a copy of the identifier.
For strings, we can use the StringView package. For quality and sequences, we can have lazy iterator functions.
FASTQ.Record
andFASTA.Record
stores its data asVector{UInt8}
. Accessing the data, likeidentifier
,quality
etc, however, copy the data and return new heap-allocation structs.I think it would be nicer if all these functions returned views into the original data by default:
For strings, we can use the
StringView
package. Forquality
and sequences, we can have lazy iterator functions.We might also want to do this for XAM.jl.