Repository navigation
Expand file tree
/
Copy pathnewick2pdf.py
More file actions
44 lines (39 loc) · 1.47 KB
/
Copy pathnewick2pdf.py
File metadata and controls
44 lines (39 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import argparse, os, re
from itolapi import Itol
from itolapi import ItolExport
# Read input arguments
parser = argparse.ArgumentParser()
parser.add_argument('--tree', help='newick tree file', required=True)
parser.add_argument('--boot', help='collapse nodes with bootstrap < boot', default=0)
parser.add_argument('--root', help='root outgroup (or midpoint)', default='')
parser.add_argument('--mode', help='display mode', choices=['normal', 'circular'], default='normal')
parser.add_argument('--out', help='pdf outfile', required=True)
args = parser.parse_args()
# Get root
if args.root == 'midpoint':
root = '1'
else:
root = args.root
# Modify tree
cmd = 'java -Xmx16m -jar ~/bin/TreeCollapseCL4.jar -f %s -b %s -r %s' %(args.tree, args.boot, root)
os.system(cmd)
prefix, suffix = re.search('(.*?)\.(.*?)$', args.tree).groups()
tree = '%s_%scoll.%s' %(prefix, args.boot, suffix)
args.tree = '%s.tmp' %(args.tree)
cmd = 'mv %s %s' %(tree, args.tree)
os.system(cmd)
# Upload tree
uploader = Itol.Itol()
uploader.add_variable('treeFile', args.tree)
uploader.add_variable('treeFormat', 'newick')
uploader.add_variable('treeName', args.out)
if args.root == 'midpoint':
uploader.add_variable('midpointRoot', '1')
uploader.upload()
tree_id = uploader.comm.tree_id
# Export tree
exporter = ItolExport.ItolExport()
exporter.set_export_param_value('tree', tree_id)
exporter.set_export_param_value('format', 'pdf')
exporter.set_export_param_value('displayMode', args.mode)
exporter.export(args.out)