Gotree: toolkit and api for phylogenetic tree manipulation
March 22, 2019 ยท View on GitHub
API
reformat
Parsing nexus trees and output them as newick
package main
import (
"fmt"
"os"
"github.com/evolbioinfo/gotree/io/nexus"
"github.com/evolbioinfo/gotree/tree"
)
func main() {
var f *os.File
var err error
if f, err = os.Open("input.nexus"); err != nil {
panic(err)
}
n, err := nexus.NewParser(f).Parse()
if err != nil {
panic(err)
} else {
n.IterateTrees(func(name string, tree *tree.Tree) {
fmt.Println(tree.Newick())
})
}
}
Parsing phyloxml trees and output them as newick
package main
import (
"fmt"
"os"
"github.com/evolbioinfo/gotree/io/phyloxml"
"github.com/evolbioinfo/gotree/tree"
)
func main() {
var f *os.File
var err error
var xml *phyloxml.PhyloXML
if f, err = os.Open("bcl_2.xml"); err != nil {
panic(err)
}
defer f.Close()
p := phyloxml.NewParser(f)
xml, err = p.Parse()
if err != nil {
panic(err)
}
xml.IterateTrees(func(t *tree.Tree, err error) {
if err != nil {
panic(err)
}
fmt.Println(t.Newick())
})
}