diff src/breadcrumbs/src/circlader/circlader.py @ 0:2f4f6f08c8c4 draft

Uploaded
author george-weingart
date Tue, 13 May 2014 21:58:57 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/breadcrumbs/src/circlader/circlader.py	Tue May 13 21:58:57 2014 -0400
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+
+#-----------------------------------------------------------------------------
+# NAME: circlader.py
+# DESCRIPTION:  Circlader (circular cladogram buider) is a python script for
+#               creating images of circular cladogram starting from any guide
+#               tree in tabular or Newick format
+#
+# Author: Nicola Segata
+# email: nsegata@hsph.harvard.edu
+#
+# Copyright: (c) 2011
+# Licence: <your licence>
+#
+#-----------------------------------------------------------------------------
+
+
+import os
+import sys,argparse
+import circlader_lib as cir
+
+def read_params(args):
+    parser = argparse.ArgumentParser(description='Circlader')
+
+    parser.add_argument('tree_file', nargs='?', default=None, type=str,
+            help=   "the input tree in Newick format (unless --tf is specified)"
+                    "[stdin if not present]")
+    parser.add_argument('out_image', nargs='?', default=None, type=str,
+            help=   "the output image (the format is guessed from the extension "
+                    "[windows visualization if not present]")  
+    parser.add_argument('--tree_format', choices=['newick','tabular'], 
+                        default='newick', type=str,
+            help=       "specifies the input tree format (default \"newick\", "
+                        "other choice is \"tabular\")")
+    parser.add_argument('--style_file', nargs='?', default=os.getcwd()+"/default_styles/style.txt", type=str,
+            help=       "set the style file (default_styles/style.txt if not specified)")
+    parser.add_argument('--color_file', nargs='?', default=None, type=str,
+            help=       "set the color file (default_styles/colors.txt if not specified)")
+    parser.add_argument('--highlight_file', nargs='?', default=None, type=str,
+            help=       "set the highlight file (default none)")
+    parser.add_argument('--tick_file', nargs='?', default=None, type=str,
+            help=       "set the label file for level's names (default none)")
+    parser.add_argument('--size_file', nargs='?', default=None, type=str,
+            help=       "set the file containing the dimentison of the circles (default none)")
+    parser.add_argument('--circle_file', nargs='?', default=None, type=str,
+            help=       "set the external circles file (default none) [BETA FEATURE]")
+    parser.add_argument('--format', choices=['png','pdf','ps','eps','svg'], default=None, type=str,
+            help=       "set the format of the output image (default none "
+                        "meaning that the format is guessed from the output "
+                        "file extension)")
+    parser.add_argument('--dpi', default=300, type=int )
+
+    return vars(parser.parse_args())
+
+params = read_params(sys.argv)
+
+cladogram = cir.Tree()
+cladogram.read_colors(params['color_file'])
+cladogram.read_style(params['style_file'])
+cladogram.read_sizes(params['size_file'])
+cladogram.read_circles(params['circle_file'])
+cladogram.read_highlights(params['highlight_file'])
+cladogram.read_tick_labels(params['tick_file'])
+if params['tree_format'] == 'newick':
+    cladogram.load_newick(params['tree_file'])
+else:
+    cladogram.load_lefse(params['tree_file'])
+cladogram.pos_rad_leaves()
+cladogram.set_pos()
+cladogram.draw(params['out_image'],outformat=params['format'],dpi=params['dpi'])