def _build_logoformat(logodata, opts): """ Extract and process relevant option values and return a LogoFormat object.""" args = {} direct_from_opts = [ # Logo Data Options. "alphabet", "unit_name", "first_index", "logo_start", "logo_end", # Logo Format Options. "stack_width", "stacks_per_line", "logo_title", "logo_label", "show_xaxis", "xaxis_label", "annotate", "rotate_numbers", "number_interval", "yaxis_scale", "show_yaxis", "yaxis_label", "show_ends", "fineprint", "yaxis_tic_interval", "show_errorbars", "reverse_stacks", # Color Options. "color_scheme", "default_color", # Font Format Options. "fontsize", "title_fontsize", "small_fontsize", "number_fontsize", "text_font", "logo_font", "title_font", # Advanced Format Options. "stack_aspect_ratio", "show_boxes", "resolution", "scale_width", "debug", "errorbar_fraction", "errorbar_width_fraction", "errorbar_gray", ] for k in direct_from_opts: args[k] = opts.__dict__[k] # logo_size = copy.copy(opts.__dict__['logo_size']) # size_from_opts = ["stack_width", "stack_height"] # for k in size_from_opts : # length = getattr(opts, k) # if length : # setattr( logo_size, k, length ) # args["size"] = logo_size if opts.colors: color_scheme = ColorScheme() for color, symbols, desc in opts.colors: try: # c = Color.from_string(color) color_scheme.rules.append(SymbolColor(symbols, color, desc)) except ValueError: raise ValueError( "error: option --color: invalid value: '%s'" % color) args["color_scheme"] = color_scheme if opts.annotate: args["annotate"] = opts.annotate.split(',') logooptions = LogoOptions() for a, v in iteritems(args): setattr(logooptions, a, v) theformat = LogoFormat(logodata, logooptions) return theformat
def _build_logoformat( logodata, opts) : """ Extract and process relevant option values and return a LogoFormat object.""" args = {} direct_from_opts = [ "stacks_per_line", "logo_title", "yaxis_label", "show_xaxis", "show_yaxis", "xaxis_label", "show_ends", "fineprint", "show_errorbars", "show_boxes", "yaxis_tic_interval", "resolution", "alphabet", "debug", "show_ends", "default_color", #"show_color_key", "color_scheme", "unit_name", "logo_label", "yaxis_scale", "first_index", "logo_start", "logo_end", "scale_width", "annotate", "stack_width", "stack_aspect_ratio", "reverse_stacks" ] for k in direct_from_opts: args[k] = opts.__dict__[k] # logo_size = copy.copy(opts.__dict__['logo_size']) # size_from_opts = ["stack_width", "stack_height"] # for k in size_from_opts : # length = getattr(opts, k) # if length : setattr( logo_size, k, length ) # args["size"] = logo_size if opts.colors: color_scheme = ColorScheme() for color, symbols, desc in opts.colors: try : #c = Color.from_string(color) color_scheme.groups.append( ColorGroup(symbols, color, desc) ) except ValueError : raise ValueError( "error: option --color: invalid value: '%s'" % color ) ##HY April 17 #color_scheme.groups.append(ColorGroup('.', 'white', '')) # removed symbols #color_scheme.groups.append(ColorGroup('-', 'grey', '')) # grey gaps args["color_scheme"] = color_scheme if opts.annotate: args["annotate"] = opts.annotate.split(',') #HY 2015 FEB if opts.color_group_file: color_scheme = ColorScheme() color_specified = {} # key: seq position + base, value: color number. eg. { '5A':'1', '6C':'1', '10G':'2'} ccode=-1; # to make ccode start 0 for line in opts.color_group_file : if line.isspace() : continue l = line.lstrip().rstrip() if l[-1] ==':' : try : ccode += 1 color_scheme.groups.append(ColorGroup(str(ccode), l[:-1], '')) except ValueError : raise ValueError( "error: option custom color group: invalid value: '%s'" % l[:-1] ) else : ptn = re.compile('\d+\s+[ACDEFGHIKLMNOPQRSTUVWYBJZX\*\-\#\.]+', re.IGNORECASE) if (not ptn.match(l)): continue s=l.split() for x in s[1]: color_specified[s[0]+x]=str(ccode) #HY 25, Feb color_scheme.groups.append(ColorGroup('.', 'white', '')) # removed symbols color_scheme.groups.append(ColorGroup('-', 'grey', '')) # grey gaps args["color_scheme"] = color_scheme args["color_specified"] = color_specified #HY 2015 FEB end logooptions = LogoOptions() for a, v in iteritems(args): setattr(logooptions, a, v) theformat = LogoFormat(logodata, logooptions ) return theformat