From 7ca0dcb66cf0ad63b69cc839f897755236e4cb63 Mon Sep 17 00:00:00 2001 From: Koeng101 Date: Sun, 13 Aug 2023 12:12:43 -0700 Subject: [PATCH] Updated fastq to solve #325 and #323 (#326) --- io/fastq/fastq.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/io/fastq/fastq.go b/io/fastq/fastq.go index 02aedf61..30ee2ee5 100644 --- a/io/fastq/fastq.go +++ b/io/fastq/fastq.go @@ -21,7 +21,6 @@ import ( "math" "os" "strings" - "unsafe" ) /****************************************************************************** @@ -207,7 +206,7 @@ func (parser *Parser) ParseNext() (Fastq, int64, error) { Identifier: seqIdentifier, Optionals: optionals, Quality: quality, - Sequence: *(*string)(unsafe.Pointer(&sequence)), // Stdlib strings.Builder.String() does this so it *should* be safe. + Sequence: string(sequence), // Stdlib strings.Builder.String() does this so it *should* be safe. } // Gotten to this point err is non-nil only in EOF case. // We report this error to note the fastq may be incomplete/corrupt @@ -264,6 +263,12 @@ func Build(fastqs []Fastq) ([]byte, error) { for _, fastq := range fastqs { fastqString.WriteString("@") fastqString.WriteString(fastq.Identifier) + for key, val := range fastq.Optionals { + fastqString.WriteString(" ") + fastqString.WriteString(key) + fastqString.WriteString("=") + fastqString.WriteString(val) + } fastqString.WriteString("\n") // fastq doesn't limit at 80 characters, since it is