diff tableviewer.xml @ 2:014a21767ac4 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
author iuc
date Tue, 17 Sep 2019 16:54:57 -0400
parents
children fd59d783248a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tableviewer.xml	Tue Sep 17 16:54:57 2019 -0400
@@ -0,0 +1,641 @@
+<?xml version="1.0"?>
+<tool id="circos_tableviewer" name="Circos: Table viewer" version="@WRAPPER_VERSION@">
+    <description>easily creates circos plots from tabular data</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements" />
+    <command detect_errors="exit_code"><![CDATA[
+mkdir -p circos/data/ &&
+mkdir -p circos/etc/ &&
+cp '$circos_conf' circos/etc/circos.conf &&
+
+parse-table -file '$table' -conf '$parse_table_conf' > tmp &&
+
+make-conf -dir circos/data < tmp &&
+
+tar cvfz circos.tar.gz circos &&
+cd circos &&
+circos -conf etc/circos.conf &&
+mv circos.png ../ &&
+mv circos.svg ../
+    ]]></command>
+    <configfiles>
+        <configfile name="parse_table_conf"><![CDATA[
+################################################################
+#
+# This is a fairly complicated configuration file. Take your time in
+# experimenting and adjust one thing at a time :)
+#
+################################################################
+
+max_col_num = 200
+max_row_num = 200
+
+# skip this many rows before reading in header and data
+skip_rows        = 0
+
+# is there a header line that identifies the columns?
+header           = yes
+
+# is there a row that specifies the order of columns in the image?
+# - if so, this must be the first line of the header
+# - if the line exists (col_order_row=yes), employ the use_col_order_row to toggle whether it is used
+col_order_row     = no
+use_col_order_row = no
+
+# is there a row that specifies the size of columns in the image?
+# - if so, this must be the next line of the header
+# - if the line exists (col_size_row=yes), employ the use_col_size_row to toggle whether it is used
+col_size_row     = no
+use_col_size_row = no
+
+# is there a row that specifies the color of each column segment in the image?
+# - if so, this must be the next line of the header
+# - if the line exists (col_color_row=yes), employ the use_col_color_row to toggle whether it is used
+col_color_row     = no
+use_col_color_row = no
+
+# is there a column that specifies the order of rows in the image?
+# - if so, this must be the first column
+# - if the line exists (row_order_col=yes), employ the use_row_order_col to toggle whether it is used
+row_order_col     = no
+use_row_order_col = no
+
+row_size_col     = no
+use_row_size_col = no
+
+# is there a column that specifies the color of each row segment in the image?
+# - if so, this must be the second column
+# - if the line exists (row_color_col=yes), employ the use_row_color_col to toggle whether it is used
+row_color_col     = no
+use_row_color_col = no
+
+# if you do not have a column/row that explicitly defines order
+# of segments in the image, you can set this here. Use one (or more) of
+# these values to specify how segments should be ordered.
+# - row_major (row segments first, then column)
+# - col_major (col segments first, then row)
+# - ascii     (asciibetic order)
+# - row_size  (total of rows for the segment - useful if the segment has both row and column contributions)
+# - col_size  (total of colums for the segment - useful if the segment has both row and column contributions)
+# - row_to_col_ratio (ratio of total of rows to columns for the segment)
+# - col_to_row_ratio (ratio of total of rows to columns for the segment)
+# - size_asc  (size, in ascending order)
+# - size_desc (size, in descending order)
+
+#segment_order = row_to_col_ratio,size_desc # col_major,size_desc
+segment_order  = size_desc
+#segment_order = ascii
+#segment_order = file:etc/order-by-table-remapped.txt
+#segment_order  = size_desc,row_to_col_ratio
+segment_color_order = ascii
+
+# values for segments can be normalized if the use_segment_normalization is set to yes
+use_segment_normalization = no
+
+# the normalization function can be one of the following, and is applied to
+# all values that correspond to the segment's label
+# total - sum of cell values for the segment label (row and col)
+# average - average of cell values for the segment label (row and col)
+# row_total, row_average - sum or average for cell values for the segment row
+# col_total, col_average - sum or average for cell values for the segment col
+# row_size, col_size, total_size - based on the optional size column (see col_size_row and row_size_col above)
+# VALUE - segments are scaled to a constant VALUE (e.g. 1000)
+segment_normalization_function = 1000
+
+# normalization can be performed by either altering the actual data values or
+# by applying a visual scaling of the segments. When 'value' is used, the data
+# is changed. When 'visual' is used, then a chromosomes_scale line is reported
+# by this script which you must include in circos.conf for the scaling to be applied
+segment_normalization_scheme   = value
+
+################################################################
+# placement of cell ribbons on row/column segments
+#
+# for segments that share both column and row ribbons, the
+# order of ribbon position can be adjusted with placement_order
+
+placement_order = row,col # col,row or row,col
+
+# within the row/column ribbon bundle for each segment,
+# ribbon_bundle_order determines how the ribbons will be
+# ordered
+# - size_asc  - by value of the cell, ascending
+# - size_desc - by value of the cell, descending
+# - ascii     - sorted by destination label, ascending
+# - native    - sorted by order of destination segment
+
+ribbon_bundle_order = size_desc # size, ascii, native
+
+# reverse the position of links in table/row segments?
+
+reverse_rows    = no
+reverse_columns = no
+
+# values for cells with the same row/column name can be treated
+# independently. You can
+# show - show these cells and not filter them at all
+# hide - hide these cells from the image, but not resize the row/columns
+# remove - entirely remove these cells from the data set (equivalent to setting cells to missing value)
+intra_cell_handling = show
+
+# ribbon layering - order in which the ribbons are drawn on the image
+# size_asc  - ascending by ribbon size (small ribbons drawn first, therefore large ribbons will be at front)
+# size_desc - descending by ribbon size (large ribbons drawn first, therefore small ribbons will be at front)
+
+ribbon_layer_order = size_asc
+
+# if both (A,B)=x and (B,A)=y cells exist, you can choose to have the ribbon
+# ends sized variably so that ribbon at A has width x and at B has width y
+
+ribbon_variable = no
+ribbon_variable_intra_collapse = yes
+
+################################################################
+# cell value mapping allows you to remap the cell values using
+# any Perl expression that uses X as the cell value. For example,
+#
+# cell_remap_formula = log(X)
+#                    = sqrt(X)
+#                    = X/10
+#                    = X ? log(X) : 0
+#
+# This remapping takes place before any filters or scaling is applied. Its effect
+# is the same as remapping the cell values in the input file.
+
+use_cell_remap     = no
+cell_remap_formula = round(10*X)
+
+################################################################
+# scale your values with a power rule (useful if the range of values
+# is very large) to
+# - atten_large: attenuate large values and maintain visibility
+#   of ribbons corresponding to small values, or
+# - atten_small: attenuate small values to increase visibility
+#   of ribbons corresponding to large values
+#
+# given a value, v, and a maximum, m
+#
+# atten_small:
+#
+# v_new = m * ( exp(scale_factor * v / m) - 1 ) / ( exp(scale_factor) - 1 )
+#
+# atten_large:
+#
+# v_new = m * ( log(scale_factor * v ) ) / ( log(scale_factor * m ) )
+#
+# essentially the values are remapped to a log-type scale
+# with the range 0..m
+
+use_scaling    = no
+scaling_type   = atten_large
+scale_factor   = 1
+
+blank_means_missing = no
+missing_cell_value = -
+
+################################################################
+# Value cutoffs for cell values and ribbon formatting.
+#
+# You can toggle the visibility of ribbons for cells outside
+# a min/max range. You can define one or more of these cutoffs.
+# The cutoffs are applied to unscaled cell values.
+
+#cell_min_value      = 10
+#cell_min_percentile = 10
+#cell_max_value      = 100
+#cell_max_percentile = 100
+
+# For cell values that do not pass the min/max filters above,
+# you can specify whether they are hidden or removed. If the
+# parameter is not defined, "hide" will be assumed.
+# hide - cell values won't be shown, but row/col will not be resized
+# remove - entirely remove these cells from the data set (equivalent to setting cells to missing value)
+
+cutoff_cell_handling = hide
+
+# The color of ribbons is by default the color of the row segment from
+# which they originate. The block below allows you to remap the color
+# of the ribbons based on cell percentile values. There are two ways
+# to remap colors
+#
+# - color_remap=yes, color_autoremap=no
+#   Uses <percentile> blocks to define the percentile values and associated
+#   color/stroke_color characteristics for ribbons. Percentile value defined
+#   in the block (e.g. <percentile 55>) is the max percentile value for
+#   cells associated with this block.
+# - color_remap=yes, color_autoremap=yes
+#   Uses colors associated with each percentile window of size
+#   percentile_sampling for each cell
+
+<linkcolor>
+color_source       = row
+percentile_source  = larger
+color_transparency = 1
+color_remap        = no
+color_autoremap    = no
+
+<percentile 50>
+color = dgrey
+transparency = 5
+</percentile>
+
+<percentile 60>
+transparency = 5
+</percentile>
+
+<percentile 70>
+transparency = 4
+</percentile>
+
+<percentile 80>
+transparency = 3
+</percentile>
+
+<percentile 90>
+transparency = 2
+stroke_color = black
+stroke_thickness = 1p
+</percentile>
+
+<percentile 100>
+transparency = 1
+stroke_color = black
+stroke_thickness = 3p
+</percentile>
+
+</linkcolor>
+
+<linkparam>
+color = vdgrey
+#stroke_color = black
+#stroke_thickness = 1p
+</linkparam>
+
+# If you are using color_autoremap=yes above, then
+# define the percentile sampling window and
+# the start/end HSV color values. Percentile window
+# colors are interpolated between this HSV pair.
+#
+# HSV = (hue saturation value)
+# hue=(0..360) saturation=(0..1) value=(0..1)
+
+percentile_sampling = 5
+
+# count - percentile based on counts
+# value - percentile based on value
+
+percentile_method = count
+
+# use all values or only unique values when
+# calculating percentiles
+percentile_unique_only = yes
+
+# use a function, f(X), to remap cell values when calculating percentiles
+# for the purpose of color mapping. This allows you to apply a remapping to how
+# colors are calculated, without actually changing the values. The remap
+# applies only if percentile_method=value
+
+# percentile_remap = sqrt(X)
+
+# Which cell value set to use for percentile color mapping
+# raw - original values
+# filtered - values that pass min/max filters
+# scaled - filtered values that have been scaled if use_scaling is set
+percentile_data_domain = raw
+
+<colors>
+h0 = 0
+s0 = 1
+v0 = 1
+h1 = 300
+s1 = 1
+v1 = 1
+</colors>
+
+# You can control the color and stroke of ribbons for each
+# quartile (q1, q2, q3, q4). Any values defined here will
+# overwrite colors determined by remapping.
+#
+# For example, if you have a lot of cells and wish to attenuate
+# the visibility of ribbons associated with small values, you can
+# set cell_q1_color=vvlgrey,cell_q1_nostroke=yes to fade the
+# ribbons into the background.
+
+#cell_q1_color    = vvlgrey
+#cell_q2_color    = vlgrey
+#cell_q3_color    = lgrey
+#cell_q4_color    = red
+#cell_q1_nostroke = yes
+#cell_q2_nostroke = yes
+#cell_q3_nostroke = yes
+#cell_q4_nostroke = yes
+
+# cell value multiplier, required when all data is small (e.g. <1), in which
+# case set the multiplier to something like 1000 because Circos
+# works only with integer scales
+
+data_mult = 1
+
+################################################################
+# Segment labels can be optionally set to a size that is
+# proportional to the size of the segment. Set min/max size
+# values here. If this line is commented out, then the label
+# size is determined by the circos.conf file used to draw the image
+
+#segment_label_size_range       = 60,60
+
+# progression controls how fast the label size changes from
+# min to max (larger value of progression means values close to max
+# are achieved for smaller segments)
+
+segment_label_size_progression = 4
+
+segment_label_uppercase = no
+
+################################################################
+# Segment colors can be specified in the data file (in this
+# case use row_color_col and col_color_row), otherwise colors
+# are interpolated within an HSV range. Color interpolation can be
+# done in two ways: based on segment index (interpolation steps through
+# colors uniformly for each segment) and total size (interpolation
+# steps through colors in proportion to segment size).
+
+<segment_colors>
+interpolate_type = size # size or count
+h0 = 0
+s0 = 0.8
+v0 = 0.9
+h1 = 300
+s1 = 0.8
+v1 = 0.9
+</segment_colors>
+
+################################################################
+# Shorten the labels of segments. Specify whether to do this
+# with shorten_text=yes|no parameter and provide regular
+# expressions in string_replace which define the text to
+# replace.
+
+shorten_text = no
+
+<string_replace>
+chromosome = chr
+</string_replace>
+
+# exit on any error
+strict_sanity = yes
+
+################################################################
+# if the segment_prefix is set, then rows and columns will be
+# renamed to internal fields segment_prefix + DIGIT
+
+#segment_prefix  = id
+color_prefix = color
+
+# field delimiter regular expression
+# if this is not defined, any whitespace will be considered a delimiter
+field_delim = \s
+
+# collapse adjacent delimiters?
+field_delim_collapse = yes
+
+# remove any leading space in the input file
+# by default, this is on - if you set this to "no", make sure that you don't have any leading spaces in your table!
+strip_leading_space = yes
+
+# remove quotes and thousand separators - concatenate characters to remove
+#
+# e.g. to remove characters a b c set remove_cell_rx=abc
+# e.g. to remove characters " ' , set remove_cell_rx="',
+remove_cell_rx = "',
+
+]]></configfile>
+        <configfile name="circos_conf"><![CDATA[
+#def circosColor($value)
+    #set $value = str($value)
+    #set $r = int($value[1:3], 16)
+    #set $g = int($value[3:5], 16)
+    #set $b = int($value[5:], 16)
+    $r, $g, $b
+#end def
+
+# This is the main configuration file for the Circos tableviewer. This
+# file also depends on colors.conf (definition on basic colors),
+# ideogram.conf (size and spacing of row/cell segments), and
+# ticks.conf (tick spacing and label definitions - these are turned
+# off by default).
+#
+# In addition to these configuration files, the bin/make-conf script
+# creates colors.conf (colors of row/col segments) and
+# colors_percentile.conf (colors based on cell percentile
+# values). These configuration files are also included via the
+# <<include>> directive.
+#
+# Some elements of the output image are toggled off by default
+# (e.g. row and column highlights, anchor links to segment labels,
+# tick marks).
+
+<colors>
+<<include data/colors.conf>>
+<<include data/colors_percentile.conf>>
+</colors>
+
+<ideogram>
+    <spacing>
+    default = 0.010r
+    </spacing>
+
+    thickness        = 25p
+    stroke_thickness = 2
+    stroke_color     = vdgrey
+    fill             = yes
+    fill_color       = $circosColor($labels.segment.color)
+
+    # fractional radius position of chromosome ideogram within image
+    radius         = 0.70r
+    show_label     = $labels.segment.show
+    label_font     = $labels.segment.font
+    label_radius   = dims(image,radius) - 50p
+    label_size     = $labels.segment.size
+    label_parallel = $labels.segment.parallel
+
+    show_bands     = no
+</ideogram>
+
+show_ticks          = yes
+show_tick_labels    = $labels.ticks.show
+
+<ticks>
+    skip_first_label = no
+    skip_last_label  = no
+    radius           = dims(ideogram,radius_outer)
+    size             = 12p
+    label_font       = $labels.ticks.font
+    label_size       = $labels.ticks.size
+    label_offset     = 5p
+    format           = %d
+    color            = $circosColor($labels.ticks.color)
+    thickness        = 2p
+
+    <tick>
+    spacing_type   = relative
+    rspacing       = 0.1
+    show_label     = yes
+    label_relative = yes
+    label_size     = 20p
+    suffix         = %
+    rmultiplier    = 100
+    offset         = 100p
+    </tick>
+
+    <tick>
+    spacing_type   = relative
+    rspacing       = 0.02
+    show_label     = no
+    offset         = 100p
+    </tick>
+
+    <tick>
+    spacing        = 10u
+    show_label     = yes
+    </tick>
+
+    <tick>
+    spacing        = 1u
+    show_label     = no
+    </tick>
+</ticks>
+
+karyotype = data/karyotype.txt
+
+<image>
+    <<include etc/image.conf>>
+</image>
+
+chromosomes_units              = 10
+chromosomes_display_default    = yes
+chromosomes_order_by_karyotype = yes
+
+<highlights>
+    stroke_color     = vdgrey
+    stroke_thickness = 1
+
+    <highlight>
+    show = yes
+    file = data/row.txt
+    r0   = 1r+300p
+    r1   = 1r+310p
+    </highlight>
+
+    <highlight>
+    show = yes
+    file = data/col.txt
+    r1   = 1r+330p
+    r0   = 1r+320p
+    </highlight>
+
+    <highlight>
+    show = yes
+    file = data/all.txt
+    r1   = 1r+280p
+    r0   = 1r+260p
+    </highlight>
+
+    <highlight>
+    file = data/cap.col.txt
+    r1   = 0.999r-10p
+    r0   = 0.999r-30p
+    </highlight>
+
+    <highlight>
+    file = data/cap.row.txt
+    r1   = 0.999r
+    r0   = 0.999r-20p
+    </highlight>
+</highlights>
+
+<links>
+    <link>
+        ribbon           = yes
+        flat             = yes
+        file             = data/cells.txt
+        bezier_radius    = 0.0r
+        radius           = 0.999r-30p
+        thickness        = 1
+        color            = grey
+        stroke_color     = dgrey
+        stroke_thickness = 1
+
+        <rules>
+            <rule>
+                condition  = 1
+                radius1    = 0.999r-20p
+            </rule>
+        </rules>
+    </link>
+</links>
+
+<<include etc/colors_fonts_patterns.conf>>
+<<include etc/housekeeping.conf>>
+        ]]></configfile>
+    </configfiles>
+    <inputs>
+        <param name="table" type="data" format="tabular" label="Input table"/>
+        <section name="outputs" title="Outputs" expanded="true">
+            <param name="png" type="boolean" truevalue="yes" falsevalue="no" label="Output PNG" checked="true"/>
+            <param name="svg" type="boolean" truevalue="yes" falsevalue="no" label="Output SVG" checked="false"/>
+            <param name="tar" type="boolean" truevalue="yes" falsevalue="no" label="Output Configuration Archive" checked="false"/>
+        </section>
+
+        <section name="labels" title="Ticks &amp; Labels" expanded="false">
+            <section name="segment" title="Segment Labels" expanded="true">
+                <param name="show" type="boolean" truevalue="yes" falsevalue="no" label="Show label" checked="true" />
+                <param name="parallel" type="boolean" truevalue="yes" falsevalue="no" label="Show parallel to rack" />
+                <param type="integer" value="50" label="Font Size" name="size" />
+                <expand macro="font_select" normal="false" bold="true" />
+                <expand macro="circos_color" label="Color" name="color" value="#000000" />
+            </section>
+            <section name="ticks" title="Tick Labels" expanded="true">
+                <param name="show" type="boolean" truevalue="yes" falsevalue="no" label="Show label" checked="true" />
+                <param name="parallel" type="boolean" truevalue="yes" falsevalue="no" label="Show parallel to rack" />
+                <param type="integer" value="24" label="Font Size" name="size" />
+                <expand macro="font_select" normal="true"/>
+                <expand macro="circos_color" label="Color" name="color" value="#000000" />
+            </section>
+        </section>
+    </inputs>
+    <outputs>
+        <data name="output_png" format="png" from_work_dir="circos.png" label="Circos TableViewer Plot">
+            <filter>outputs['png']</filter>
+        </data>
+        <data name="output_svg" format="svg" from_work_dir="circos.svg" label="Circos TableViewer Plot">
+            <filter>outputs['svg']</filter>
+        </data>
+        <data name="output_tar" format="tar.gz" from_work_dir="circos.tar.gz" label="Circos TableViewer Conf Files">
+            <filter>outputs['tar']</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+            <param name="table" value="tableviewer/1.tab" ftype="tabular" />
+            <output name="output_png" file="tableviewer/1.png" ftype="png" compare="sim_size" delta="90000" />
+        </test>
+    </tests>
+    <help><![CDATA[
+The `official documentation <http://mkweb.bcgsc.ca/tableviewer/docs/>`__ has a lot of useful information.
+
+You should provide a table that looks like:
+
+::
+
+    labels	A	B	C
+    A	10	15	20
+    D	15	20	25
+    E	20	30	50
+
+The header column and row are strictly required.
+    ]]></help>
+    <expand macro="citations" />
+</tool>