diff --git a/pkg/obiformats/json_writer.go b/pkg/obiformats/json_writer.go index 2e5cf76..8f43b7d 100644 --- a/pkg/obiformats/json_writer.go +++ b/pkg/obiformats/json_writer.go @@ -7,6 +7,7 @@ import ( "os" "strconv" "strings" + "sync/atomic" "time" "github.com/goccy/go-json" @@ -84,6 +85,7 @@ func FormatJSONBatch(batch obiiter.BioSequenceBatch) *bytes.Buffer { func WriteJSON(iterator obiiter.IBioSequence, file io.WriteCloser, options ...WithOption) (obiiter.IBioSequence, error) { + var latestChunk atomic.Int64 opt := MakeOptions(options) @@ -97,6 +99,12 @@ func WriteJSON(iterator obiiter.IBioSequence, go func() { newIter.WaitAndClose() + + chunkchan <- FileChunk{ + Source: "end", + Raw: bytes.NewBuffer([]byte("\n]\n")), + Order: int(latestChunk.Load()) + 1, + } for len(chunkchan) > 0 { time.Sleep(time.Millisecond) } @@ -115,6 +123,7 @@ func WriteJSON(iterator obiiter.IBioSequence, } chunkchan <- ss + latestChunk.Store(int64(batch.Order())) newIter.Push(batch) } newIter.Done() diff --git a/pkg/obioptions/version.go b/pkg/obioptions/version.go index a786cbe..b061222 100644 --- a/pkg/obioptions/version.go +++ b/pkg/obioptions/version.go @@ -7,7 +7,7 @@ import ( // TODO: The version number is extracted from git. This induces that the version // corresponds to the last commit, and not the one when the file will be // commited -var _Commit = "69ef175" +var _Commit = "00b0edc" var _Version = "Release 4.2.0" // Version returns the version of the obitools package. diff --git a/sample/AY189646 b/sample/AY189646 index 75be2b2..02146ff 100644 --- a/sample/AY189646 +++ b/sample/AY189646 @@ -1,4 +1,3 @@ -==> db_v05_idx_ori.fasta <== >AY189646 {"count":1,"obitag_ref_index":{"0":"9606@Homo sapiens@species","10":"9526@Catarrhini@parvorder","12":"1437010@Boreoeutheria@clade","16":"9347@Eutheria@clade","17":"40674@Mammalia@class","2":"207598@Homininae@subfamily","22":"117571@Euteleostomi@clade","25":"7776@Gnathostomata@clade","29":"33213@Bilateria@clade","3":"9604@Hominidae@family","30":"6072@Eumetazoa@clade","8":"314295@Hominoidea@superfamily"},"species_name":"Homo sapiens","taxid":9606} Homo sapiens clone arCan119 12S ribosomal RNA gene, partial sequence; mitochondrial gene for mitochondrial product. ttagccctaaacctcaacagttaaatcaacaaaactgctcgccagaacactacgrgccac agcttaaaactcaaaggacctggcggtgcttcatatccct @@ -9,3 +8,5 @@ cagcttaaaactcaaaggacctggcggtgcttcatatccct ttagccctaaacttcaacagttaaattaacaaaactgctcgccagaacactacgagccac agcttaaaactcaaaggacctggcggtgcttcatatccct >AC008512 {"count":5,"obitag_ref_index":{"0":"9606@Homo sapiens@species","10":"1437010@Boreoeutheria@clade","14":"40674@Mammalia@class","18":"117571@Euteleostomi@clade","2":"207598@Homininae@subfamily","22":"7776@Gnathostomata@clade","26":"33213@Bilateria@clade","28":"6072@Eumetazoa@clade","7":"9526@Catarrhini@parvorder"},"species_name":"Homo sapiens","taxid":9606} Homo sapiens chromosome 5 clone CTC-454K8, complete sequence. +ttagccctaaacttcaacagttaaattaacaaaactgctcgccagaacactacgagccac +agcttaaaactcaaaggacctggcggtgcttcatatccct