mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
Patch a bug on compressed output
This commit is contained in:
@ -1 +1,38 @@
|
||||
package obitax
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/TuftsBCB/io/newick"
|
||||
)
|
||||
|
||||
func (taxonomy *Taxonomy) Newick() string {
|
||||
if taxonomy == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
iterator := taxonomy.AsTaxonSet().Sort().Iterator()
|
||||
|
||||
nodes := make(map[*string]*newick.Tree, taxonomy.Len())
|
||||
trees := make([]*newick.Tree, 0)
|
||||
|
||||
for iterator.Next() {
|
||||
taxon := iterator.Get()
|
||||
tree := &newick.Tree{Label: taxon.String()}
|
||||
nodes[taxon.Node.id] = tree
|
||||
if parent, ok := nodes[taxon.Parent().Node.id]; ok {
|
||||
parent.Children = append(parent.Children, *tree)
|
||||
} else {
|
||||
trees = append(trees, tree)
|
||||
}
|
||||
}
|
||||
|
||||
rep := strings.Builder{}
|
||||
|
||||
for _, tree := range trees {
|
||||
rep.WriteString(tree.String())
|
||||
rep.WriteString("\n")
|
||||
}
|
||||
|
||||
return rep.String()
|
||||
}
|
||||
|
1
pkg/obitax/newick_write.go
Normal file
1
pkg/obitax/newick_write.go
Normal file
@ -0,0 +1 @@
|
||||
package obitax
|
Reference in New Issue
Block a user