mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
Refactoring of the default values
This commit is contained in:
@ -3,11 +3,11 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiannotate"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiannotate"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -40,6 +40,6 @@ func main() {
|
|||||||
annotator := obiannotate.CLIAnnotationPipeline()
|
annotator := obiannotate.CLIAnnotationPipeline()
|
||||||
obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true)
|
obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiclean"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiclean"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -22,6 +22,6 @@ func main() {
|
|||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(cleaned, true)
|
obiconvert.CLIWriteBioSequences(cleaned, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obicleandb"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obicleandb"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -25,5 +25,5 @@ func main() {
|
|||||||
toconsume, _ := obiconvert.CLIWriteBioSequences(cleaned, false)
|
toconsume, _ := obiconvert.CLIWriteBioSequences(cleaned, false)
|
||||||
toconsume.Consume()
|
toconsume.Consume()
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -21,6 +21,6 @@ func main() {
|
|||||||
comp := fs.MakeIWorker(obiseq.ReverseComplementWorker(true), true)
|
comp := fs.MakeIWorker(obiseq.ReverseComplementWorker(true), true)
|
||||||
obiconvert.CLIWriteBioSequences(comp, true)
|
obiconvert.CLIWriteBioSequences(comp, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconsensus"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconsensus"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -22,6 +22,6 @@ func main() {
|
|||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(cleaned, true)
|
obiconvert.CLIWriteBioSequences(cleaned, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -22,6 +22,6 @@ func main() {
|
|||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(fs, true)
|
obiconvert.CLIWriteBioSequences(fs, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,10 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obicsv"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obicsv"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -19,6 +19,6 @@ func main() {
|
|||||||
|
|
||||||
obicsv.CLIWriteSequenceCSV(fs, true)
|
obicsv.CLIWriteSequenceCSV(fs, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obidemerge"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obidemerge"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -25,6 +25,6 @@ func main() {
|
|||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(demerged, true)
|
obiconvert.CLIWriteBioSequences(demerged, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obidistribute"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obidistribute"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -20,6 +20,6 @@ func main() {
|
|||||||
|
|
||||||
obidistribute.CLIDistributeSequence(fs)
|
obidistribute.CLIDistributeSequence(fs)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,10 +4,10 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obifind"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obifind"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -62,6 +62,6 @@ func main() {
|
|||||||
iterator = obifind.CLITaxonRestrictions(iterator)
|
iterator = obifind.CLITaxonRestrictions(iterator)
|
||||||
obifind.CLICSVTaxaWriter(iterator, true)
|
obifind.CLICSVTaxaWriter(iterator, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,11 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obigrep"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obigrep"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -39,6 +39,6 @@ func main() {
|
|||||||
|
|
||||||
selected := obigrep.CLIFilterSequence(sequences)
|
selected := obigrep.CLIFilterSequence(sequences)
|
||||||
obiconvert.CLIWriteBioSequences(selected, true)
|
obiconvert.CLIWriteBioSequences(selected, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obijoin"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obijoin"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -25,6 +25,6 @@ func main() {
|
|||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(joined, true)
|
obiconvert.CLIWriteBioSequences(joined, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obikmersim"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obikmersim"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -45,6 +46,6 @@ func main() {
|
|||||||
|
|
||||||
selected := obikmersim.CLIAlignSequences(sequences)
|
selected := obikmersim.CLIAlignSequences(sequences)
|
||||||
obiconvert.CLIWriteBioSequences(selected, true)
|
obiconvert.CLIWriteBioSequences(selected, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obikmersim"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obikmersim"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -53,6 +54,6 @@ func main() {
|
|||||||
|
|
||||||
topull.Consume()
|
topull.Consume()
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obilandmark"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obilandmark"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -21,6 +21,6 @@ func main() {
|
|||||||
indexed := obilandmark.CLISelectLandmarkSequences(fs)
|
indexed := obilandmark.CLISelectLandmarkSequences(fs)
|
||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(indexed, true)
|
obiconvert.CLIWriteBioSequences(indexed, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,11 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obimicrosat"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obimicrosat"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -39,6 +39,6 @@ func main() {
|
|||||||
|
|
||||||
selected := obimicrosat.CLIAnnotateMicrosat(sequences)
|
selected := obimicrosat.CLIAnnotateMicrosat(sequences)
|
||||||
obiconvert.CLIWriteBioSequences(selected, true)
|
obiconvert.CLIWriteBioSequences(selected, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,10 @@ import (
|
|||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obimultiplex"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obimultiplex"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -48,6 +48,6 @@ func main() {
|
|||||||
amplicons, _ := obimultiplex.IExtractBarcode(sequences)
|
amplicons, _ := obimultiplex.IExtractBarcode(sequences)
|
||||||
obiconvert.CLIWriteBioSequences(amplicons, true)
|
obiconvert.CLIWriteBioSequences(amplicons, true)
|
||||||
amplicons.Wait()
|
amplicons.Wait()
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,10 +5,10 @@ import (
|
|||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obipairing"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obipairing"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -56,5 +56,5 @@ func main() {
|
|||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(paired, true)
|
obiconvert.CLIWriteBioSequences(paired, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,10 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obipcr"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obipcr"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -37,6 +37,6 @@ func main() {
|
|||||||
|
|
||||||
amplicons, _ := obipcr.CLIPCR(sequences)
|
amplicons, _ := obipcr.CLIPCR(sequences)
|
||||||
obiconvert.CLIWriteBioSequences(amplicons, true)
|
obiconvert.CLIWriteBioSequences(amplicons, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obirefidx"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obirefidx"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -21,6 +21,6 @@ func main() {
|
|||||||
indexed := obirefidx.IndexFamilyDB(fs)
|
indexed := obirefidx.IndexFamilyDB(fs)
|
||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(indexed, true)
|
obiconvert.CLIWriteBioSequences(indexed, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obirefidx"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obirefidx"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -21,6 +21,6 @@ func main() {
|
|||||||
indexed := obirefidx.IndexReferenceDB(fs)
|
indexed := obirefidx.IndexReferenceDB(fs)
|
||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(indexed, true)
|
obiconvert.CLIWriteBioSequences(indexed, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,11 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiscript"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiscript"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -46,6 +46,6 @@ func main() {
|
|||||||
annotator := obiscript.CLIScriptPipeline()
|
annotator := obiscript.CLIScriptPipeline()
|
||||||
obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true)
|
obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,11 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obisplit"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obisplit"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -46,6 +46,6 @@ func main() {
|
|||||||
annotator := obisplit.CLISlitPipeline()
|
annotator := obisplit.CLISlitPipeline()
|
||||||
obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true)
|
obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obitag"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obitag"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
)
|
)
|
||||||
@ -60,7 +61,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(identified, true)
|
obiconvert.CLIWriteBioSequences(identified, true)
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
obitag.CLISaveRefetenceDB(references)
|
obitag.CLISaveRefetenceDB(references)
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@ import (
|
|||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obipairing"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obipairing"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obitagpcr"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obitagpcr"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -54,5 +54,5 @@ func main() {
|
|||||||
|
|
||||||
obiconvert.CLIWriteBioSequences(paired, true)
|
obiconvert.CLIWriteBioSequences(paired, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,12 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiuniq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiuniq"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -31,7 +32,7 @@ func main() {
|
|||||||
// defer trace.Stop()
|
// defer trace.Stop()
|
||||||
|
|
||||||
obioptions.SetBatchSize(10)
|
obioptions.SetBatchSize(10)
|
||||||
obioptions.SetReadQualities(false)
|
obidefault.SetReadQualities(false)
|
||||||
optionParser := obioptions.GenerateOptionParser(obiuniq.OptionSet)
|
optionParser := obioptions.GenerateOptionParser(obiuniq.OptionSet)
|
||||||
|
|
||||||
_, args := optionParser(os.Args)
|
_, args := optionParser(os.Args)
|
||||||
@ -42,6 +43,6 @@ func main() {
|
|||||||
unique := obiuniq.CLIUnique(sequences)
|
unique := obiuniq.CLIUnique(sequences)
|
||||||
obiconvert.CLIWriteBioSequences(unique, true)
|
obiconvert.CLIWriteBioSequences(unique, true)
|
||||||
|
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,13 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitaxformat"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitaxformat"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
obitaxformat.DetectTaxonomyFormat(os.Args[1])
|
obitaxformat.DetectTaxonomyFormat(os.Args[1])
|
||||||
|
println(obiutils.RemoveAllExt("toto/tutu/test.txt"))
|
||||||
|
println(obiutils.Basename("toto/tutu/test.txt"))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
29
pkg/obidefault/quality.go
Normal file
29
pkg/obidefault/quality.go
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package obidefault
|
||||||
|
|
||||||
|
var _Quality_Shift_Input = byte(33)
|
||||||
|
var _Quality_Shift_Output = byte(33)
|
||||||
|
var _Read_Qualities = true
|
||||||
|
|
||||||
|
func SetReadQualitiesShift(shift byte) {
|
||||||
|
_Quality_Shift_Input = shift
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadQualitiesShift() byte {
|
||||||
|
return _Quality_Shift_Input
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetWriteQualitiesShift(shift byte) {
|
||||||
|
_Quality_Shift_Output = shift
|
||||||
|
}
|
||||||
|
|
||||||
|
func WriteQualitiesShift() byte {
|
||||||
|
return _Quality_Shift_Output
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetReadQualities(read bool) {
|
||||||
|
_Read_Qualities = read
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadQualities() bool {
|
||||||
|
return _Read_Qualities
|
||||||
|
}
|
@ -7,8 +7,8 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
@ -143,7 +143,7 @@ func ReadCSV(reader io.Reader, options ...WithOption) (obiiter.IBioSequence, err
|
|||||||
go _ParseCsvFile(opt.Source(),
|
go _ParseCsvFile(opt.Source(),
|
||||||
reader,
|
reader,
|
||||||
out,
|
out,
|
||||||
byte(obioptions.InputQualityShift()),
|
obidefault.ReadQualitiesShift(),
|
||||||
opt.BatchSize())
|
opt.BatchSize())
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -3,7 +3,7 @@ package obiformats
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
@ -54,7 +54,7 @@ func CSVSequenceRecord(sequence *obiseq.BioSequence, opt Options) []string {
|
|||||||
l := sequence.Len()
|
l := sequence.Len()
|
||||||
q := sequence.Qualities()
|
q := sequence.Qualities()
|
||||||
ascii := make([]byte, l)
|
ascii := make([]byte, l)
|
||||||
quality_shift := obioptions.OutputQualityShift()
|
quality_shift := obidefault.WriteQualitiesShift()
|
||||||
for j := 0; j < l; j++ {
|
for j := 0; j < l; j++ {
|
||||||
ascii[j] = uint8(q[j]) + uint8(quality_shift)
|
ascii[j] = uint8(q[j]) + uint8(quality_shift)
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,8 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
@ -341,7 +341,7 @@ func ReadFastq(reader io.Reader, options ...WithOption) (obiiter.IBioSequence, e
|
|||||||
go _ParseFastqFile(
|
go _ParseFastqFile(
|
||||||
chkchan,
|
chkchan,
|
||||||
out,
|
out,
|
||||||
byte(obioptions.InputQualityShift()),
|
obidefault.ReadQualitiesShift(),
|
||||||
opt.ReadQualities(),
|
opt.ReadQualities(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,8 @@ import (
|
|||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
)
|
)
|
||||||
@ -92,7 +92,7 @@ func ReadFastSeqFromFile(filename string, options ...WithOption) (obiiter.IBioSe
|
|||||||
name := C.CString(filename)
|
name := C.CString(filename)
|
||||||
defer C.free(unsafe.Pointer(name))
|
defer C.free(unsafe.Pointer(name))
|
||||||
|
|
||||||
pointer := C.open_fast_sek_file(name, C.int32_t(obioptions.InputQualityShift()))
|
pointer := C.open_fast_sek_file(name, C.int32_t(obidefault.ReadQualitiesShift()))
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
err = nil
|
err = nil
|
||||||
@ -151,7 +151,7 @@ func ReadFastSeqFromStdin(options ...WithOption) obiiter.IBioSequence {
|
|||||||
}(newIter)
|
}(newIter)
|
||||||
|
|
||||||
go _FastseqReader(opt.Source(),
|
go _FastseqReader(opt.Source(),
|
||||||
C.open_fast_sek_stdin(C.int32_t(obioptions.InputQualityShift())),
|
C.open_fast_sek_stdin(C.int32_t(obidefault.ReadQualitiesShift())),
|
||||||
newIter, opt.BatchSize())
|
newIter, opt.BatchSize())
|
||||||
|
|
||||||
log.Debugln("Full file batch mode : ", opt.FullFileBatch())
|
log.Debugln("Full file batch mode : ", opt.FullFileBatch())
|
||||||
|
@ -3,7 +3,7 @@ package obiformats
|
|||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
@ -12,7 +12,7 @@ func WriteFileChunk(
|
|||||||
writer io.WriteCloser,
|
writer io.WriteCloser,
|
||||||
toBeClosed bool) ChannelFileChunk {
|
toBeClosed bool) ChannelFileChunk {
|
||||||
|
|
||||||
obiiter.RegisterAPipe()
|
obiutils.RegisterAPipe()
|
||||||
chunk_channel := make(ChannelFileChunk)
|
chunk_channel := make(ChannelFileChunk)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -53,7 +53,7 @@ func WriteFileChunk(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
obiiter.UnregisterPipe()
|
obiutils.UnregisterPipe()
|
||||||
log.Debugf("The writer has been closed")
|
log.Debugf("The writer has been closed")
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
@ -16,39 +16,6 @@ import (
|
|||||||
"github.com/tevino/abool/v2"
|
"github.com/tevino/abool/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
var globalLocker sync.WaitGroup
|
|
||||||
var globalLockerCounter = 0
|
|
||||||
|
|
||||||
// RegisterAPipe increments the global lock counter and adds a new pipe to the global wait group.
|
|
||||||
//
|
|
||||||
// No parameters.
|
|
||||||
// No return values.
|
|
||||||
func RegisterAPipe() {
|
|
||||||
globalLocker.Add(1)
|
|
||||||
globalLockerCounter++
|
|
||||||
log.Debugln(globalLockerCounter, " Pipes are registered now")
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnregisterPipe decrements the global lock counter and signals that a pipe has finished.
|
|
||||||
//
|
|
||||||
// No parameters.
|
|
||||||
// No return values.
|
|
||||||
func UnregisterPipe() {
|
|
||||||
globalLocker.Done()
|
|
||||||
globalLockerCounter--
|
|
||||||
log.Debugln(globalLockerCounter, "are still registered")
|
|
||||||
}
|
|
||||||
|
|
||||||
// WaitForLastPipe waits until all registered pipes have finished.
|
|
||||||
//
|
|
||||||
// THe function have to be called at the end of every main function.
|
|
||||||
//
|
|
||||||
// No parameters.
|
|
||||||
// No return values.
|
|
||||||
func WaitForLastPipe() {
|
|
||||||
globalLocker.Wait()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Structure implementing an iterator over bioseq.BioSequenceBatch
|
// Structure implementing an iterator over bioseq.BioSequenceBatch
|
||||||
// based on a channel.
|
// based on a channel.
|
||||||
type _IBioSequence struct {
|
type _IBioSequence struct {
|
||||||
@ -92,7 +59,7 @@ func MakeIBioSequence() IBioSequence {
|
|||||||
i.lock = &lock
|
i.lock = &lock
|
||||||
ii := IBioSequence{&i}
|
ii := IBioSequence{&i}
|
||||||
|
|
||||||
RegisterAPipe()
|
obiutils.RegisterAPipe()
|
||||||
|
|
||||||
return ii
|
return ii
|
||||||
}
|
}
|
||||||
@ -259,7 +226,7 @@ func (iterator IBioSequence) Push(batch BioSequenceBatch) {
|
|||||||
|
|
||||||
func (iterator IBioSequence) Close() {
|
func (iterator IBioSequence) Close() {
|
||||||
close(iterator.pointer.channel)
|
close(iterator.pointer.channel)
|
||||||
UnregisterPipe()
|
obiutils.UnregisterPipe()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (iterator IBioSequence) WaitAndClose() {
|
func (iterator IBioSequence) WaitAndClose() {
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitaxformat"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitaxformat"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
@ -28,9 +29,6 @@ var _BatchSize = 2000
|
|||||||
var _Pprof = false
|
var _Pprof = false
|
||||||
var _PprofMudex = 10
|
var _PprofMudex = 10
|
||||||
var _PprofGoroutine = 6060
|
var _PprofGoroutine = 6060
|
||||||
var _Quality_Shift_Input = byte(33)
|
|
||||||
var _Quality_Shift_Output = byte(33)
|
|
||||||
var _Read_Qualities = true
|
|
||||||
|
|
||||||
var __taxonomy__ = ""
|
var __taxonomy__ = ""
|
||||||
var __alternative_name__ = false
|
var __alternative_name__ = false
|
||||||
@ -177,7 +175,7 @@ func GenerateOptionParser(optionset ...func(*getoptions.GetOpt)) ArgumentParser
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
if options.Called("solexa") {
|
if options.Called("solexa") {
|
||||||
SetInputQualityShift(64)
|
obidefault.SetReadQualitiesShift(64)
|
||||||
}
|
}
|
||||||
|
|
||||||
return options, remaining
|
return options, remaining
|
||||||
@ -292,10 +290,6 @@ func CLIBatchSize() int {
|
|||||||
return _BatchSize
|
return _BatchSize
|
||||||
}
|
}
|
||||||
|
|
||||||
func CLIReadQualities() bool {
|
|
||||||
return _Read_Qualities
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetDebugOn sets the debug mode on.
|
// SetDebugOn sets the debug mode on.
|
||||||
func SetDebugOn() {
|
func SetDebugOn() {
|
||||||
_Debug = true
|
_Debug = true
|
||||||
@ -306,10 +300,6 @@ func SetDebugOff() {
|
|||||||
_Debug = false
|
_Debug = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetReadQualities(status bool) {
|
|
||||||
_Read_Qualities = status
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetWorkerPerCore sets the number of workers per CPU core.
|
// SetWorkerPerCore sets the number of workers per CPU core.
|
||||||
//
|
//
|
||||||
// It takes a float64 parameter representing the number of workers
|
// It takes a float64 parameter representing the number of workers
|
||||||
@ -359,43 +349,6 @@ func SetBatchSize(n int) {
|
|||||||
_BatchSize = n
|
_BatchSize = n
|
||||||
}
|
}
|
||||||
|
|
||||||
// InputQualityShift returns the quality shift value for input.
|
|
||||||
//
|
|
||||||
// It can be set programmatically by the SetInputQualityShift() function.
|
|
||||||
// This value is used to decode the quality scores in FASTQ files.
|
|
||||||
// The quality shift value defaults to 33, which is the correct value for
|
|
||||||
// Sanger formated FASTQ files.
|
|
||||||
// The quality shift value can be modified to 64 by the command line option
|
|
||||||
// --solexa, for decoding old Solexa formated FASTQ files.
|
|
||||||
//
|
|
||||||
// No parameters.
|
|
||||||
// Returns an integer representing the quality shift value for input.
|
|
||||||
func InputQualityShift() byte {
|
|
||||||
return _Quality_Shift_Input
|
|
||||||
}
|
|
||||||
|
|
||||||
// OutputQualityShift returns the quality shift value used for FASTQ output.
|
|
||||||
//
|
|
||||||
// No parameters.
|
|
||||||
// Returns an integer representing the quality shift value for output.
|
|
||||||
func OutputQualityShift() byte {
|
|
||||||
return _Quality_Shift_Output
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetInputQualityShift sets the quality shift value for decoding FASTQ.
|
|
||||||
//
|
|
||||||
// n - an integer representing the quality shift value to be set.
|
|
||||||
func SetInputQualityShift[T int | byte](n T) {
|
|
||||||
_Quality_Shift_Input = byte(n)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetOutputQualityShift sets the quality shift value used for FASTQ output.
|
|
||||||
//
|
|
||||||
// n - an integer representing the quality shift value to be set.
|
|
||||||
func SetOutputQualityShift[T int | byte](n T) {
|
|
||||||
_Quality_Shift_Output = byte(n)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetMaxCPU sets the maximum number of CPU cores allowed.
|
// SetMaxCPU sets the maximum number of CPU cores allowed.
|
||||||
//
|
//
|
||||||
// n - an integer representing the new maximum number of CPU cores.
|
// n - an integer representing the new maximum number of CPU cores.
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
// corresponds to the last commit, and not the one when the file will be
|
// corresponds to the last commit, and not the one when the file will be
|
||||||
// commited
|
// commited
|
||||||
|
|
||||||
var _Commit = "ffd6725"
|
var _Commit = "3137c1f"
|
||||||
var _Version = "Release 4.2.0"
|
var _Version = "Release 4.2.0"
|
||||||
|
|
||||||
// Version returns the version of the obitools package.
|
// Version returns the version of the obitools package.
|
||||||
|
@ -18,7 +18,7 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
@ -287,7 +287,7 @@ func (s *BioSequence) Qualities() Quality {
|
|||||||
//
|
//
|
||||||
// Returns a string representing the qualities of the BioSequence after applying the shift.
|
// Returns a string representing the qualities of the BioSequence after applying the shift.
|
||||||
func (s *BioSequence) QualitiesString() string {
|
func (s *BioSequence) QualitiesString() string {
|
||||||
quality_shift := obioptions.OutputQualityShift()
|
quality_shift := obidefault.WriteQualitiesShift()
|
||||||
|
|
||||||
qual := s.Qualities()
|
qual := s.Qualities()
|
||||||
qual_ascii := make([]byte, len(qual))
|
qual_ascii := make([]byte, len(qual))
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package obitax
|
package obitax
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
)
|
||||||
|
|
||||||
// ITaxon represents an iterator for traversing Taxon instances.
|
// ITaxon represents an iterator for traversing Taxon instances.
|
||||||
// It provides methods to retrieve the next Taxon and check if the iteration is finished.
|
// It provides methods to retrieve the next Taxon and check if the iteration is finished.
|
||||||
type ITaxon struct {
|
type ITaxon struct {
|
||||||
@ -168,3 +172,46 @@ func (iterator *ITaxon) Concat(iterators ...*ITaxon) *ITaxon {
|
|||||||
|
|
||||||
return newIter
|
return newIter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (taxon *Taxon) ISubTaxonomy() *ITaxon {
|
||||||
|
|
||||||
|
taxo := taxon.Taxonomy
|
||||||
|
|
||||||
|
path := taxon.Path()
|
||||||
|
lpath := path.Len()
|
||||||
|
|
||||||
|
iter := NewITaxon()
|
||||||
|
|
||||||
|
parents := map[*TaxNode]bool{taxon.Node: true}
|
||||||
|
|
||||||
|
obiutils.RegisterAPipe()
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
for i := lpath - 1; i >= 0; i-- {
|
||||||
|
taxon := path.Taxon(i)
|
||||||
|
parents[taxon.Node] = true
|
||||||
|
iter.Push(taxon)
|
||||||
|
}
|
||||||
|
|
||||||
|
pushed := true
|
||||||
|
|
||||||
|
for pushed {
|
||||||
|
itaxo := taxo.Iterator()
|
||||||
|
pushed = false
|
||||||
|
for itaxo.Next() {
|
||||||
|
taxon := itaxo.Get()
|
||||||
|
|
||||||
|
if !parents[taxon.Node] && parents[taxon.Parent().Node] {
|
||||||
|
parents[taxon.Node] = true
|
||||||
|
iter.Push(taxon)
|
||||||
|
pushed = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
iter.Close()
|
||||||
|
obiutils.UnregisterPipe()
|
||||||
|
}()
|
||||||
|
|
||||||
|
return iter
|
||||||
|
}
|
||||||
|
104
pkg/obitaxformat/csvtaxdump/read.go
Normal file
104
pkg/obitaxformat/csvtaxdump/read.go
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package csvtaxdump
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/csv"
|
||||||
|
"errors"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
|
func LoadCSVTaxonomy(path string, onlysn bool) (*obitax.Taxonomy, error) {
|
||||||
|
|
||||||
|
file, err := obiutils.Ropen(path)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
csvfile := csv.NewReader(file)
|
||||||
|
|
||||||
|
csvfile.Comma = ','
|
||||||
|
csvfile.ReuseRecord = false
|
||||||
|
csvfile.LazyQuotes = true
|
||||||
|
csvfile.Comment = '#'
|
||||||
|
csvfile.FieldsPerRecord = -1
|
||||||
|
csvfile.TrimLeadingSpace = true
|
||||||
|
|
||||||
|
header, err := csvfile.Read()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
taxidColIndex := -1
|
||||||
|
parentColIndex := -1
|
||||||
|
scientific_nameColIndex := -1
|
||||||
|
rankColIndex := -1
|
||||||
|
|
||||||
|
for i, colName := range header {
|
||||||
|
switch colName {
|
||||||
|
case "taxid":
|
||||||
|
taxidColIndex = i
|
||||||
|
case "parent":
|
||||||
|
parentColIndex = i
|
||||||
|
case "scientific_name":
|
||||||
|
scientific_nameColIndex = i
|
||||||
|
case "rank":
|
||||||
|
rankColIndex = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if taxidColIndex == -1 {
|
||||||
|
return nil, errors.New("taxonomy file does not contain taxid column")
|
||||||
|
}
|
||||||
|
|
||||||
|
if parentColIndex == -1 {
|
||||||
|
return nil, errors.New("taxonomy file does not contain parent column")
|
||||||
|
}
|
||||||
|
|
||||||
|
if scientific_nameColIndex == -1 {
|
||||||
|
return nil, errors.New("taxonomy file does not contain scientific_name column")
|
||||||
|
}
|
||||||
|
|
||||||
|
if rankColIndex == -1 {
|
||||||
|
return nil, errors.New("taxonomy file does not contain rank column")
|
||||||
|
}
|
||||||
|
|
||||||
|
name := obiutils.RemoveAllExt(path)
|
||||||
|
short := obiutils.Basename(path)
|
||||||
|
taxonomy := obitax.NewTaxonomy(name, short, obiutils.AsciiAlphaNumSet)
|
||||||
|
|
||||||
|
line, err := csvfile.Read()
|
||||||
|
|
||||||
|
for err != nil {
|
||||||
|
taxid := line[taxidColIndex]
|
||||||
|
parent := line[parentColIndex]
|
||||||
|
scientific_name := line[scientific_nameColIndex]
|
||||||
|
rank := line[rankColIndex]
|
||||||
|
|
||||||
|
parts := strings.Split(rank, ":")
|
||||||
|
|
||||||
|
rank = parts[0]
|
||||||
|
|
||||||
|
root := len(parts) > 1 && parts[1] == "root"
|
||||||
|
|
||||||
|
taxon, err := taxonomy.AddTaxon(taxid, parent, rank, false, root)
|
||||||
|
taxon.SetName(scientific_name, "scientific name")
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if !taxonomy.HasRoot() {
|
||||||
|
return nil, errors.New("taxonomy file does not contain root node")
|
||||||
|
}
|
||||||
|
|
||||||
|
return taxonomy, nil
|
||||||
|
}
|
12
pkg/obitaxformat/csvtaxdump/write.go
Normal file
12
pkg/obitaxformat/csvtaxdump/write.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package csvtaxdump
|
||||||
|
|
||||||
|
// import (
|
||||||
|
// "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
||||||
|
// "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obicsv"
|
||||||
|
// )
|
||||||
|
|
||||||
|
// func WriteTaxonomyCSV(iterator obiiter.IBioSequence,
|
||||||
|
// terminalAction bool, filenames ...string) *obicsv.ICSVRecord {
|
||||||
|
|
||||||
|
// return nil
|
||||||
|
// }
|
@ -5,6 +5,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitaxformat/csvtaxdump"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitaxformat/ncbitaxdump"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitaxformat/ncbitaxdump"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
"github.com/gabriel-vasile/mimetype"
|
"github.com/gabriel-vasile/mimetype"
|
||||||
@ -62,7 +63,7 @@ func DetectTaxonomyFormat(path string) (TaxonomyLoader, error) {
|
|||||||
|
|
||||||
switch mimetype.String() {
|
switch mimetype.String() {
|
||||||
case "text/csv":
|
case "text/csv":
|
||||||
return LoadCSVTaxonomy, nil
|
return csvtaxdump.LoadCSVTaxonomy, nil
|
||||||
case "application/x-tar":
|
case "application/x-tar":
|
||||||
return DetectTaxonomyTarFormat(path)
|
return DetectTaxonomyTarFormat(path)
|
||||||
}
|
}
|
||||||
@ -73,11 +74,6 @@ func DetectTaxonomyFormat(path string) (TaxonomyLoader, error) {
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadCSVTaxonomy(path string, onlysn bool) (*obitax.Taxonomy, error) {
|
|
||||||
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func LoadTaxonomy(path string, onlysn bool) (*obitax.Taxonomy, error) {
|
func LoadTaxonomy(path string, onlysn bool) (*obitax.Taxonomy, error) {
|
||||||
loader, err := DetectTaxonomyFormat(path)
|
loader, err := DetectTaxonomyFormat(path)
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/goombaio/orderedset"
|
"github.com/goombaio/orderedset"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiformats"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiformats"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
@ -99,7 +100,7 @@ func CLIReadBioSequences(filenames ...string) (obiiter.IBioSequence, error) {
|
|||||||
opts = append(opts, obiformats.OptionsFastSeqHeaderParser(obiformats.ParseGuessedFastSeqHeader))
|
opts = append(opts, obiformats.OptionsFastSeqHeaderParser(obiformats.ParseGuessedFastSeqHeader))
|
||||||
}
|
}
|
||||||
|
|
||||||
opts = append(opts, obiformats.OptionsReadQualities(obioptions.CLIReadQualities()))
|
opts = append(opts, obiformats.OptionsReadQualities(obidefault.ReadQualities()))
|
||||||
|
|
||||||
nworkers := obioptions.CLIReadParallelWorkers()
|
nworkers := obioptions.CLIReadParallelWorkers()
|
||||||
if nworkers < 2 {
|
if nworkers < 2 {
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
"github.com/tevino/abool/v2"
|
"github.com/tevino/abool/v2"
|
||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
@ -57,7 +57,7 @@ func NewICSVRecord() *ICSVRecord {
|
|||||||
lock := sync.RWMutex{}
|
lock := sync.RWMutex{}
|
||||||
i.lock = &lock
|
i.lock = &lock
|
||||||
|
|
||||||
obiiter.RegisterAPipe()
|
obiutils.RegisterAPipe()
|
||||||
|
|
||||||
return &i
|
return &i
|
||||||
}
|
}
|
||||||
@ -275,7 +275,7 @@ func (iterator *ICSVRecord) Push(batch CSVRecordBatch) {
|
|||||||
|
|
||||||
func (iterator *ICSVRecord) Close() {
|
func (iterator *ICSVRecord) Close() {
|
||||||
close(iterator.channel)
|
close(iterator.channel)
|
||||||
obiiter.UnregisterPipe()
|
obiutils.UnregisterPipe()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (iterator *ICSVRecord) WaitAndClose() {
|
func (iterator *ICSVRecord) WaitAndClose() {
|
||||||
|
@ -4,8 +4,8 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"slices"
|
"slices"
|
||||||
|
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func CSVSequenceHeader(opt Options) CSVHeader {
|
func CSVSequenceHeader(opt Options) CSVHeader {
|
||||||
@ -95,7 +95,7 @@ func CSVBatchFromSequences(batch obiiter.BioSequenceBatch, opt Options) CSVRecor
|
|||||||
l := sequence.Len()
|
l := sequence.Len()
|
||||||
q := sequence.Qualities()
|
q := sequence.Qualities()
|
||||||
ascii := make([]byte, l)
|
ascii := make([]byte, l)
|
||||||
quality_shift := obioptions.OutputQualityShift()
|
quality_shift := obidefault.WriteQualitiesShift()
|
||||||
for j := 0; j < l; j++ {
|
for j := 0; j < l; j++ {
|
||||||
ascii[j] = uint8(q[j]) + uint8(quality_shift)
|
ascii[j] = uint8(q[j]) + uint8(quality_shift)
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ func IMatrix(iterator obiiter.IBioSequence) *MatrixData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
waiter.Wait()
|
waiter.Wait()
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
rep := summaries[0]
|
rep := summaries[0]
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ func ISummary(iterator obiiter.IBioSequence, summarise []string) map[string]inte
|
|||||||
}
|
}
|
||||||
|
|
||||||
waiter.Wait()
|
waiter.Wait()
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
|
|
||||||
rep := summaries[0]
|
rep := summaries[0]
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert"
|
||||||
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
"github.com/DavidGamba/go-getoptions"
|
"github.com/DavidGamba/go-getoptions"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -112,7 +113,7 @@ func CLISaveRefetenceDB(db obiseq.BioSequenceSlice) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
newIter.Recycle()
|
newIter.Recycle()
|
||||||
obiiter.WaitForLastPipe()
|
obiutils.WaitForLastPipe()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
package obiutils_test
|
package obiutils_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
|
||||||
|
|
||||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||||
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAbs(t *testing.T) {
|
func TestAbs(t *testing.T) {
|
||||||
|
@ -2,6 +2,7 @@ package obiutils
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"path"
|
"path"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -21,3 +22,16 @@ func RemoveAllExt(p string) string {
|
|||||||
return p
|
return p
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Basename(path string) string {
|
||||||
|
filename := filepath.Base(path)
|
||||||
|
ext := filepath.Ext(filename)
|
||||||
|
|
||||||
|
// Keep removing extensions until there are no more
|
||||||
|
for ext != "" {
|
||||||
|
filename = strings.TrimSuffix(filename, ext)
|
||||||
|
ext = filepath.Ext(filename)
|
||||||
|
}
|
||||||
|
|
||||||
|
return filename
|
||||||
|
}
|
||||||
|
40
pkg/obiutils/pipe.go
Normal file
40
pkg/obiutils/pipe.go
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package obiutils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
|
var globalLocker sync.WaitGroup
|
||||||
|
var globalLockerCounter = 0
|
||||||
|
|
||||||
|
// RegisterAPipe increments the global lock counter and adds a new pipe to the global wait group.
|
||||||
|
//
|
||||||
|
// No parameters.
|
||||||
|
// No return values.
|
||||||
|
func RegisterAPipe() {
|
||||||
|
globalLocker.Add(1)
|
||||||
|
globalLockerCounter++
|
||||||
|
log.Debugln(globalLockerCounter, " Pipes are registered now")
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnregisterPipe decrements the global lock counter and signals that a pipe has finished.
|
||||||
|
//
|
||||||
|
// No parameters.
|
||||||
|
// No return values.
|
||||||
|
func UnregisterPipe() {
|
||||||
|
globalLocker.Done()
|
||||||
|
globalLockerCounter--
|
||||||
|
log.Debugln(globalLockerCounter, "are still registered")
|
||||||
|
}
|
||||||
|
|
||||||
|
// WaitForLastPipe waits until all registered pipes have finished.
|
||||||
|
//
|
||||||
|
// THe function have to be called at the end of every main function.
|
||||||
|
//
|
||||||
|
// No parameters.
|
||||||
|
// No return values.
|
||||||
|
func WaitForLastPipe() {
|
||||||
|
globalLocker.Wait()
|
||||||
|
}
|
Reference in New Issue
Block a user