How metabarcoding/obitools4 works
OBITools V4 is a Go toolkit for processing biological sequence and metabarcoding data through command-line tools. The common user workflow is to provide sequence files and options, have a command read and transform or analyze sequence batches, then write results. Distinct capabilities include format conversion, paired-read processing, taxonomy assignment and queries, barcode/PCR handling, k-mer analysis, and summary/statistical work. The graph combines sampled CLI call flows with README and SOURCE INDEX evidence; unsampled tool internals are represented by their exact package directories, without assuming their implementation details.
Main entry points: obiconvert Sequence I/O · obiannotate/main.go Sequence commands · obitaxonomy/main.go Taxonomy CLI · obitag/main.go Assignment CLI
Components 23
Command line
- Sequence commands
cmd/obitools/obiannotate/main.go - Taxonomy CLI
cmd/obitools/obitaxonomy/main.go - Assignment CLI
cmd/obitools/obitag/main.go - Pairing CLI
cmd/obitools/obipairing/main.go - Tag-PCR CLI
cmd/obitools/obitagpcr/main.go - K-mer CLI
cmd/obitools/obikmermatch/main.go - Option parsing
pkg/obioptions/options.go
Sequence processing
- Sequence model
pkg/obiseq/biosequence.go - Sequence workers
pkg/obiseq/worker.go - Parallel iteration
pkg/obiiter/workers.go - Read alignment
pkg/obialign/pairedendalign.go - Barcode matching
pkg/obingslibrary/ngslibrary.go
Taxonomy
- Taxonomy model
pkg/obitax/taxonomy.go - Taxonomy operations
pkg/obitools/obitaxonomy - Taxonomic assignment
pkg/obitools/obitag
Analysis tools
- K-mer operations
pkg/obitools/obikmersim - K-mer disk sets
pkg/obikmer/kmer_set_disk.go - Statistics
pkg/obistats/kmeans.go - Pattern matching
pkg/obiapat/apat_search.c
Formats and data
- Sequence I/O
pkg/obitools/obiconvert - Format readers/writers
pkg/obiformats - CSV iteration
pkg/obiitercsv/csv.go
Other components
- User
Connections 31
- User → Sequence commands: runs command
- Sequence commands → Option parsing: parses options
cmd/obitools/obiannotate/main.go - Sequence commands → Sequence I/O: reads sequences
cmd/obitools/obiannotate/main.go - Sequence commands → Sequence workers: pipes annotations
cmd/obitools/obiannotate/main.go - Sequence commands → Sequence I/O: writes sequences
cmd/obitools/obiannotate/main.go - Sequence I/O → Format readers/writers: uses formats
- User → Assignment CLI: runs command
- Assignment CLI → Sequence I/O: reads sequences
cmd/obitools/obitag/main.go - Assignment CLI → Taxonomic assignment: assigns taxonomy
cmd/obitools/obitag/main.go - Assignment CLI → Taxonomy model: loads taxonomy
cmd/obitools/obitag/main.go - Assignment CLI → Sequence I/O: writes sequences
cmd/obitools/obitag/main.go - User → Taxonomy CLI: runs command
- Taxonomy CLI → Taxonomy operations: queries operations
cmd/obitools/obitaxonomy/main.go - Taxonomy CLI → Sequence I/O: reads sequences
cmd/obitools/obitaxonomy/main.go - Taxonomy CLI → CSV iteration: builds records
cmd/obitools/obitaxonomy/main.go - Taxonomy CLI → Format readers/writers: writes CSV/Newick
cmd/obitools/obitaxonomy/main.go - User → Pairing CLI: runs command
- Pairing CLI → Read alignment: assembles reads
cmd/obitools/obipairing/main.go - Pairing CLI → Sequence I/O: writes sequences
cmd/obitools/obipairing/main.go - User → Tag-PCR CLI: runs command
- Tag-PCR CLI → Read alignment: pairs reads
cmd/obitools/obitagpcr/main.go - Tag-PCR CLI → Sequence I/O: writes sequences
cmd/obitools/obitagpcr/main.go - User → K-mer CLI: runs command
- K-mer CLI → Sequence I/O: reads sequences
cmd/obitools/obikmermatch/main.go - K-mer CLI → K-mer operations: matches k-mers
cmd/obitools/obikmermatch/main.go - K-mer CLI → Sequence I/O: writes results
cmd/obitools/obikmermatch/main.go - Parallel iteration → Sequence workers: applies workers
pkg/obiiter/workers.go - Sequence workers → Sequence model: transforms sequences
pkg/obiseq/worker.go - Barcode matching → Sequence model: extracts barcodes
- K-mer disk sets → Statistics: uses distances
pkg/obikmer/kmer_set_disk.go - Pattern matching → Pattern matching: searches patterns
pkg/obiapat/apat_search.c