annotate galaxy_micropita/src/breadcrumbs/src/circlader/circlader.py @ 3:8fb4630ab314 draft default tip

Uploaded
author sagun98
date Thu, 03 Jun 2021 17:07:36 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
1 #!/usr/bin/env python
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
2
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
3 #-----------------------------------------------------------------------------
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
4 # NAME: circlader.py
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
5 # DESCRIPTION: Circlader (circular cladogram buider) is a python script for
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
6 # creating images of circular cladogram starting from any guide
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
7 # tree in tabular or Newick format
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
8 #
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
9 # Author: Nicola Segata
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
10 # email: nsegata@hsph.harvard.edu
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
11 #
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
12 # Copyright: (c) 2011
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
13 # Licence: <your licence>
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
14 #
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
15 #-----------------------------------------------------------------------------
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
16
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
17
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
18 import os
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
19 import sys,argparse
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
20 import circlader_lib as cir
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
21
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
22 def read_params(args):
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
23 parser = argparse.ArgumentParser(description='Circlader')
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
24
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
25 parser.add_argument('tree_file', nargs='?', default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
26 help= "the input tree in Newick format (unless --tf is specified)"
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
27 "[stdin if not present]")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
28 parser.add_argument('out_image', nargs='?', default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
29 help= "the output image (the format is guessed from the extension "
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
30 "[windows visualization if not present]")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
31 parser.add_argument('--tree_format', choices=['newick','tabular'],
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
32 default='newick', type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
33 help= "specifies the input tree format (default \"newick\", "
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
34 "other choice is \"tabular\")")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
35 parser.add_argument('--style_file', nargs='?', default=os.getcwd()+"/default_styles/style.txt", type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
36 help= "set the style file (default_styles/style.txt if not specified)")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
37 parser.add_argument('--color_file', nargs='?', default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
38 help= "set the color file (default_styles/colors.txt if not specified)")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
39 parser.add_argument('--highlight_file', nargs='?', default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
40 help= "set the highlight file (default none)")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
41 parser.add_argument('--tick_file', nargs='?', default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
42 help= "set the label file for level's names (default none)")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
43 parser.add_argument('--size_file', nargs='?', default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
44 help= "set the file containing the dimentison of the circles (default none)")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
45 parser.add_argument('--circle_file', nargs='?', default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
46 help= "set the external circles file (default none) [BETA FEATURE]")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
47 parser.add_argument('--format', choices=['png','pdf','ps','eps','svg'], default=None, type=str,
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
48 help= "set the format of the output image (default none "
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
49 "meaning that the format is guessed from the output "
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
50 "file extension)")
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
51 parser.add_argument('--dpi', default=300, type=int )
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
52
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
53 return vars(parser.parse_args())
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
54
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
55 params = read_params(sys.argv)
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
56
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
57 cladogram = cir.Tree()
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
58 cladogram.read_colors(params['color_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
59 cladogram.read_style(params['style_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
60 cladogram.read_sizes(params['size_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
61 cladogram.read_circles(params['circle_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
62 cladogram.read_highlights(params['highlight_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
63 cladogram.read_tick_labels(params['tick_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
64 if params['tree_format'] == 'newick':
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
65 cladogram.load_newick(params['tree_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
66 else:
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
67 cladogram.load_lefse(params['tree_file'])
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
68 cladogram.pos_rad_leaves()
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
69 cladogram.set_pos()
8fb4630ab314 Uploaded
sagun98
parents:
diff changeset
70 cladogram.draw(params['out_image'],outformat=params['format'],dpi=params['dpi'])