Gotree: toolkit and api for phylogenetic tree manipulation
January 30, 2020 ยท View on GitHub
API
download
Download from iTOL (SVG)
Downloading a tree image from iTOL
package main
import (
"io/ioutil"
"github.com/evolbioinfo/gotree/download"
"github.com/evolbioinfo/gotree/io"
)
func main() {
var config map[string]string
var dl *download.ItolImageDownloader
var dltreeid string = "<itol tree id>"
var dloutput string = "image.svg"
var b []byte
var err error
// See https://itol.embl.de/help.cgi#bExOpt for all config options
config = make(map[string]string)
config["display_mode"] = "3" // Unrooted
config["ignore_branch_length"] = "0" // Take branch length into account
config["bootstrap_display"] = "1" // Display bootstrap supports
config["bootstrap_type"] = "1" // Display Bootstrap as symbols
config["bootstrap_symbol_min"] = "1" // Min bootstrap symbol size
config["bootstrap_symbol_max"] = "20" // Max bootstrap symbol size
dl = download.NewItolImageDownloader(config)
b, err = dl.Download(dltreeid, download.IMGFORMAT_SVG)
if err != nil {
io.ExitWithMessage(err)
}
ioutil.WriteFile(dloutput, b, 0644)
}
Download from iTOL (Newick format)
Downloading a tree image from iTOL
package main
import (
"io/ioutil"
"github.com/evolbioinfo/gotree/download"
"github.com/evolbioinfo/gotree/io"
)
func main() {
var dl *download.ItolImageDownloader
var dltreeid string = "<itol tree id>"
var dloutput string = "tree.nhx"
var b []byte
var err error
dl = download.NewItolImageDownloader(make(map[string]string))
b, err = dl.Download(dltreeid, download.TXTFORMAT_NEWICK)
if err != nil {
io.ExitWithMessage(err)
}
ioutil.WriteFile(dloutput, b, 0644)
}
Download and convert NCBI taxonomy
package main
import (
"github.com/evolbioinfo/gotree/download"
)
func main(){
dl := download.NewNcbiTreeDownloader()
t, err := dl.Download("")
if err != nil {
panic(err)
}
f := openWriteFile("ncbi.nw")
f.WriteString(t.Newick() + "\n")
f.Close()
}
Download a tree from Panther database
package main
import (
"github.com/evolbioinfo/gotree/download"
)
func main(){
dl := download.NewPantherTreeDownloader()
if t, err := dl.Download("PTHR10000"); err != nil {
panic(err)
}
f := openWriteFile("ncbi.nw")
f.WriteString(t.Newick() + "\n")
f.Close()
}