Module cnvpytor.viewparams
cnvpytor.viewparams
Class ViewParams: parameters and description for Viewer class
Source code
""" cnvpytor.viewparams
Class ViewParams: parameters and description for Viewer class
"""
from __future__ import absolute_import, print_function, division
from .genome import *
import matplotlib.pyplot as plt
import logging
_logger = logging.getLogger("cnvpytor.viewparams")
class ViewParams(object):
default = {
"bin_size": None,
"panels": ["rd"],
"rd_raw": True,
"rd_corrected": True,
"rd_partition": False,
"rd_call": True,
"rd_use_mask": False,
"rd_use_gc_corr": True,
"callers": ["rd_mean_shift"],
"Q0_range": [-1,1],
"pN_range": [-1,1],
"dG_range": [-1,np.inf],
"size_range": [0,np.inf],
"p_range": [0,np.inf],
"annotate": False,
"rd_range": [0, 6],
"rd_manhattan_range": [0, 2],
"rd_manhattan_call": False,
"snp_use_mask": True,
"snp_use_id": False,
"snp_use_phase": False,
"snp_call": True,
"markersize": "auto",
"lh_markersize": 20,
"lh_marker": "_",
"rd_colors": ["grey", "black", "red", "green", "blue", "cyan"],
"legend": False,
"title": True,
"snp_colors": ["orange", "brown", "green", "blue", "yellow", "red", "orange", "brown"],
"snp_alpha_P": False,
"rd_circular_colors": ["#555555", "#aaaaaa"],
"snp_circular_colors": ["#00ff00", "#0000ff"],
"baf_colors": ["gray", "black", "red", "green", "blue"],
"lh_colors": ["yellow", "red"],
"plot_files": [],
"plot_file": 0,
"plot": False,
"file_titles": [],
"chrom": [],
"style": None,
"grid": "auto",
"subgrid": "vertical",
"panel_size": [8,6],
"xkcd": False,
"margins": [0.05, 0.95, 0.1, 0.98, 0.1, 0.2],
"dpi": 200,
"output_filename": "",
"print_filename": "",
"contrast": 20,
"min_segment_size": 0
}
def __init__(self, params):
for key in self.default:
if key in params:
setattr(self, key, params[key])
else:
setattr(self, key, self.default[key])
for p in self.params:
self.command_tree["set"][p] = None
self.command_tree["unset"][p] = None
for c in self.param_help:
self.command_tree["help"][c] = None
self.command_tree["set"]["panels"] = {}
for panel1 in ["rd", "likelihood", "snp", "baf", "snv", "CN"]:
self.command_tree["set"]["panels"][panel1] = self.command_tree["set"]["panels"]
self.command_tree["set"]["callers"] = {}
for caller in ["rd_mean_shift","rd_mosaic","baf_mosaic","combined_mosaic"]:
self.command_tree["set"]["callers"][caller] = self.command_tree["set"]["callers"]
self.command_tree["set"]["grid"] = {"auto": None, "horizontal": None, "vertical": None}
self.command_tree["set"]["subgrid"] = {"auto": None, "horizontal": None, "vertical": None}
self.interactive = True
def set(self, param, args):
try:
if param in self.params and self.params[param] is False:
self.__setattr__(param, True)
elif param.find(".") > 0:
sp = param.split(".")
if len(sp) == 2 and (sp[0] in self.params) and sp[0][-7:] == "_colors" and sp[1].isdigit():
ix = int(sp[1])
self.params[sp[0]][ix] = args[0]
if len(sp) == 2 and sp[0]=="margins" and sp[1].isdigit():
ix = int(sp[1])
self.params[sp[0]][ix] = float(args[0])
elif param == "margins":
if len(args) > 0:
self.__setattr__(param, list(map(float, args)))
elif param == "bin_size":
if len(args) > 0:
self.__setattr__(param, args[0])
elif param == "contrast":
if len(args) > 0:
self.__setattr__(param, float(args[0]))
elif param == "markersize":
if len(args) > 0:
if args[0] == "auto":
self.__setattr__(param, "auto")
else:
self.__setattr__(param, float(args[0]))
elif param == "lh_markersize":
if len(args) > 0:
self.__setattr__(param, float(args[0]))
elif param == "lh_marker":
if len(args) > 0:
self.__setattr__(param, args[0])
elif param == "grid":
if len(args) > 0:
if args[0] in ["auto", "horizontal", "vertical"]:
self.__setattr__(param, args[0])
else:
self.__setattr__(param, list(map(int, args[:2])))
elif param == "subgrid":
if len(args) > 0:
if args[0] in ["auto", "horizontal", "vertical"]:
self.__setattr__(param, args[0])
else:
self.__setattr__(param, list(map(int, args[:2])))
elif param == "panel_size":
if len(args) > 0:
self.__setattr__(param, list(map(float, args[:2])))
elif param == "dpi":
if len(args) > 0:
self.__setattr__(param, int(args[0]))
elif param == "Q0_range":
if len(args) > 1:
self.__setattr__(param, list(map(float, args[:2])))
elif param == "pN_range":
if len(args) > 1:
self.__setattr__(param, list(map(float, args[:2])))
elif param == "size_range":
if len(args) > 1:
if args[1]=="inf":
self.__setattr__(param, [int(args[0]),np.inf])
else:
self.__setattr__(param, list(map(int, args[:2])))
elif param == "dG_range":
if len(args) > 1:
if args[1]=="inf":
self.__setattr__(param, [int(args[0]),np.inf])
else:
self.__setattr__(param, list(map(int, args[:2])))
elif param == "p_range":
if len(args) > 1:
self.__setattr__(param, list(map(float, args[:2])))
elif param == "rd_range":
if len(args) > 1:
self.__setattr__(param, list(map(float, args[:2])))
elif param == "rd_manhattan_range":
if len(args) > 1:
self.__setattr__(param, list(map(float, args[:2])))
elif param == "min_segment_size":
if len(args) > 0:
self.__setattr__(param, int(args[0]))
elif param == "output_filename":
if len(args) > 0:
self.__setattr__(param, args[0])
elif param == "print_filename":
if len(args) > 0:
if args[0].split(".")[-1] in ["tsv", "vcf", "xlsx"]:
self.__setattr__(param, args[0])
else:
raise(ValueError)
elif param == "plot_file":
if len(args) > 0:
self.__setattr__(param, int(args[0]))
elif param == "plot_files":
self.__setattr__(param, list(map(int, args)))
elif param == "style":
if len(args) > 0:
self.__setattr__(param, args[0])
elif param in self.params and self.params[param] is not True:
self.__setattr__(param, args)
if param in self.params:
if self.interactive:
print(" * %s: %s" % (param, str(self.params[param])))
else:
sp = param.split(".")
if sp[0] in self.params:
if self.interactive:
print(" * %s: %s" % (sp[0], str(self.params[sp[0]])))
except ValueError:
_logger.warning("Value error while setting %s!" % param)
def unset(self, param):
if param in self.params:
if type(self.default[param]) == type(True):
self.__setattr__(param, False)
else:
self.__setattr__(param, self.default[param])
print(" * %s: %s" % (param, str(self.params[param])))
@property
def params(self):
dct = {}
for key in self.default:
dct[key] = getattr(self, key)
return dct
@property
def bin_size_f(self):
"""
Formatted bin_size (e.g. 1000 -> "1K", 10000000 -> "10M")
Returns
-------
bin_size_f : str
"""
return binsize_format(self.params["bin_size"])
def __setattr__(self, name, value):
if name == 'bin_size' and value is not None:
try:
value = binsize_type(value)
except (ArgumentTypeError, ValueError):
_logger.warning("bin_size should be integer divisible by 100")
if name == 'style':
if value in plt.style.available:
plt.style.use("default")
plt.style.use(value)
if name == 'xkcd':
if value:
self.style = "classic"
from matplotlib import patheffects
plt.xkcd()
plt.rcParams["path.effects"] = [patheffects.withStroke(linewidth=0.5, foreground="w")]
elif hasattr(self, name) and self.xkcd:
plt.rcdefaults()
self.style = 'classic'
super(ViewParams, self).__setattr__(name, value)
class HelpDescription(object):
default = ViewParams.default
command_tree = {
"set": {},
"unset": {},
"help": {},
"save": None,
"show": None,
"quit": None,
"exit": None,
"rd": None,
"likelihood": None,
"baf": None,
"snp": None,
"info": None,
"stat": None,
"rdstat": None,
"circular": None,
"manhattan": None,
"genotype":None,
"calls": None,
"print": {"calls", "joint_calls"},
"ls": None,
"meta": None,
"compare": None
}
param_help = {
"help": help_format(
topic="help",
p_desc="Print help for a topic, command or parameter.",
p_usage="help <topic>\n\nList of params: " +
", ".join(default.keys()) +
"\n\nList of commands: " +
", ".join(command_tree.keys()) +
"\n\nList of topics: plotting, signals",
p_example="help bin_size\nhelp plotting"
),
"plotting": help_format(
topic="PLOTTING",
p_desc="There are several types of plots:\n" +
" * genome wide plots: rdstat, stat, rd, baf, snp, likelihood\n" +
" * regions: genomic regions separated by space (new subplot) and comma (same subplot)\n" +
" * manhattan: manhattan style whole genome plot\n" +
" * calls: plot calls\n"
" * circular: circular plots of read-depth and MAF",
p_example="chr1:1M-20M\nchr21\nchr1:1M-20M,chr2:30M-45M chr21",
p_see="regions, rdstat, stat, rd, baf, snp, likelihood, manhattan, calls, circular"
),
"regions": help_format(
topic="Region plot",
p_desc="Command line is string composed of comma or space separated regions.\n" +
"Regions are defined by string using following format: CHR[:START-END]]\n" +
"If regions are separated by comma they will be ploted in the same subplot. \n" +
"Each region is ploted using multiple panes defined by 'panels' parameter." +
"Available panels are: rd, likelihood, snp, snv, snv:callset",
p_usage="CHR[:START-END]]",
p_example="chr1:1M-20M\nchr21\nchr1:1M-20M,chr2:30M-45M chr21",
p_see="plotting, panels, rdstat, stat, rd, baf, snp, likelihood, manhattan, calls, circular"
),
"signals": help_format(
topic="SIGNALS",
p_desc="...",
p_see="plotting"
),
"set": help_format(
topic="set",
p_desc="Set parameter value. " +
"Requires argument or list of arguments except in the case when parameter type is bool.",
p_usage="set param [value]",
p_example="set bin_size 100000\nset rd_call_mosaic\nset panels rd likelihood",
p_see="unset"
),
"unset": help_format(
topic="unset",
p_desc="Set bool parameter to False.",
p_usage="unset param",
p_example="unset rd_call_mosaic",
p_see="unset"
),
"save": help_format(
topic="save",
p_desc="Save current figure to file. There is a shortcut (see examples): " +
"redirection '>' after plotting command.\n" +
"Available formats:\n" +
" * pgf - PGF code for LaTeX\n" +
" * svgz - Scalable Vector Graphics\n" +
" * tiff - Tagged Image File Format\n" +
" * jpg - Joint Photographic Experts Group\n" +
" * raw - Raw RGBA bitmap\n" +
" * jpeg - Joint Photographic Experts Group\n" +
" * png - Portable Network Graphics\n" +
" * ps - Postscript\n" +
" * svg - Scalable Vector Graphics\n" +
" * eps - Encapsulated Postscript\n" +
" * rgba - Raw RGBA bitmap\n" +
" * pdf - Portable Document Format\n" +
" * tif - Tagged Image File Format",
p_usage="save filename",
p_example="save image.png\n manhattan > image.png\n chr1:20M-50M > image.png",
p_see="output_filename"
),
"show": help_format(
topic="show",
p_desc="Lists all parameters with values",
p_usage="show",
p_see="set, unset"
),
"quit": help_format(
topic="quit",
p_desc="Exists interactive mode.",
p_usage="quit",
p_see="help, exit"
),
"exit": help_format(
topic="quit",
p_desc="Exists interactive mode.",
p_usage="quit",
p_see="help, quit"
),
"rd": help_format(
topic="rd",
p_desc="Genome wide plot. Plots rd signal from a single cnvpytor file defined by 'plot_file' parameter.",
p_usage="rd",
p_example="rd",
p_see="plotting, regions, panels, rdstat, stat, baf, snp, likelihood, manhattan, calls, circular"
),
"likelihood": help_format(
topic="likelihood",
p_desc="Genome wide plot. Plots likelihood from a single cnvpytor file defined by 'plot_file' parameter.",
p_usage="likelihood",
p_example="likelihood",
p_see="plotting, regions, panels, rd, rdstat, stat, baf, snp, manhattan, calls, circular"
),
"snp": help_format(
topic="snp",
p_desc="Genome wide plot. Plots SNPs from a single cnvpytor file defined by 'plot_file' parameter.",
p_usage="snp",
p_example="snp",
p_see="plotting, regions, panels, rdstat, stat, baf, rd, likelihood, manhattan, calls, circular"
),
"baf": help_format(
topic="baf",
p_desc="Genome wide plot. Plots baf signals from a single cnvpytor file defined by 'plot_file' parameter.",
p_usage="baf",
p_example="baf",
p_see="plotting, regions, panels, rdstat, stat, rd, snp, likelihood, manhattan, calls, circular"
),
"stat": help_format(
topic="stat",
p_desc="Plot RD distribution and GC correction curve for bin size given by parameter 'bin_size'.",
p_usage="stat",
p_example="stat",
p_see="rdstat, plotting, bin_size"
),
"rdstat": help_format(
topic="rdstat",
p_desc="Plot RD distribution and GC correction curve for 100 bp bin size.",
p_usage="rdstat",
p_example="rdstat",
p_see="stat, plotting"
),
"circular": help_format(
topic="circular",
p_desc="Plots RD and MAF signal in circular plot for all chromosomes defined by 'chrom' parameter.",
p_usage="circular",
p_example="circular",
p_see="plotting, manhattan, chrom, bin_size"
),
"manhattan": help_format(
topic="manhattan",
p_desc="Scatter plot of RD signal for all chromosomes defined by 'chrom' parameter.",
p_usage="manhattan",
p_example="manhattan",
p_see="plotting, circular, chrom, bin_size"
),
"calls": help_format(
topic="calls",
p_desc="Line plot of SNP calls for all chromosomes defined by 'chrom' parameter.",
p_usage="calls",
p_example="calls",
p_see="plotting, manhattan, chrom, bin_size"
),
"compare": help_format(
topic="compare",
p_desc="Compare RD in two genomic regions. Plot and print statistics to stdout for each file\n" +
"defined by 'plot_files' parameter. Printed columns are:\n" +
"filename, REGION1, REGION2, mean rd in REGION1, stdev in REGION1\n" +
"mean rd in REGION2, stdev in REGION2, t-test P value, RD ratio, RD ratio error.",
p_usage="compare REGION1 REGION2",
p_example="compare 1:10M-20M 2:25M-45M\ncompare 1 X",
p_see="rdstat, stat"
),
"ls": help_format(
topic="ls",
p_desc="Print content of pytor files",
p_usage="ls",
p_see="show"
),
"meta": help_format(
topic="ls",
p_desc="Print meta information",
p_usage="ls",
p_see="show"
),
"bin_size": help_format(
topic="bin_size",
p_desc="Size of bins used for plotting",
p_type="binsize_type (int divisible by 100)",
p_default=str(default["bin_size"]),
p_affects="all",
p_example="set bin_size 100000",
p_see="output_filename, xkcd"
),
"panels": help_format(
topic="panels",
p_desc="List of panels to plot. Possible options are:\n" +
" rd - read depth plot,\n" +
" likelihood - baf likelihood 2D plot,\n" +
" baf - binned baf, maf and likelihood peak position,\n" +
" snp - plot baf for each particular SNP",
p_type="list of strings",
p_default=str(default["panels"]),
p_affects="region plot, manhattan",
p_example="set panels rd likelihood",
p_see="grid"
),
"rd_partition": help_format(
topic="rd_partition",
p_desc="Enables plotting partition signal in rd plots",
p_type="bool",
p_default=str(default["rd_partition"]),
p_affects="region plot, rd",
p_example="set rd_partition\nunset rd_partition",
p_see="rd_call"
),
"rd_call": help_format(
topic="rd_call",
p_desc="Enables plotting call signal in rd plots",
p_type="bool",
p_default=str(default["rd_call"]),
p_affects="region plot, rd",
p_example="set rd_call\nunset rd_call",
p_see="rd_partition"
),
"rd_raw": help_format(
topic="rd_raw",
p_desc="Enables plotting raw signal in rd plots",
p_type="bool",
p_default=str(default["rd_raw"]),
p_affects="region plot, rd",
p_example="set rd_raw\nunset rd_raw",
p_see="rd_corrected, rd_partition, rd_call, rd_call_mosaic"
),
"rd_corrected": help_format(
topic="rd_corrected",
p_desc="Enables plotting raw signal in rd plots",
p_type="bool",
p_default=str(default["rd_corrected"]),
p_affects="region plot, rd",
p_example="set rd_corrected\nunset rd_corrected",
p_see="rd_raw, rd_partition, rd_call, rd_call_mosaic"
),
"rd_use_mask": help_format(
topic="rd_use_mask",
p_desc="If set for all plots rd signal with P mask will be used.",
p_type="bool",
p_default=str(default["rd_use_mask"]),
p_affects="region plot, rd",
p_example="set rd_use_mask\nunset rd_use_mask",
p_see="rd_use_gc_corr, snp_use_mask, snp_use_id, snp_use_phase"
),
"rd_use_gc_corr": help_format(
topic="rd_use_gc_corr",
p_desc="If set for all plots rd signal with gc correction will be used.",
p_type="bool",
p_default=str(default["rd_use_gc_corr"]),
p_affects="region plot, rd",
p_example="set rd_use_gc_corr\nunset rd_use_gc_corr",
p_see="rd_use_mask, snp_use_mask, snp_use_id, snp_use_phase"
),
"rd_range": help_format(
topic="rd_range",
p_desc="Range used for y-axis in rd plots defined in mean rd.",
p_type="two floats",
p_default=str(default["rd_range"]),
p_affects="region plot, rd",
p_example="set rd_range 0 2\nunset rd_range",
p_see="rd_manhattan_range, rd_colors"
),
"rd_manhattan_range": help_format(
topic="rd_manhattan_range",
p_desc="Range used for y-axis in manhattan rd plot defined in copy numbers",
p_type="two floats",
p_default=str(default["rd_range"]),
p_affects="manhattan",
p_example="set rd_manhattan_range 0 2\nunset rd_manhattan_range",
p_see="rd_range, rd_colors"
),
"rd_manhattan_call": help_format(
topic="rd_manhattan_call",
p_desc="Enables plotting call signal (defined by parameters rd_call and rd_call_mosaic) in manhattan plots",
p_type="bool",
p_default=str(default["rd_manhattan_call"]),
p_affects="manhattan",
p_example="set rd_manhattan_call\nunset rd_manhattan_call",
p_see="rd_partition, rd_call, rd_call_mosaic"
),
"snp_use_mask": help_format(
topic="snp_use_mask",
p_desc="If set for all plots snp signal with P mask will be used.",
p_type="bool",
p_default=str(default["snp_use_mask"]),
p_affects="region plot, likelihood, baf, snp",
p_example="set snp_use_mask\nunset snp_use_mask",
p_see="rd_use_gc_corr, rd_use_mask, snp_use_id, snp_use_phase"
),
"snp_use_id": help_format(
topic="snp_use_mask",
p_desc="If set for all plots snp signal with ID filter will be used.",
p_type="bool",
p_default=str(default["snp_use_id"]),
p_affects="region plot, likelihood, baf, snp",
p_example="set snp_use_id\nunset snp_use_id",
p_see="rd_use_gc_corr, rd_use_mask, snp_use_mask, snp_use_phase"
),
"snp_use_phase": help_format(
topic="snp_use_mask",
p_desc="If set for all plots phased snp signal will be used.",
p_type="bool",
p_default=str(default["snp_use_phase"]),
p_affects="region plot, likelihood, baf, snp",
p_example="set snp_use_phase\nunset snp_use_phase",
p_see="rd_use_gc_corr, rd_use_mask, snp_use_mask, snp_use_id"
),
"snp_call": help_format(
topic="snp_call",
p_desc="Enables plotting call signal in likelihood/baf plots",
p_type="bool",
p_default=str(default["snp_call"]),
p_affects="region plot, rd",
p_example="set snp_call\nunset snp_call",
p_see="rd_call, rd_call_mosaic"
),
"markersize": help_format(
topic="markersize",
p_desc="Size of markers used in scatter like plots (e.g. manhattan, snp).",
p_type="float or str",
p_default=str(default["markersize"]),
p_affects="manhattan, snp, region plot with snp panel",
p_example="set markersize 10\nset markersize auto",
p_see="rd_colors, snp_colors, baf_colors, lh_colors"
),
"rd_colors": help_format(
topic="rd_colors",
p_desc="Colors used in rd plot.\n" +
"Colors correspond to following signals: raw, gc corrected, partition, call, mosaic call",
p_type="list of strings",
p_default=str(default["rd_colors"]),
p_affects="rd, region plot with rd panel",
p_example="set rd_colors red grey green black blue cyan\nunset rd_colors\nset rd_colors.1 red",
p_see="markersize, snp_colors, baf_colors, lh_colors"
),
"legend": help_format(
topic="legend",
p_desc="Enables legend in region plots",
p_type="bool",
p_default=str(default["legend"]),
p_affects="region plot, rd, baf",
p_example="set legend\nunset legend",
p_see="rd_range, rd_call"
),
"title": help_format(
topic="title",
p_desc="Enables title in region plots",
p_type="bool",
p_default=str(default["legend"]),
p_affects="region plot, rd, baf",
p_example="set title\nunset title",
p_see="legend"
),
"snp_colors": help_format(
topic="snp_colors",
p_desc="Colors used in snp plot.\n" +
"Eight colors correspond to following SNPs:\n" +
" " + TerminalColor.YELLOW + "0|0 out of P region, " + TerminalColor.YELLOW2 + "0|0 inside P region,\n" +
" " + TerminalColor.CYAN + "0|1 out of P region, " + TerminalColor.BLUE + "0|1 inside P region,\n" +
" " + TerminalColor.GREEN2 + "1|0 out of P region, " + TerminalColor.GREEN + "1|0 inside P region,\n" +
" " + TerminalColor.YELLOW + "1|1 out of P region, " + TerminalColor.YELLOW2 + "1|1 inside P region.\n" +
TerminalColor.DARKCYAN + "P region refers to 1kG project strict mask.\n" +
"If snp_alpha_P is set, transparency will be used instead colors for out of P region SNPs.\n",
p_type="list of strings",
p_default=str(default["snp_colors"]),
p_affects="snp, region plot with snp panel",
p_example="set snp_colors red grey green black blue yellow orange cyan\nunset snp_colors\nset snp_colors.7 red",
p_see="markersize, rd_colors, baf_colors, lh_colors"
),
"snp_alpha_P": help_format(
topic="snp_alpha_P",
p_desc="If set, alpha color value will be used for non-P region SNPs.",
p_type="bool",
p_default=str(default["snp_alpha_P"]),
p_affects="region plot, snp",
p_example="set snp_alpha_P\nunset snp_alpha_P",
p_see="snp_colors, snp_use_mask, snp_use_id"
),
"baf_colors": help_format(
topic="baf_colors",
p_desc="Colors used in baf plot.\n" +
"Colors correspond to following signals: baf, maf, i1 (p2p distance in likelihood function)",
p_type="list of strings",
p_default=str(default["baf_colors"]),
p_affects="baf, region plot with baf panel",
p_example="set baf_colors red grey green\nunset baf_colors\nset baf_colors.1 red",
p_see="markersize, snp_colors, rd_colors, lh_colors"
),
"lh_colors": help_format(
topic="lh_colors",
p_desc="Colors used in likelihood plot.\n" +
"Colors correspond to following signals: likelihood call (snp_call parameter)",
p_type="list of strings",
p_default=str(default["lh_colors"]),
p_affects="likelihood, region plot with likelihood panel",
p_example="set baf_colors green\nunset baf_colors\nset baf_colors.0 red",
p_see="markersize, baf_colors, rd_colors, lh_colors, snp_call"
),
"plot_files": help_format(
topic="plot_files",
p_desc="Indices of files to be plot. Only for plots that support multi file plotting.\n" +
"One file can be ploted multiple times. Use 'show' to view list of files.",
p_type="list of integers",
p_default=str(default["plot_files"]),
p_affects="region plot, manhattan, circular, compare",
p_example="set plot_files 0 1 2\nunset plot_files",
p_see="plot_file, panels"
),
"plot_file": help_format(
topic="plot_file",
p_desc="Index of a file to be plot. Only for single file plots.\n" +
"Use 'show' to view list of files.",
p_type="integer",
p_default=str(default["plot_file"]),
p_affects="rd, likelihood, baf, snp, snv",
p_example="set plot_files 0 1 2\nunset plot_files",
p_see="plot_file, panels"
),
"file_titles": help_format(
topic="file_titles",
p_desc="List of titles used with multiple file plots. If empty filename will be used instead.",
p_type="list of str",
p_default=str(default["file_titles"]),
p_affects="manhattan, circular",
p_example="set file_titles Title1 Title2\nunset file_titles",
p_see="plot_files, grid"
),
"chrom": help_format(
topic="chrom",
p_desc="List of chromosomes to be plotted. All available will be plotted if empty.",
p_type="list of str",
p_default=str(default["chrom"]),
p_affects="manhattan, rd, likelihood, baf, snp. snv, circular",
p_example="set chrom 1 2 3 MT\nset chrom chr1 chr15 chrX \nunset chrom",
p_see="plot_files, plot_file"
),
"style": help_format(
topic="style",
p_desc="Matplotlib style to be used.\n" +
"Use double <tab> after 'set style' to get list of all available styles.",
p_type="str",
p_default=str(default["style"]),
p_affects="all plots",
p_example="set style seaborn\nunset style",
p_see="xkcd, chrom, output_filename"
),
"grid": help_format(
topic="grid",
p_desc="Set plot layout grid. Automatic if 'auto'.",
p_type="two integers, 'auto', 'vertical' or 'horizontal'",
p_default=str(default["grid"]),
p_affects="all plots",
p_example="set grid 5 4\nset grid horizontal\nunset grid",
p_see="subgrid, xkcd, chrom, output_filename"
),
"subgrid": help_format(
topic="subgrid",
p_desc="Set plot layout subgrid. Automatic if 'auto'.",
p_type="two integers, 'auto', 'vertical' or 'horizontal'",
p_default=str(default["subgrid"]),
p_affects="plots with multiple panels",
p_example="set subgrid 5 4\nset subgrid horizontal\nunset subgrid",
p_see="grid, xkcd, chrom, output_filename"
),
"panel_size": help_format(
topic="panel_size",
p_desc="Set plot panel size.",
p_type="two floats",
p_default=str(default["panel_size"]),
p_affects="plots with multiple panels",
p_example="set panel_size 8 1\nunset panel_size",
p_see="grid, subgrid, output_filename"
),
"xkcd": help_format(
topic="xkcd",
p_desc="Use xkcd comic plot style (see http://xkcd.com).",
p_type="bool",
p_default=str(default["xkcd"]),
p_affects="all plots",
p_example="set xkcd\nunset xkcd",
p_see="style, chrom, output_filename"
),
"plot": help_format(
topic="plot",
p_desc="Plots when true (works with compare and print).",
p_type="bool",
p_default=str(default["plot"]),
p_affects="compare, print",
p_example="set plot\nunset plot",
p_see="compare, print calls, print join_calls"
),
"output_filename": help_format(
topic="output_filename",
p_desc="If not empty plots will be store into file without plotting on the screen." +
"Use one of following extensions:\n" +
" * pgf - PGF code for LaTeX\n" +
" * svgz - Scalable Vector Graphics\n" +
" * tiff - Tagged Image File Format\n" +
" * jpg - Joint Photographic Experts Group\n" +
" * raw - Raw RGBA bitmap\n" +
" * jpeg - Joint Photographic Experts Group\n" +
" * png - Portable Network Graphics\n" +
" * ps - Postscript\n" +
" * svg - Scalable Vector Graphics\n" +
" * eps - Encapsulated Postscript\n" +
" * rgba - Raw RGBA bitmap\n" +
" * pdf - Portable Document Format\n" +
" * tif - Tagged Image File Format",
p_type="str",
p_default=str(default["output_filename"]),
p_affects="all plots",
p_example="set output_filename filename.png\nunset output_filename",
p_see="save, dpi, style, xkcd"
),
"print_filename": help_format(
topic="output_filename",
p_desc="If not empty calls will be printed into specified file." +
"Use one of following extensions:\n" +
" * tsv - tab separated\n" +
" * xlsx - Excel format\n" +
" * vcf - VCF file format (not working for merged calls)",
p_type="str",
p_default=str(default["output_filename"]),
p_affects="print",
p_example="set print_filename filename.tsv\nunset print_filename",
p_see="print, callers"
),
"callers": help_format(
topic="callers",
p_desc="List of callers to use for plotting and printing. Possible options are:\n" +
" rd_mean_shift - read depth mean shift caller,\n" +
" rd_mosaic - read depth mosaic caller (under development),\n" +
" baf_mosaic - baf mosaic caller (under development),\n" +
" combined_mosaic - read depth and baf mosaic caller (under development).",
p_type="list of strings",
p_default=str(default["callers"]),
p_affects="region plot, manhattan",
p_example="set callers rd_mean_shift\nunset callers",
p_see="plotting, print"
),
"print": help_format(
topic="print",
p_desc="Print filtered calls.",
p_usage="print [calls, joint_calls]",
p_example="print calls\nprint joint_calls",
p_see="Q0_range, p_range, pN_range, size_range, dG_range, callers"
),
"rd_circular_colors": help_format(
topic="rd_circular_colors",
p_desc="Colors used in circular plot for filling chromosomes in rd signal.",
p_type="list of strings",
p_default=str(default["rd_circular_colors"]),
p_affects="circular",
p_example="set rd_circular_colors red grey green black blue\nunset rd_circular_colors\nset rd_circular_colors.1 red",
p_see="snp_circular_colors, circular, rd_colors, snp_colors, baf_colors, lh_colors"
),
"snp_circular_colors": help_format(
topic="snp_circular_colors",
p_desc="Colors used in circular plot for filling chromosomes in snp signal.",
p_type="list of strings",
p_default=str(default["snp_circular_colors"]),
p_affects="circular",
p_example="set snp_circular_colors red grey green black blue\nunset snp_circular_colors\nset snp_circular_colors.1 red",
p_see="rd_circular_colors, circular, rd_colors, snp_colors, baf_colors, lh_colors"
),
"contrast": help_format(
topic="contrast",
p_desc="Contrast used for transparency in snp call plots.",
p_type="float",
p_default=str(default["contrast"]),
p_affects="calls, likelihood, region plot",
p_example="set contrast 100\nunset contrast",
p_see="min_segment_size"
),
"min_segment_size": help_format(
topic="min_segment_size",
p_desc="Threshold for call size used in snp call plots.",
p_type="float",
p_default=str(default["min_segment_size"]),
p_affects="calls, likelihood, region plot",
p_example="set min_segment_size 10\nunset min_segment_size",
p_see="contrast"
),
"Q0_range": help_format(
topic="Q0_range",
p_desc="Range used to filter Q0 for calls",
p_type="two floats",
p_default=str(default["Q0_range"]),
p_affects="calls plot",
p_example="set Q0_range 0 0.5\nunset Q0_range",
p_see="pN_range, size_range, dG_range, p_range"
),
"pN_range": help_format(
topic="pN_range",
p_desc="Range used to filter percentage of reference genome gaps for calls",
p_type="two floats",
p_default=str(default["pN_range"]),
p_affects="calls plot",
p_example="set pN_range 0 0.5\nunset pN_range",
p_see="Q0_range, size_range, dG_range, p_range"
),
"size_range": help_format(
topic="size_range",
p_desc="Range used to filter size of calls",
p_type="two integers or integer and 'inf' (for unlimited upper bound)",
p_default=str(default["size_range"]),
p_affects="calls plot",
p_example="set size_range 100000 10000000\nset dG_range 100000 inf\nunset size_range",
p_see="Q0_range, pN_range, p_range, dG_range"
),
"dG_range": help_format(
topic="size_range",
p_desc="Range used to filter calls on distance from closest large (>100bp) gap in reference genome",
p_type="two integers or integer and 'inf' (for unlimited upper bound)",
p_default=str(default["dG_range"]),
p_affects="calls plot",
p_example="set dG_range 100000 10000000\nset dG_range 100000 inf\nunset dG_range",
p_see="Q0_range, pN_range, size_range, p_range"
),
"p_range": help_format(
topic="p_range",
p_desc="Range used to filter size of calls",
p_type="two floats",
p_default=str(default["p_range"]),
p_affects="calls plot",
p_example="set p_range 0 0.000001\nunset p_range",
p_see="Q0_range, pN_range, size_range, dG_range"
),
"dpi": help_format(
topic="dpi",
p_desc="Resolution (dots per inch) used for plotting.",
p_type="int",
p_default=str(default["dpi"]),
p_affects="calls, likelihood, region plot",
p_example="set dpi 300\nunset dpi",
p_see="margins, style, output_filename, xkcd"
),
"margins": help_format(
topic="margins",
p_desc="Margins used for matplotlib figure:\n" +
"[bottom, top, left, right, wspace, hspace]",
p_type="list of floats",
p_default=str(default["margins"]),
p_affects="all plots",
p_example="set margins 0 0 0 0 0 0\nunset margins\nset margins.3 0.2",
p_see="style, output_filename, dpi"
),
}
Classes
class HelpDescription (*args, **kwargs)
-
Source code
class HelpDescription(object): default = ViewParams.default command_tree = { "set": {}, "unset": {}, "help": {}, "save": None, "show": None, "quit": None, "exit": None, "rd": None, "likelihood": None, "baf": None, "snp": None, "info": None, "stat": None, "rdstat": None, "circular": None, "manhattan": None, "genotype":None, "calls": None, "print": {"calls", "joint_calls"}, "ls": None, "meta": None, "compare": None } param_help = { "help": help_format( topic="help", p_desc="Print help for a topic, command or parameter.", p_usage="help <topic>\n\nList of params: " + ", ".join(default.keys()) + "\n\nList of commands: " + ", ".join(command_tree.keys()) + "\n\nList of topics: plotting, signals", p_example="help bin_size\nhelp plotting" ), "plotting": help_format( topic="PLOTTING", p_desc="There are several types of plots:\n" + " * genome wide plots: rdstat, stat, rd, baf, snp, likelihood\n" + " * regions: genomic regions separated by space (new subplot) and comma (same subplot)\n" + " * manhattan: manhattan style whole genome plot\n" + " * calls: plot calls\n" " * circular: circular plots of read-depth and MAF", p_example="chr1:1M-20M\nchr21\nchr1:1M-20M,chr2:30M-45M chr21", p_see="regions, rdstat, stat, rd, baf, snp, likelihood, manhattan, calls, circular" ), "regions": help_format( topic="Region plot", p_desc="Command line is string composed of comma or space separated regions.\n" + "Regions are defined by string using following format: CHR[:START-END]]\n" + "If regions are separated by comma they will be ploted in the same subplot. \n" + "Each region is ploted using multiple panes defined by 'panels' parameter." + "Available panels are: rd, likelihood, snp, snv, snv:callset", p_usage="CHR[:START-END]]", p_example="chr1:1M-20M\nchr21\nchr1:1M-20M,chr2:30M-45M chr21", p_see="plotting, panels, rdstat, stat, rd, baf, snp, likelihood, manhattan, calls, circular" ), "signals": help_format( topic="SIGNALS", p_desc="...", p_see="plotting" ), "set": help_format( topic="set", p_desc="Set parameter value. " + "Requires argument or list of arguments except in the case when parameter type is bool.", p_usage="set param [value]", p_example="set bin_size 100000\nset rd_call_mosaic\nset panels rd likelihood", p_see="unset" ), "unset": help_format( topic="unset", p_desc="Set bool parameter to False.", p_usage="unset param", p_example="unset rd_call_mosaic", p_see="unset" ), "save": help_format( topic="save", p_desc="Save current figure to file. There is a shortcut (see examples): " + "redirection '>' after plotting command.\n" + "Available formats:\n" + " * pgf - PGF code for LaTeX\n" + " * svgz - Scalable Vector Graphics\n" + " * tiff - Tagged Image File Format\n" + " * jpg - Joint Photographic Experts Group\n" + " * raw - Raw RGBA bitmap\n" + " * jpeg - Joint Photographic Experts Group\n" + " * png - Portable Network Graphics\n" + " * ps - Postscript\n" + " * svg - Scalable Vector Graphics\n" + " * eps - Encapsulated Postscript\n" + " * rgba - Raw RGBA bitmap\n" + " * pdf - Portable Document Format\n" + " * tif - Tagged Image File Format", p_usage="save filename", p_example="save image.png\n manhattan > image.png\n chr1:20M-50M > image.png", p_see="output_filename" ), "show": help_format( topic="show", p_desc="Lists all parameters with values", p_usage="show", p_see="set, unset" ), "quit": help_format( topic="quit", p_desc="Exists interactive mode.", p_usage="quit", p_see="help, exit" ), "exit": help_format( topic="quit", p_desc="Exists interactive mode.", p_usage="quit", p_see="help, quit" ), "rd": help_format( topic="rd", p_desc="Genome wide plot. Plots rd signal from a single cnvpytor file defined by 'plot_file' parameter.", p_usage="rd", p_example="rd", p_see="plotting, regions, panels, rdstat, stat, baf, snp, likelihood, manhattan, calls, circular" ), "likelihood": help_format( topic="likelihood", p_desc="Genome wide plot. Plots likelihood from a single cnvpytor file defined by 'plot_file' parameter.", p_usage="likelihood", p_example="likelihood", p_see="plotting, regions, panels, rd, rdstat, stat, baf, snp, manhattan, calls, circular" ), "snp": help_format( topic="snp", p_desc="Genome wide plot. Plots SNPs from a single cnvpytor file defined by 'plot_file' parameter.", p_usage="snp", p_example="snp", p_see="plotting, regions, panels, rdstat, stat, baf, rd, likelihood, manhattan, calls, circular" ), "baf": help_format( topic="baf", p_desc="Genome wide plot. Plots baf signals from a single cnvpytor file defined by 'plot_file' parameter.", p_usage="baf", p_example="baf", p_see="plotting, regions, panels, rdstat, stat, rd, snp, likelihood, manhattan, calls, circular" ), "stat": help_format( topic="stat", p_desc="Plot RD distribution and GC correction curve for bin size given by parameter 'bin_size'.", p_usage="stat", p_example="stat", p_see="rdstat, plotting, bin_size" ), "rdstat": help_format( topic="rdstat", p_desc="Plot RD distribution and GC correction curve for 100 bp bin size.", p_usage="rdstat", p_example="rdstat", p_see="stat, plotting" ), "circular": help_format( topic="circular", p_desc="Plots RD and MAF signal in circular plot for all chromosomes defined by 'chrom' parameter.", p_usage="circular", p_example="circular", p_see="plotting, manhattan, chrom, bin_size" ), "manhattan": help_format( topic="manhattan", p_desc="Scatter plot of RD signal for all chromosomes defined by 'chrom' parameter.", p_usage="manhattan", p_example="manhattan", p_see="plotting, circular, chrom, bin_size" ), "calls": help_format( topic="calls", p_desc="Line plot of SNP calls for all chromosomes defined by 'chrom' parameter.", p_usage="calls", p_example="calls", p_see="plotting, manhattan, chrom, bin_size" ), "compare": help_format( topic="compare", p_desc="Compare RD in two genomic regions. Plot and print statistics to stdout for each file\n" + "defined by 'plot_files' parameter. Printed columns are:\n" + "filename, REGION1, REGION2, mean rd in REGION1, stdev in REGION1\n" + "mean rd in REGION2, stdev in REGION2, t-test P value, RD ratio, RD ratio error.", p_usage="compare REGION1 REGION2", p_example="compare 1:10M-20M 2:25M-45M\ncompare 1 X", p_see="rdstat, stat" ), "ls": help_format( topic="ls", p_desc="Print content of pytor files", p_usage="ls", p_see="show" ), "meta": help_format( topic="ls", p_desc="Print meta information", p_usage="ls", p_see="show" ), "bin_size": help_format( topic="bin_size", p_desc="Size of bins used for plotting", p_type="binsize_type (int divisible by 100)", p_default=str(default["bin_size"]), p_affects="all", p_example="set bin_size 100000", p_see="output_filename, xkcd" ), "panels": help_format( topic="panels", p_desc="List of panels to plot. Possible options are:\n" + " rd - read depth plot,\n" + " likelihood - baf likelihood 2D plot,\n" + " baf - binned baf, maf and likelihood peak position,\n" + " snp - plot baf for each particular SNP", p_type="list of strings", p_default=str(default["panels"]), p_affects="region plot, manhattan", p_example="set panels rd likelihood", p_see="grid" ), "rd_partition": help_format( topic="rd_partition", p_desc="Enables plotting partition signal in rd plots", p_type="bool", p_default=str(default["rd_partition"]), p_affects="region plot, rd", p_example="set rd_partition\nunset rd_partition", p_see="rd_call" ), "rd_call": help_format( topic="rd_call", p_desc="Enables plotting call signal in rd plots", p_type="bool", p_default=str(default["rd_call"]), p_affects="region plot, rd", p_example="set rd_call\nunset rd_call", p_see="rd_partition" ), "rd_raw": help_format( topic="rd_raw", p_desc="Enables plotting raw signal in rd plots", p_type="bool", p_default=str(default["rd_raw"]), p_affects="region plot, rd", p_example="set rd_raw\nunset rd_raw", p_see="rd_corrected, rd_partition, rd_call, rd_call_mosaic" ), "rd_corrected": help_format( topic="rd_corrected", p_desc="Enables plotting raw signal in rd plots", p_type="bool", p_default=str(default["rd_corrected"]), p_affects="region plot, rd", p_example="set rd_corrected\nunset rd_corrected", p_see="rd_raw, rd_partition, rd_call, rd_call_mosaic" ), "rd_use_mask": help_format( topic="rd_use_mask", p_desc="If set for all plots rd signal with P mask will be used.", p_type="bool", p_default=str(default["rd_use_mask"]), p_affects="region plot, rd", p_example="set rd_use_mask\nunset rd_use_mask", p_see="rd_use_gc_corr, snp_use_mask, snp_use_id, snp_use_phase" ), "rd_use_gc_corr": help_format( topic="rd_use_gc_corr", p_desc="If set for all plots rd signal with gc correction will be used.", p_type="bool", p_default=str(default["rd_use_gc_corr"]), p_affects="region plot, rd", p_example="set rd_use_gc_corr\nunset rd_use_gc_corr", p_see="rd_use_mask, snp_use_mask, snp_use_id, snp_use_phase" ), "rd_range": help_format( topic="rd_range", p_desc="Range used for y-axis in rd plots defined in mean rd.", p_type="two floats", p_default=str(default["rd_range"]), p_affects="region plot, rd", p_example="set rd_range 0 2\nunset rd_range", p_see="rd_manhattan_range, rd_colors" ), "rd_manhattan_range": help_format( topic="rd_manhattan_range", p_desc="Range used for y-axis in manhattan rd plot defined in copy numbers", p_type="two floats", p_default=str(default["rd_range"]), p_affects="manhattan", p_example="set rd_manhattan_range 0 2\nunset rd_manhattan_range", p_see="rd_range, rd_colors" ), "rd_manhattan_call": help_format( topic="rd_manhattan_call", p_desc="Enables plotting call signal (defined by parameters rd_call and rd_call_mosaic) in manhattan plots", p_type="bool", p_default=str(default["rd_manhattan_call"]), p_affects="manhattan", p_example="set rd_manhattan_call\nunset rd_manhattan_call", p_see="rd_partition, rd_call, rd_call_mosaic" ), "snp_use_mask": help_format( topic="snp_use_mask", p_desc="If set for all plots snp signal with P mask will be used.", p_type="bool", p_default=str(default["snp_use_mask"]), p_affects="region plot, likelihood, baf, snp", p_example="set snp_use_mask\nunset snp_use_mask", p_see="rd_use_gc_corr, rd_use_mask, snp_use_id, snp_use_phase" ), "snp_use_id": help_format( topic="snp_use_mask", p_desc="If set for all plots snp signal with ID filter will be used.", p_type="bool", p_default=str(default["snp_use_id"]), p_affects="region plot, likelihood, baf, snp", p_example="set snp_use_id\nunset snp_use_id", p_see="rd_use_gc_corr, rd_use_mask, snp_use_mask, snp_use_phase" ), "snp_use_phase": help_format( topic="snp_use_mask", p_desc="If set for all plots phased snp signal will be used.", p_type="bool", p_default=str(default["snp_use_phase"]), p_affects="region plot, likelihood, baf, snp", p_example="set snp_use_phase\nunset snp_use_phase", p_see="rd_use_gc_corr, rd_use_mask, snp_use_mask, snp_use_id" ), "snp_call": help_format( topic="snp_call", p_desc="Enables plotting call signal in likelihood/baf plots", p_type="bool", p_default=str(default["snp_call"]), p_affects="region plot, rd", p_example="set snp_call\nunset snp_call", p_see="rd_call, rd_call_mosaic" ), "markersize": help_format( topic="markersize", p_desc="Size of markers used in scatter like plots (e.g. manhattan, snp).", p_type="float or str", p_default=str(default["markersize"]), p_affects="manhattan, snp, region plot with snp panel", p_example="set markersize 10\nset markersize auto", p_see="rd_colors, snp_colors, baf_colors, lh_colors" ), "rd_colors": help_format( topic="rd_colors", p_desc="Colors used in rd plot.\n" + "Colors correspond to following signals: raw, gc corrected, partition, call, mosaic call", p_type="list of strings", p_default=str(default["rd_colors"]), p_affects="rd, region plot with rd panel", p_example="set rd_colors red grey green black blue cyan\nunset rd_colors\nset rd_colors.1 red", p_see="markersize, snp_colors, baf_colors, lh_colors" ), "legend": help_format( topic="legend", p_desc="Enables legend in region plots", p_type="bool", p_default=str(default["legend"]), p_affects="region plot, rd, baf", p_example="set legend\nunset legend", p_see="rd_range, rd_call" ), "title": help_format( topic="title", p_desc="Enables title in region plots", p_type="bool", p_default=str(default["legend"]), p_affects="region plot, rd, baf", p_example="set title\nunset title", p_see="legend" ), "snp_colors": help_format( topic="snp_colors", p_desc="Colors used in snp plot.\n" + "Eight colors correspond to following SNPs:\n" + " " + TerminalColor.YELLOW + "0|0 out of P region, " + TerminalColor.YELLOW2 + "0|0 inside P region,\n" + " " + TerminalColor.CYAN + "0|1 out of P region, " + TerminalColor.BLUE + "0|1 inside P region,\n" + " " + TerminalColor.GREEN2 + "1|0 out of P region, " + TerminalColor.GREEN + "1|0 inside P region,\n" + " " + TerminalColor.YELLOW + "1|1 out of P region, " + TerminalColor.YELLOW2 + "1|1 inside P region.\n" + TerminalColor.DARKCYAN + "P region refers to 1kG project strict mask.\n" + "If snp_alpha_P is set, transparency will be used instead colors for out of P region SNPs.\n", p_type="list of strings", p_default=str(default["snp_colors"]), p_affects="snp, region plot with snp panel", p_example="set snp_colors red grey green black blue yellow orange cyan\nunset snp_colors\nset snp_colors.7 red", p_see="markersize, rd_colors, baf_colors, lh_colors" ), "snp_alpha_P": help_format( topic="snp_alpha_P", p_desc="If set, alpha color value will be used for non-P region SNPs.", p_type="bool", p_default=str(default["snp_alpha_P"]), p_affects="region plot, snp", p_example="set snp_alpha_P\nunset snp_alpha_P", p_see="snp_colors, snp_use_mask, snp_use_id" ), "baf_colors": help_format( topic="baf_colors", p_desc="Colors used in baf plot.\n" + "Colors correspond to following signals: baf, maf, i1 (p2p distance in likelihood function)", p_type="list of strings", p_default=str(default["baf_colors"]), p_affects="baf, region plot with baf panel", p_example="set baf_colors red grey green\nunset baf_colors\nset baf_colors.1 red", p_see="markersize, snp_colors, rd_colors, lh_colors" ), "lh_colors": help_format( topic="lh_colors", p_desc="Colors used in likelihood plot.\n" + "Colors correspond to following signals: likelihood call (snp_call parameter)", p_type="list of strings", p_default=str(default["lh_colors"]), p_affects="likelihood, region plot with likelihood panel", p_example="set baf_colors green\nunset baf_colors\nset baf_colors.0 red", p_see="markersize, baf_colors, rd_colors, lh_colors, snp_call" ), "plot_files": help_format( topic="plot_files", p_desc="Indices of files to be plot. Only for plots that support multi file plotting.\n" + "One file can be ploted multiple times. Use 'show' to view list of files.", p_type="list of integers", p_default=str(default["plot_files"]), p_affects="region plot, manhattan, circular, compare", p_example="set plot_files 0 1 2\nunset plot_files", p_see="plot_file, panels" ), "plot_file": help_format( topic="plot_file", p_desc="Index of a file to be plot. Only for single file plots.\n" + "Use 'show' to view list of files.", p_type="integer", p_default=str(default["plot_file"]), p_affects="rd, likelihood, baf, snp, snv", p_example="set plot_files 0 1 2\nunset plot_files", p_see="plot_file, panels" ), "file_titles": help_format( topic="file_titles", p_desc="List of titles used with multiple file plots. If empty filename will be used instead.", p_type="list of str", p_default=str(default["file_titles"]), p_affects="manhattan, circular", p_example="set file_titles Title1 Title2\nunset file_titles", p_see="plot_files, grid" ), "chrom": help_format( topic="chrom", p_desc="List of chromosomes to be plotted. All available will be plotted if empty.", p_type="list of str", p_default=str(default["chrom"]), p_affects="manhattan, rd, likelihood, baf, snp. snv, circular", p_example="set chrom 1 2 3 MT\nset chrom chr1 chr15 chrX \nunset chrom", p_see="plot_files, plot_file" ), "style": help_format( topic="style", p_desc="Matplotlib style to be used.\n" + "Use double <tab> after 'set style' to get list of all available styles.", p_type="str", p_default=str(default["style"]), p_affects="all plots", p_example="set style seaborn\nunset style", p_see="xkcd, chrom, output_filename" ), "grid": help_format( topic="grid", p_desc="Set plot layout grid. Automatic if 'auto'.", p_type="two integers, 'auto', 'vertical' or 'horizontal'", p_default=str(default["grid"]), p_affects="all plots", p_example="set grid 5 4\nset grid horizontal\nunset grid", p_see="subgrid, xkcd, chrom, output_filename" ), "subgrid": help_format( topic="subgrid", p_desc="Set plot layout subgrid. Automatic if 'auto'.", p_type="two integers, 'auto', 'vertical' or 'horizontal'", p_default=str(default["subgrid"]), p_affects="plots with multiple panels", p_example="set subgrid 5 4\nset subgrid horizontal\nunset subgrid", p_see="grid, xkcd, chrom, output_filename" ), "panel_size": help_format( topic="panel_size", p_desc="Set plot panel size.", p_type="two floats", p_default=str(default["panel_size"]), p_affects="plots with multiple panels", p_example="set panel_size 8 1\nunset panel_size", p_see="grid, subgrid, output_filename" ), "xkcd": help_format( topic="xkcd", p_desc="Use xkcd comic plot style (see http://xkcd.com).", p_type="bool", p_default=str(default["xkcd"]), p_affects="all plots", p_example="set xkcd\nunset xkcd", p_see="style, chrom, output_filename" ), "plot": help_format( topic="plot", p_desc="Plots when true (works with compare and print).", p_type="bool", p_default=str(default["plot"]), p_affects="compare, print", p_example="set plot\nunset plot", p_see="compare, print calls, print join_calls" ), "output_filename": help_format( topic="output_filename", p_desc="If not empty plots will be store into file without plotting on the screen." + "Use one of following extensions:\n" + " * pgf - PGF code for LaTeX\n" + " * svgz - Scalable Vector Graphics\n" + " * tiff - Tagged Image File Format\n" + " * jpg - Joint Photographic Experts Group\n" + " * raw - Raw RGBA bitmap\n" + " * jpeg - Joint Photographic Experts Group\n" + " * png - Portable Network Graphics\n" + " * ps - Postscript\n" + " * svg - Scalable Vector Graphics\n" + " * eps - Encapsulated Postscript\n" + " * rgba - Raw RGBA bitmap\n" + " * pdf - Portable Document Format\n" + " * tif - Tagged Image File Format", p_type="str", p_default=str(default["output_filename"]), p_affects="all plots", p_example="set output_filename filename.png\nunset output_filename", p_see="save, dpi, style, xkcd" ), "print_filename": help_format( topic="output_filename", p_desc="If not empty calls will be printed into specified file." + "Use one of following extensions:\n" + " * tsv - tab separated\n" + " * xlsx - Excel format\n" + " * vcf - VCF file format (not working for merged calls)", p_type="str", p_default=str(default["output_filename"]), p_affects="print", p_example="set print_filename filename.tsv\nunset print_filename", p_see="print, callers" ), "callers": help_format( topic="callers", p_desc="List of callers to use for plotting and printing. Possible options are:\n" + " rd_mean_shift - read depth mean shift caller,\n" + " rd_mosaic - read depth mosaic caller (under development),\n" + " baf_mosaic - baf mosaic caller (under development),\n" + " combined_mosaic - read depth and baf mosaic caller (under development).", p_type="list of strings", p_default=str(default["callers"]), p_affects="region plot, manhattan", p_example="set callers rd_mean_shift\nunset callers", p_see="plotting, print" ), "print": help_format( topic="print", p_desc="Print filtered calls.", p_usage="print [calls, joint_calls]", p_example="print calls\nprint joint_calls", p_see="Q0_range, p_range, pN_range, size_range, dG_range, callers" ), "rd_circular_colors": help_format( topic="rd_circular_colors", p_desc="Colors used in circular plot for filling chromosomes in rd signal.", p_type="list of strings", p_default=str(default["rd_circular_colors"]), p_affects="circular", p_example="set rd_circular_colors red grey green black blue\nunset rd_circular_colors\nset rd_circular_colors.1 red", p_see="snp_circular_colors, circular, rd_colors, snp_colors, baf_colors, lh_colors" ), "snp_circular_colors": help_format( topic="snp_circular_colors", p_desc="Colors used in circular plot for filling chromosomes in snp signal.", p_type="list of strings", p_default=str(default["snp_circular_colors"]), p_affects="circular", p_example="set snp_circular_colors red grey green black blue\nunset snp_circular_colors\nset snp_circular_colors.1 red", p_see="rd_circular_colors, circular, rd_colors, snp_colors, baf_colors, lh_colors" ), "contrast": help_format( topic="contrast", p_desc="Contrast used for transparency in snp call plots.", p_type="float", p_default=str(default["contrast"]), p_affects="calls, likelihood, region plot", p_example="set contrast 100\nunset contrast", p_see="min_segment_size" ), "min_segment_size": help_format( topic="min_segment_size", p_desc="Threshold for call size used in snp call plots.", p_type="float", p_default=str(default["min_segment_size"]), p_affects="calls, likelihood, region plot", p_example="set min_segment_size 10\nunset min_segment_size", p_see="contrast" ), "Q0_range": help_format( topic="Q0_range", p_desc="Range used to filter Q0 for calls", p_type="two floats", p_default=str(default["Q0_range"]), p_affects="calls plot", p_example="set Q0_range 0 0.5\nunset Q0_range", p_see="pN_range, size_range, dG_range, p_range" ), "pN_range": help_format( topic="pN_range", p_desc="Range used to filter percentage of reference genome gaps for calls", p_type="two floats", p_default=str(default["pN_range"]), p_affects="calls plot", p_example="set pN_range 0 0.5\nunset pN_range", p_see="Q0_range, size_range, dG_range, p_range" ), "size_range": help_format( topic="size_range", p_desc="Range used to filter size of calls", p_type="two integers or integer and 'inf' (for unlimited upper bound)", p_default=str(default["size_range"]), p_affects="calls plot", p_example="set size_range 100000 10000000\nset dG_range 100000 inf\nunset size_range", p_see="Q0_range, pN_range, p_range, dG_range" ), "dG_range": help_format( topic="size_range", p_desc="Range used to filter calls on distance from closest large (>100bp) gap in reference genome", p_type="two integers or integer and 'inf' (for unlimited upper bound)", p_default=str(default["dG_range"]), p_affects="calls plot", p_example="set dG_range 100000 10000000\nset dG_range 100000 inf\nunset dG_range", p_see="Q0_range, pN_range, size_range, p_range" ), "p_range": help_format( topic="p_range", p_desc="Range used to filter size of calls", p_type="two floats", p_default=str(default["p_range"]), p_affects="calls plot", p_example="set p_range 0 0.000001\nunset p_range", p_see="Q0_range, pN_range, size_range, dG_range" ), "dpi": help_format( topic="dpi", p_desc="Resolution (dots per inch) used for plotting.", p_type="int", p_default=str(default["dpi"]), p_affects="calls, likelihood, region plot", p_example="set dpi 300\nunset dpi", p_see="margins, style, output_filename, xkcd" ), "margins": help_format( topic="margins", p_desc="Margins used for matplotlib figure:\n" + "[bottom, top, left, right, wspace, hspace]", p_type="list of floats", p_default=str(default["margins"]), p_affects="all plots", p_example="set margins 0 0 0 0 0 0\nunset margins\nset margins.3 0.2", p_see="style, output_filename, dpi" ), }
Subclasses
Class variables
var command_tree
var default
var param_help
class ViewParams (params)
-
Source code
class ViewParams(object): default = { "bin_size": None, "panels": ["rd"], "rd_raw": True, "rd_corrected": True, "rd_partition": False, "rd_call": True, "rd_use_mask": False, "rd_use_gc_corr": True, "callers": ["rd_mean_shift"], "Q0_range": [-1,1], "pN_range": [-1,1], "dG_range": [-1,np.inf], "size_range": [0,np.inf], "p_range": [0,np.inf], "annotate": False, "rd_range": [0, 6], "rd_manhattan_range": [0, 2], "rd_manhattan_call": False, "snp_use_mask": True, "snp_use_id": False, "snp_use_phase": False, "snp_call": True, "markersize": "auto", "lh_markersize": 20, "lh_marker": "_", "rd_colors": ["grey", "black", "red", "green", "blue", "cyan"], "legend": False, "title": True, "snp_colors": ["orange", "brown", "green", "blue", "yellow", "red", "orange", "brown"], "snp_alpha_P": False, "rd_circular_colors": ["#555555", "#aaaaaa"], "snp_circular_colors": ["#00ff00", "#0000ff"], "baf_colors": ["gray", "black", "red", "green", "blue"], "lh_colors": ["yellow", "red"], "plot_files": [], "plot_file": 0, "plot": False, "file_titles": [], "chrom": [], "style": None, "grid": "auto", "subgrid": "vertical", "panel_size": [8,6], "xkcd": False, "margins": [0.05, 0.95, 0.1, 0.98, 0.1, 0.2], "dpi": 200, "output_filename": "", "print_filename": "", "contrast": 20, "min_segment_size": 0 } def __init__(self, params): for key in self.default: if key in params: setattr(self, key, params[key]) else: setattr(self, key, self.default[key]) for p in self.params: self.command_tree["set"][p] = None self.command_tree["unset"][p] = None for c in self.param_help: self.command_tree["help"][c] = None self.command_tree["set"]["panels"] = {} for panel1 in ["rd", "likelihood", "snp", "baf", "snv", "CN"]: self.command_tree["set"]["panels"][panel1] = self.command_tree["set"]["panels"] self.command_tree["set"]["callers"] = {} for caller in ["rd_mean_shift","rd_mosaic","baf_mosaic","combined_mosaic"]: self.command_tree["set"]["callers"][caller] = self.command_tree["set"]["callers"] self.command_tree["set"]["grid"] = {"auto": None, "horizontal": None, "vertical": None} self.command_tree["set"]["subgrid"] = {"auto": None, "horizontal": None, "vertical": None} self.interactive = True def set(self, param, args): try: if param in self.params and self.params[param] is False: self.__setattr__(param, True) elif param.find(".") > 0: sp = param.split(".") if len(sp) == 2 and (sp[0] in self.params) and sp[0][-7:] == "_colors" and sp[1].isdigit(): ix = int(sp[1]) self.params[sp[0]][ix] = args[0] if len(sp) == 2 and sp[0]=="margins" and sp[1].isdigit(): ix = int(sp[1]) self.params[sp[0]][ix] = float(args[0]) elif param == "margins": if len(args) > 0: self.__setattr__(param, list(map(float, args))) elif param == "bin_size": if len(args) > 0: self.__setattr__(param, args[0]) elif param == "contrast": if len(args) > 0: self.__setattr__(param, float(args[0])) elif param == "markersize": if len(args) > 0: if args[0] == "auto": self.__setattr__(param, "auto") else: self.__setattr__(param, float(args[0])) elif param == "lh_markersize": if len(args) > 0: self.__setattr__(param, float(args[0])) elif param == "lh_marker": if len(args) > 0: self.__setattr__(param, args[0]) elif param == "grid": if len(args) > 0: if args[0] in ["auto", "horizontal", "vertical"]: self.__setattr__(param, args[0]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "subgrid": if len(args) > 0: if args[0] in ["auto", "horizontal", "vertical"]: self.__setattr__(param, args[0]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "panel_size": if len(args) > 0: self.__setattr__(param, list(map(float, args[:2]))) elif param == "dpi": if len(args) > 0: self.__setattr__(param, int(args[0])) elif param == "Q0_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "pN_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "size_range": if len(args) > 1: if args[1]=="inf": self.__setattr__(param, [int(args[0]),np.inf]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "dG_range": if len(args) > 1: if args[1]=="inf": self.__setattr__(param, [int(args[0]),np.inf]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "p_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "rd_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "rd_manhattan_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "min_segment_size": if len(args) > 0: self.__setattr__(param, int(args[0])) elif param == "output_filename": if len(args) > 0: self.__setattr__(param, args[0]) elif param == "print_filename": if len(args) > 0: if args[0].split(".")[-1] in ["tsv", "vcf", "xlsx"]: self.__setattr__(param, args[0]) else: raise(ValueError) elif param == "plot_file": if len(args) > 0: self.__setattr__(param, int(args[0])) elif param == "plot_files": self.__setattr__(param, list(map(int, args))) elif param == "style": if len(args) > 0: self.__setattr__(param, args[0]) elif param in self.params and self.params[param] is not True: self.__setattr__(param, args) if param in self.params: if self.interactive: print(" * %s: %s" % (param, str(self.params[param]))) else: sp = param.split(".") if sp[0] in self.params: if self.interactive: print(" * %s: %s" % (sp[0], str(self.params[sp[0]]))) except ValueError: _logger.warning("Value error while setting %s!" % param) def unset(self, param): if param in self.params: if type(self.default[param]) == type(True): self.__setattr__(param, False) else: self.__setattr__(param, self.default[param]) print(" * %s: %s" % (param, str(self.params[param]))) @property def params(self): dct = {} for key in self.default: dct[key] = getattr(self, key) return dct @property def bin_size_f(self): """ Formatted bin_size (e.g. 1000 -> "1K", 10000000 -> "10M") Returns ------- bin_size_f : str """ return binsize_format(self.params["bin_size"]) def __setattr__(self, name, value): if name == 'bin_size' and value is not None: try: value = binsize_type(value) except (ArgumentTypeError, ValueError): _logger.warning("bin_size should be integer divisible by 100") if name == 'style': if value in plt.style.available: plt.style.use("default") plt.style.use(value) if name == 'xkcd': if value: self.style = "classic" from matplotlib import patheffects plt.xkcd() plt.rcParams["path.effects"] = [patheffects.withStroke(linewidth=0.5, foreground="w")] elif hasattr(self, name) and self.xkcd: plt.rcdefaults() self.style = 'classic' super(ViewParams, self).__setattr__(name, value)
Subclasses
Class variables
var default
Instance variables
var bin_size_f
-
Formatted bin_size (e.g. 1000 -> "1K", 10000000 -> "10M")
Returns
bin_size_f
:str
Source code
@property def bin_size_f(self): """ Formatted bin_size (e.g. 1000 -> "1K", 10000000 -> "10M") Returns ------- bin_size_f : str """ return binsize_format(self.params["bin_size"])
var params
-
Source code
@property def params(self): dct = {} for key in self.default: dct[key] = getattr(self, key) return dct
Methods
def set(self, param, args)
-
Source code
def set(self, param, args): try: if param in self.params and self.params[param] is False: self.__setattr__(param, True) elif param.find(".") > 0: sp = param.split(".") if len(sp) == 2 and (sp[0] in self.params) and sp[0][-7:] == "_colors" and sp[1].isdigit(): ix = int(sp[1]) self.params[sp[0]][ix] = args[0] if len(sp) == 2 and sp[0]=="margins" and sp[1].isdigit(): ix = int(sp[1]) self.params[sp[0]][ix] = float(args[0]) elif param == "margins": if len(args) > 0: self.__setattr__(param, list(map(float, args))) elif param == "bin_size": if len(args) > 0: self.__setattr__(param, args[0]) elif param == "contrast": if len(args) > 0: self.__setattr__(param, float(args[0])) elif param == "markersize": if len(args) > 0: if args[0] == "auto": self.__setattr__(param, "auto") else: self.__setattr__(param, float(args[0])) elif param == "lh_markersize": if len(args) > 0: self.__setattr__(param, float(args[0])) elif param == "lh_marker": if len(args) > 0: self.__setattr__(param, args[0]) elif param == "grid": if len(args) > 0: if args[0] in ["auto", "horizontal", "vertical"]: self.__setattr__(param, args[0]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "subgrid": if len(args) > 0: if args[0] in ["auto", "horizontal", "vertical"]: self.__setattr__(param, args[0]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "panel_size": if len(args) > 0: self.__setattr__(param, list(map(float, args[:2]))) elif param == "dpi": if len(args) > 0: self.__setattr__(param, int(args[0])) elif param == "Q0_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "pN_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "size_range": if len(args) > 1: if args[1]=="inf": self.__setattr__(param, [int(args[0]),np.inf]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "dG_range": if len(args) > 1: if args[1]=="inf": self.__setattr__(param, [int(args[0]),np.inf]) else: self.__setattr__(param, list(map(int, args[:2]))) elif param == "p_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "rd_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "rd_manhattan_range": if len(args) > 1: self.__setattr__(param, list(map(float, args[:2]))) elif param == "min_segment_size": if len(args) > 0: self.__setattr__(param, int(args[0])) elif param == "output_filename": if len(args) > 0: self.__setattr__(param, args[0]) elif param == "print_filename": if len(args) > 0: if args[0].split(".")[-1] in ["tsv", "vcf", "xlsx"]: self.__setattr__(param, args[0]) else: raise(ValueError) elif param == "plot_file": if len(args) > 0: self.__setattr__(param, int(args[0])) elif param == "plot_files": self.__setattr__(param, list(map(int, args))) elif param == "style": if len(args) > 0: self.__setattr__(param, args[0]) elif param in self.params and self.params[param] is not True: self.__setattr__(param, args) if param in self.params: if self.interactive: print(" * %s: %s" % (param, str(self.params[param]))) else: sp = param.split(".") if sp[0] in self.params: if self.interactive: print(" * %s: %s" % (sp[0], str(self.params[sp[0]]))) except ValueError: _logger.warning("Value error while setting %s!" % param)
def unset(self, param)
-
Source code
def unset(self, param): if param in self.params: if type(self.default[param]) == type(True): self.__setattr__(param, False) else: self.__setattr__(param, self.default[param]) print(" * %s: %s" % (param, str(self.params[param])))