|
17 | 17 | from .RunCmdsMP import logger |
18 | 18 | from .WGDI import AK |
19 | 19 | from .ploidy_plotter import add_ploidy_opts, get_ploidy, plot_bars |
20 | | -from .mcscan import Collinearity, Gff, XCollinearity |
| 20 | +from .mcscan import Collinearity, XGff, XCollinearity |
| 21 | + |
| 22 | +cmaps = { |
| 23 | + 'viridis', 'plasma', 'inferno', 'magma', 'cividis', |
| 24 | + 'Greys', 'Purples', 'Blues', 'Greens', 'Oranges', 'Reds', |
| 25 | + 'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu', |
| 26 | + 'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn', 'YlGn', |
| 27 | + 'binary', 'gist_yarg', 'gist_gray', 'gray', 'bone', 'pink', |
| 28 | + 'spring', 'summer', 'autumn', 'winter', 'cool', 'Wistia', |
| 29 | + 'hot', 'afmhot', 'gist_heat', 'copper', |
| 30 | + 'PiYG', 'PRGn', 'BrBG', 'PuOr', 'RdGy', 'RdBu', |
| 31 | + 'RdYlBu', 'RdYlGn', 'Spectral', 'coolwarm', 'bwr', 'seismic', |
| 32 | + 'berlin', 'managua', 'vanimo', |
| 33 | + 'twilight', 'twilight_shifted', 'hsv', |
| 34 | + 'Pastel1', 'Pastel2', 'Paired', 'Accent', |
| 35 | + 'Dark2', 'Set1', 'Set2', 'Set3', |
| 36 | + 'tab10', 'tab20', 'tab20b', 'tab20c', |
| 37 | + 'flag', 'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern', |
| 38 | + 'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', |
| 39 | + 'gist_rainbow', 'rainbow', 'jet', 'turbo', 'nipy_spectral', |
| 40 | + 'gist_ncar'} |
21 | 41 |
|
22 | 42 |
|
23 | 43 | def dotplot_args(parser): |
24 | 44 | parser.add_argument('-s', metavar='FILE', type=str, required=True, nargs='+', |
25 | 45 | help="syntenic block file (*.collinearity, output of MCSCANX/WGDI)[required]") |
26 | | - parser.add_argument('-g', metavar='FILE', type=str, required=True, |
| 46 | + parser.add_argument('-g', metavar='FILE', type=str, required=True, nargs='+', |
27 | 47 | help="gene annotation gff file (*.gff, one of MCSCANX/WGDI input)[required]") |
28 | 48 | parser.add_argument('-c', metavar='FILE', type=str, required=True, |
29 | 49 | help="chromosomes config file (*.ctl, same format as MCSCANX dotplotter)[required]") |
@@ -99,8 +119,8 @@ def dotplot_args(parser): |
99 | 119 | help="plot histogram or not [default=%(default)s]") |
100 | 120 | group_ks.add_argument('--max-ks', metavar='Ks', type=float, default=1, |
101 | 121 | help="max Ks (x limit) [default=%(default)s]") |
102 | | - group_ks.add_argument('--ks-cmap', metavar='Ks', type=float, nargs='+', default=None, |
103 | | - help="color map for Ks. [default=%(default)s]") |
| 122 | + group_ks.add_argument('--ks-cmap', metavar='Ks', nargs='+', default=None, # type=float, |
| 123 | + help="color map for Ks, format: `jet` or `0.2 0.6 1 ...`. [default=%(default)s]") |
104 | 124 | group_ks.add_argument('--ks-step', metavar='Ks', type=float, default=0.02, |
105 | 125 | help="Ks step of histogram [default=%(default)s]") |
106 | 126 | group_ks.add_argument('--use-median', action='store_true', default=False, |
@@ -327,7 +347,9 @@ def plot_blocks(blocks, outplots, ks=None, max_ks=None, ks_hist=False, ks_cmap=N |
327 | 347 | min_ks = min([v for v in Ks if v >= 0]) |
328 | 348 | except ValueError: # ValueError: min() arg is an empty sequence |
329 | 349 | min_ks = 0 |
330 | | - if ks_cmap: |
| 350 | + if ks_cmap and ks_cmap[0] in cmaps: |
| 351 | + cmap = ks_cmap[0] |
| 352 | + elif ks_cmap: |
331 | 353 | cmap = create_ks_map(ks_cmap, min_ks, max_ks) |
332 | 354 | else: |
333 | 355 | cmap = cm.jet |
@@ -649,6 +671,7 @@ def create_ks_map(ks_map, min_ks, max_ks): |
649 | 671 | import numpy as np |
650 | 672 | from matplotlib import cm |
651 | 673 | from matplotlib.colors import ListedColormap, LinearSegmentedColormap |
| 674 | + ks_map = list(map(float, ks_map)) |
652 | 675 | length = 256 |
653 | 676 | maps = _norm_map(ks_map, min_ks, max_ks, length) |
654 | 677 | print(ks_map, min_ks, max_ks, maps) |
@@ -683,7 +706,7 @@ def parse_gff(gff, chrs1, chrs2): |
683 | 706 | coord_graph1 = nx.Graph() |
684 | 707 | coord_graph2 = nx.Graph() |
685 | 708 | d_gff = {} |
686 | | - for line in Gff(gff): |
| 709 | + for line in XGff(gff): |
687 | 710 | if not line.chrom in chrs: |
688 | 711 | continue |
689 | 712 | key = (line.species, line.chrom) |
|
0 commit comments