mirror of
https://github.com/metabarcoding/obitools4.git
synced 2026-09-23 18:10:39 +00:00
Rename obifind obitaxonomy and introduce the new CSV format for taxonomy.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
|
||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obitaxonomy"
|
||||
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
||||
)
|
||||
|
||||
func main() {
|
||||
optionParser := obioptions.GenerateOptionParser(obitaxonomy.OptionSet)
|
||||
|
||||
_, args := optionParser(os.Args)
|
||||
|
||||
var iterator *obitax.ITaxon
|
||||
|
||||
switch {
|
||||
|
||||
case obitaxonomy.CLIDumpSubtaxonomy():
|
||||
iterator = obitaxonomy.CLISubTaxonomyIterator()
|
||||
|
||||
case obitaxonomy.CLIRequestsPathForTaxid() != "NA":
|
||||
|
||||
taxon := obitax.DefaultTaxonomy().Taxon(obitaxonomy.CLIRequestsPathForTaxid())
|
||||
|
||||
if taxon == nil {
|
||||
log.Fatalf("Cannot identify the requested taxon: %s",
|
||||
obitaxonomy.CLIRequestsPathForTaxid())
|
||||
}
|
||||
|
||||
s := taxon.Path()
|
||||
|
||||
if s == nil {
|
||||
log.Fatalf("Cannot extract taxonomic path describing %s", taxon.String())
|
||||
}
|
||||
|
||||
iterator = s.Iterator()
|
||||
|
||||
if obitaxonomy.CLIWithQuery() {
|
||||
iterator = iterator.AddMetadata("query", taxon.String())
|
||||
}
|
||||
|
||||
case len(args) == 0:
|
||||
iterator = obitax.DefaultTaxonomy().Iterator()
|
||||
default:
|
||||
iters := make([]*obitax.ITaxon, len(args))
|
||||
|
||||
for i, pat := range args {
|
||||
ii := obitax.DefaultTaxonomy().IFilterOnName(pat, obitaxonomy.CLIFixedPattern(), true)
|
||||
if obitaxonomy.CLIWithQuery() {
|
||||
ii = ii.AddMetadata("query", pat)
|
||||
}
|
||||
iters[i] = ii
|
||||
}
|
||||
|
||||
iterator = iters[0]
|
||||
|
||||
if len(iters) > 1 {
|
||||
iterator = iterator.Concat(iters[1:]...)
|
||||
}
|
||||
}
|
||||
|
||||
iterator = obitaxonomy.CLITaxonRestrictions(iterator)
|
||||
obitaxonomy.CLICSVTaxaWriter(iterator, true)
|
||||
|
||||
obiutils.WaitForLastPipe()
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user