view macros.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 ae9994cf526f
children fd59d783248a
line wrap: on
line source

<?xml version="1.0"?>
<macros>
  <token name="@CIRCOS_VERSION@">0.69.8</token>

  <token name="@WRAPPER_VERSION@">@CIRCOS_VERSION@+galaxy1</token>

  <xml name="requirements">
      <requirements>
        <requirement type="package" version="@CIRCOS_VERSION@">circos</requirement>
        <requirement type="package" version="2.7">python</requirement>
        <requirement type="package" version="0.6.4">bcbiogff</requirement>
        <requirement type="package" version="1.70">biopython</requirement>
        <requirement type="package" version="0.3.13">pybigwig</requirement>
        <requirement type="package" version="0.23">circos-tools</requirement>
        <yield />
      </requirements>
  </xml>

  <token name="@UTILS@">
#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
#def circosColorAlpha($value, $alpha)
    #set $value = str($value)
    #set $r = int($value[1:3], 16)
    #set $g = int($value[3:5], 16)
    #set $b = int($value[5:], 16)
    #set $a = float($alpha)
$r, $g, $b, $a
#end def
#def chromosomesToOrder($value)
    #set $q = ','.join([x if ':' not in x else x[x:x.index(':')] for x in str($value).split(';')])
    $q
#end def
  </token>

  <xml name="citations">
    <citations>
        <citation type="doi">10.1101/gr.092759.109</citation>
    </citations>
  </xml>

  <xml name="stroke_opts">
    <expand macro="circos_color_alpha" name="stroke_color" value="#000000" label="Stroke Color"/>
    <param name="stroke_thickness" type="integer" value="1" label="Stroke Thickness"/>
  </xml>

  <xml name="minmax">
    <conditional name="minmax">
        <param name="minmax_select" type="select" label="Minimum / maximum options">
            <option value="yes">Supply min/max values</option>
            <option value="no" selected="true">Plot all values</option>
        </param>
        <when value="yes">
            <param name="min_value" type="float" value="1.0" label="Minimum value" />
            <param name="max_value" type="float" value="5.0" label="Maximum value" />
        </when>
        <when value="no">
        </when>
    </conditional>
  </xml>

  <xml name="circos_color"
      token_label="Color"
      token_name="color"
      token_value="#000000"
      token_help=""
      >
    <param label="@LABEL@" type="color" name="@NAME@" value="@VALUE@" help="@HELP@">
      <sanitizer>
        <valid initial="string.letters,string.digits">
          <add value="#" />
        </valid>
      </sanitizer>
    </param>
  </xml>

  <xml name="circos_color_alpha"
      token_label="Color"
      token_name="color"
      token_value="#000000"
      token_help=""
      >
    <param label="@LABEL@" type="color" name="@NAME@" value="@VALUE@" help="@HELP@">
      <sanitizer>
        <valid initial="string.letters,string.digits">
          <add value="#" />
        </valid>
      </sanitizer>
    </param>
    <param name="@NAME@_alpha" type="float" label="Transparency" value="1" min="0" max="1" help="1 = fully opaque, 0 = fully transparent"/>
  </xml>

  <xml name="brewer_scale"
      token_name="color"
      token_label="Color">
    <param name="@NAME@" type="select" label="@LABEL@">
      <option value="purples-13-seq">Sequential: Purples</option>
      <option value="reds-13-seq">Sequential: Reds</option>
      <option value="oranges-13-seq">Sequential: Oranges</option>
      <option value="greens-13-seq">Sequential: Greens</option>
      <option value="blues-13-seq">Sequential: Blues</option>
      <option value="greys-13-seq">Sequential: Greys</option>

      <option value="bugn-13-seq">Sequential: Blue - Green</option>
      <option value="bupu-13-seq">Sequential: Blue - Purple</option>
      <option value="gnbu-13-seq">Sequential: Green - Blue</option>
      <option value="orrd-13-seq">Sequential: Orange - Red</option>
      <option value="pubu-13-seq">Sequential: Purple - Blue</option>
      <option value="pubugn-13-seq">Sequential: Purple - Blue - Green</option>
      <option value="purd-13-seq">Sequential: Purple - Red</option>
      <option value="rdpu-13-seq">Sequential: Red - Purple</option>
      <option value="ylgn-13-seq">Sequential: Yellow - Green</option>
      <option value="ylgnbu-13-seq">Sequential: Yellow - Green - Blue</option>
      <option value="ylorbr-13-seq">Sequential: Yellow - Orange - Brown</option>
      <option value="ylorrd-13-seq">Sequential: Yellow - Orange - Red</option>

      <option value="brbg-15-div">Diverging: Brown - Blue Green</option>
      <option value="piyg-15-div">Diverging: Pink - Yellow Green</option>
      <option value="prgn-15-div">Diverging: Purple - Green</option>
      <option value="puor-15-div">Diverging: Purple - Orange</option>
      <option value="rdbu-15-div">Diverging: Red - Blue</option>
      <option value="rdgy-15-div">Diverging: Red - Grey</option>
      <option value="rdylbu-15-div">Diverging: Red - Yellow - Blue</option>
      <option value="rdylgn-15-div">Diverging: Red - Yellow - Green</option>
      <option value="spectral-15-div">Diverging: Spectral</option>

      <option value="accent-8-qual">Qualitative: Accent</option>
      <option value="dark2-8-qual">Qualitative: Dark2</option>
      <option value="paired-12-qual" selected="true">Qualitative: Paired</option>
      <option value="pastel1-9-qual">Qualitative: Pastel1</option>
      <option value="pastel2-8-qual">Qualitative: Pastel2</option>
      <option value="set1-9-qual">Qualitative: Set1</option>
      <option value="set2-8-qual">Qualitative: Set2</option>
      <option value="set3-12-qual">Qualitative: Set3</option>
    </param>
  </xml>

  <xml name="font_select"
      token_normal="true"
      token_bold="false">
    <param name="font" type="select" label="Font">
      <option value="light">light</option>
      <option value="normal" selected="@NORMAL@">normal</option>
      <option value="default">default</option>
      <option value="semibold">semibold</option>
      <option value="bold" selected="@BOLD@">bold</option>
      <option value="italic">italic</option>
      <option value="bolditalic">bolditalic</option>
      <option value="italicbold">italicbold</option>
    </param>
  </xml>

  <xml name="axes">
    <section name="sec_axes" title="Axes">
        <repeat name="axes" title="Axis">
            <param name="y0" type="float" value="0" min="0" max="1" label="Inside Radius" help="Value must be between 1 (outer edge of track) and 0 (inner edge of the track)"/>
            <param name="y1" type="float" value="1" min="0" max="1" label="Outside Radius" help="Value must be between 1 (outer edge of track) and 0 (inner edge of the track)"/>

            <expand macro="circos_color"/>
            <param name="thickness" type="integer" value="1" label="Thickness"/>
            <param name="spacing" type="float" value="0.1" label="Spacing" help="Relative spacing between each concentric arc"/>
        </repeat>
    </section>
  </xml>

  <xml name="backgrounds">
    <section name="sec_bkgs" title="Backgrounds">
        <repeat name="backgrounds" title="Background">
            <param name="y0" type="float" value="0" min="0" max="1" label="Inside Radius" help="Value must be between 1 (outer edge of track) and 0 (inner edge of the track)"/>
            <param name="y1" type="float" value="1" min="0" max="1" label="Outside Radius" help="Value must be between 1 (outer edge of track) and 0 (inner edge of the track)"/>
            <expand macro="circos_color"/>
        </repeat>
    </section>
  </xml>

  <xml name="rules">
    <section name="sec_rule" title="Rules">
        <repeat name="rules" title="Rule">
            <repeat name="conditions" title="Conditions to Apply">
                <conditional name="application">
                    <param name="application_select" type="select" label="Condition">
                        <option value="1">Apply to Every Point</option>
                        <option value="on">Check for presence/absence per chromosome</option>
                        <option value="pos">Based on numerical position</option>
                        <option value="random">Randomly</option>
                        <option value="value">Apply based on point value</option>
                        <option value="var">Apply based on qualifier value (when available)</option>
                    </param>
                    <when value="1">
                    </when>
                    <when value="on">
                        <param name="on_genomes" type="text" label="Comma separated list of contig IDs"/>
                    </when>
                    <when value="pos">
                        <param name="pos_gt" type="float" label="Greater than this base" optional="true"/>
                        <param name="pos_lt" type="float" label="Less than this base" optional="true"/>
                        <param name="pos_lt_sub" type="boolean" truevalue="yes" falsevalue="no" label="Count 'Less than this base' from end of chromosome" />
                    </when>
                    <when value="random">
                        <param name="value" type="float" label="Percentage of bins" value="0.5" min="0" max="1" help="Randomly apply with this probability"/>
                    </when>
                    <when value="value">
                        <param name="pos_gt" type="float" label="Points above this value" optional="true"/>
                        <param name="pos_lt" type="float" label="Points below this value" optional="true"/>
                    </when>
                    <when value="var">
                        <param name="varname" type="text" label="Qualifier name"
                            help="Set to the name of the qualifier in the file you wish to compare against" />

                        <param name="cond_select" type="select" label="Condition">
                            <option value="eq">Equal to (string)</option>
                            <option value="==">Equal to (numeric)</option>
                            <option value="ne">Not equal to (string)</option>
                            <option value="!=">Not equal to (numeric)</option>
                            <option value="&lt;">Less than (numeric)</option>
                            <option value="&gt;">Greater than (numeric)</option>
                            <option value="%">Modulus (numeric)</option>
                            <sanitizer>
                              <valid initial="string.letters">
                                <add value="&gt;" />
                                <add value="&lt;" />
                                <add value="!" />
                                <add value="=" />
                                <add value="%" />
                              </valid>
                            </sanitizer>
                        </param>

                        <param name="varvalue" type="text" label="Qualifier value to compare against"/>
                    </when>
                </conditional>
            </repeat>
            <repeat name="actions" title="Actions to Apply">
                <conditional name="action">
                    <param name="action_select" type="select" label="Action">
                        <option value="show">Change Visibility</option>
                        <option value="fill_color">Change Fill Color for all points</option>
                        <option value="fill_color_value">Change Fill Color based on Value</option>
                        <option value="stroke_color">Change Stroke Color</option>
                        <option value="color_value">Change Stroke Color based on Value</option>
                    </param>
                    <when value="show">
                        <param name="action_value" type="boolean" truevalue="yes" falsevalue="no" label="Show"/>
                    </when>
                    <when value="fill_color">
                        <expand macro="circos_color" name="action_value" label="Fill Color"/>
                    </when>
                    <when value="stroke_color">
                        <expand macro="circos_color" name="action_value" label="Stroke Color"/>
                    </when>
                    <when value="fill_color_value">
                        <expand macro="brewer_scale" name="action_value" label="Fill Color"/>
                        <param name="min_value" type="float" value="-1" label="Expected minimum value of dataset"/>
                        <param name="max_value" type="float" value="1" label="Expected maximum value of dataset"/>
                        <param name="invert" type="boolean" truevalue="True" falsevalue="False" label="Invert Color Scale" />
                    </when>
                    <when value="color_value">
                        <expand macro="brewer_scale" name="action_value" label="Stroke Color"/>
                        <param name="min_value" type="float" value="-1" label="Expected minimum value of dataset"/>
                        <param name="max_value" type="float" value="1" label="Expected maximum value of dataset"/>
                        <param name="invert" type="boolean" truevalue="True" falsevalue="False" label="Invert Color Scale" />
                    </when>
                </conditional>
            </repeat>
            <param name="continue_flow" type="boolean" truevalue="flow = continue" falsevalue="" label="Continue flow"
                help="Allow rules after this one to be applied in addition to this rule. E.g. if one rule modifies font size, and another font colour, with continued flow they could both be applied rather than whichever was encountered first."/>
        </repeat>
    </section>
  </xml>

  <xml name="linkrules">
    <section name="sec_link_rule" title="Rules">
        <repeat name="rules" title="Rule">
            <repeat name="conditions" title="Conditions to Apply" help="Multiple conditions will be combined using AND">
                <conditional name="application">
                    <param name="application_select" type="select" label="Condition">
                        <option value="always" selected="true">True / Always Applied</option>
                        <option value="random">Randomly</option>
                        <option value="interchr">Interchromosomal</option>
                        <option value="intrachr">Intrachromosomal</option>
                        <option value="chr">Chromosome</option>
                        <option value="dist">Distance between sides</option>
                        <option value="start1">Start position Left</option>
                        <option value="end1">End Position Left</option>
                        <option value="pos1">Middle position Left</option>
                        <option value="size1">Size Left</option>
                        <option value="start2">Start position Right</option>
                        <option value="end2">End Position Right</option>
                        <option value="pos2">Middle position Right</option>
                        <option value="size2">Size Right</option>
                        <option value="rev1">Reversed Left (link end is reversed (e.g. start &gt; end) </option>
                        <option value="rev2">Reversed Right (link end is reversed (e.g. start &gt; end) </option>
                        <option value="inv">Inverted (link is inverted (i.e. one of its ends is reversed). If both ends are reversed, the link is not inverted )</option>
                    </param>
                    <when value="chr">
                        <expand macro="chromosome_comparison"/>
                    </when>
                    <when value="start1">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="end1">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="pos1">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="size1">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="start2">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="end2">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="pos2">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="size2">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="dist">
                        <expand macro="integer_comparison"/>
                    </when>
                    <when value="rev1"/>
                    <when value="rev2"/>
                    <when value="inv"/>
                    <when value="interchr"/>
                    <when value="intrachr"/>
                    <when value="always"/>
                    <when value="random">
                        <param name="value" type="float" label="Percentage" value="0.5" min="0" max="1" help="Randomly apply with this probability"/>
                    </when>
                </conditional>
            </repeat>
            <repeat name="actions" title="Actions to Apply">
                <conditional name="action">
                    <param name="action_select" type="select" label="Action">
                        <option value="show">Change Visibility</option>
                        <option value="color">Change Link Color</option>
                        <option value="thickness">Change Thickness</option>
                        <option value="z">Change Z-depth</option>
                    </param>
                    <when value="show">
                        <param name="action_value" type="boolean" label="Show" truevalue="yes" falsevalue="no"/>
                    </when>
                    <when value="color">
                        <conditional name="dynamic">
                            <param name="dynamic_select" type="select" label="Static / Dynamic Change">
                                <option value="static">Static: Change is always applied</option>
                                <option value="dynamic">Dynamic: Change is sometimes applied</option>
                            </param>
                            <when value="static">
                                <expand macro="circos_color_alpha" label="Link Color" name="action_value"/>
                            </when>
                            <when value="dynamic">
                                <expand macro="brewer_scale" label="Fill Color" name="action_value"/>
                                <param name="min_value" type="float" value="-1" label="Expected minimum value of dataset"/>
                                <param name="max_value" type="float" value="1" label="Expected maximum value of dataset"/>
                                <param name="invert" type="boolean" truevalue="True" falsevalue="False" label="Invert Color Scale" />
                            </when>
                        </conditional>
                    </when>
                    <when value="thickness">
                        <param name="action_value" type="integer" value="1" label="Thickness"/>
                    </when>
                    <when value="z">
                        <conditional name="dynamic">
                            <param name="dynamic_select" type="select" label="Static or Dynamic Z-Depth">
                                <option value="static">Static</option>
                                <option value="dynamic">Dynamic (based on value)</option>
                            </param>
                            <when value="static">
                                <param name="action_value" type="float" value="1" label="Z-depth" help="Datasets with a higher z-depth value are drawn on top of datasets with lower z value"/>
                            </when>
                            <when value="dynamic">
                                <param name="min_value" type="float" value="-1" label="Expected minimum value of dataset"/>
                                <param name="max_value" type="float" value="1" label="Expected maximum value of dataset"/>
                                <param name="invert" type="boolean" truevalue="True" falsevalue="False" label="Invert Z-Depth Mapping" />
                            </when>
                        </conditional>
                    </when>
                </conditional>
            </repeat>

            <param name="continue_flow" type="boolean" label="Continue flow" truevalue="flow = continue" falsevalue="" help="Allow rules after this one to be applied in addition to this rule. E.g. if one rule modifies font size, and another font colour, with continued flow they could both be applied rather than whichever was encountered first." />
        </repeat>
    </section>
  </xml>

  <xml name="integer_comparison">
    <conditional name="comparison" >
        <param name="compare" type="select" label="Comparison">
            <option value="lt">less than</option>
            <option value="gt">greater than</option>
        </param>
        <when value="lt">
            <param name="compval" value="0" type="integer" label="value"/>
        </when>
        <when value="gt">
            <param name="compval" value="0" type="integer" label="value"/>
        </when>
    </conditional>
  </xml>

  <xml name="chromosome_comparison">
    <conditional name="comparison" >
        <param name="compare" type="select" label="Comparison">
            <option value="on">on chromosome (either side)</option>
            <option value="from">from chromosome</option>
            <option value="to">to chromosome</option>
            <option value="fromto">from-to chromosome</option>
            <option value="between">between chromosomes</option>
        </param>
        <!-- TODO select chromosome from metadata/file column instead of text fields -->
        <when value="on">
            <param name="compval" value="chr1" type="text" label="Chromosome" help="Comma separated values are supported in this field"/>
        </when>
        <when value="from">
            <param name="compval" value="chr1" type="text" label="Chromosome"/>
        </when>
        <when value="to">
            <param name="compval" value="chr1" type="text" label="Chromosome"/>
        </when>
        <when value="fromto">
            <param name="compval" value="chr1" type="text" label="From Chromosome"/>
            <param name="compval2" value="chr1" type="text" label="To Chromosome"/>
        </when>
        <when value="between">
            <param name="compval" value="chr1" type="text" label="Chromosome"/>
            <param name="compval2" value="chr1" type="text" label="Chromosome"/>
        </when>
    </conditional>
  </xml>

</macros>