view gmql_rest_queries_editor.xml @ 0:c74a1c7121ec draft default tip

planemo upload for repository https://github.com/lu-brn/gmql-galaxy commit 953ee36ceda5814dc9baa03427bc0eb4ee2e93bd-dirty
author geco-team
date Tue, 26 Jun 2018 08:59:49 -0400
parents
children
line wrap: on
line source

<tool id="gmql_queries_editor" name="GMLQ Query Editor" version="0.1.1">
  <description>Compile and run GMQL queries (Advanced Mode)</description>
  <macros>
    <import>gmql_rest_macros.xml</import>
  </macros>
    <command><![CDATA[
      #if $mode.exec_mode == "execute" :
       python $__tool_directory__/gmql_rest_queries.py
       -user=$authToken
       -cmd=execute
       -name=$query_name
       #if $query_create.create == "yes" :
        -query=$query_text
       #else :
        -query=$query_file
       #end if
       -log=$log
       -format=$mode.out_format
       -importFlag=$mode.import
       -add_output=$updated_list
      #else :
       python $__tool_directory__/gmql_rest_queries.py
       -user=$authToken
       -cmd=$mode.exec_mode
       -name=$query_name
       #if $query_create.create == "yes" :
        -query=$query_text
       #else :
        -query=$query_file
       #end if
       -log=$log
      #end if
	  ]]></command>
  <configfiles>
      <configfile name="query_text" >#if $query_create.create == 'yes' :
          #echo '%s'%($query_create.query)
          #end if</configfile>
  </configfiles>
  <code file="dynamic_utils.py">
      <hook validate_input="validate" />
  </code>
  <inputs>
        <param format="gmql_user" name="authToken" type="data" label="Select user" />
        <param name="query_name" type="text" label="Query Name" >
            <validator type="regex" message="Only alphanumeric characters and underscore allowed. It must begin with
                                         letter or underscore.">[a-zA-Z_]([\w]+)?$</validator>
        </param>
        <conditional name="query_create">
            <param name="create" type="select" display="radio" label="Write a new query or execute an existing one." >
                <option value="yes">Write new one</option>
                <option value="no">Run/Compile existing one</option>
            </param>
            <when value="yes">
                <param name="query" type="text" area="true" label="Query" >
                    <sanitizer>
                        <valid initial="default">
                            <add value=";"/>
                        </valid>
                        <mapping initial="default">
                            <add source="X" target="__cn__" />
                        </mapping>
                    </sanitizer>
                </param>
            </when>
            <when value="no">
                <param label="Select GMQL Query" type="data" format="gmql_query" name="query_file" />
            </when>
        </conditional>
        <conditional name="mode">
            <param name="exec_mode" type="select" label="Compile or run query">
                <option value="compile">Compile query</option>
                <option value="execute">Execute query</option>
            </param>
            <when value="execute">
                <param name="out_format" type="select" label="Output format">
                    <option value="gdm">TAB Delimited (GDM)</option>
                    <option value="gtf">GTF</option>
                </param>
                <param name="import" type="boolean" checked="true" label="Import result automatically into Galaxy?"
                                   help="Otherwise it will be possible to import it later using GMQL Import Dataset tool." />
            </when>
        </conditional>
  </inputs>
  <outputs>
        <data format="txt" name="log" label="${query_name} query log" />
        <collection name="query_results_m" type="list" label="${query_name} results metadata">
            <discover_datasets pattern="(?P&lt;identifier_0&gt;[\w]+)\.(?P&lt;ext&gt;[^\._]+)?"
                               directory="metadata"/>
            <filter>mode['exec_mode'] == 'execute' and mode['import'] is True</filter>
        </collection>
        <collection name="query_results_s" type="list" label="${query_name} results">
            <discover_datasets pattern="(?P&lt;identifier_0&gt;[\w]+)\.(?P&lt;ext&gt;[^\._]+)?"
                               directory="samples"/>
            <filter>mode['exec_mode'] == 'execute' and mode['import'] is True</filter>
        </collection>
        <data format="gmql_repository" name="updated_list" label="${authToken.name.split()[0].rstrip('')} GMQL Datasets">
            <filter>mode['exec_mode'] == 'execute'</filter>
            <actions>
                <action name="column_names" type="metadata" default="dataset,owner" />
           </actions>
       </data>
  </outputs>
  <tests>
      <test>
          <param name="authToken" value="guest.gmql_user"/>
          <param name="query_name" value="testexec"/>
          <conditional name="query_create">
              <param name="create" value="yes"/>
              <param name="query"
                     value="VAR = SELECT (grant == __sq__Stam__sq__) Example_Dataset_1 ;__cn__MATERIALIZE VAR INTO TG;"/>
          </conditional>
          <conditional name="mode">
              <param name="exec_mode" value="execute"/>
              <param name="out_format" value="gdm"/>
              <param name="import" value="true"/>
          </conditional>
          <output name="log" ftype="txt">
              <assert_contents>
                  <has_text text="SUCCESS"/>
              </assert_contents>
          </output>
          <output name="updated_list" ftype="gmql_repository">
              <assert_contents>
                  <has_text_matching expression="testexec_\d+_\d+_TG"/>
              </assert_contents>
          </output>
          <collection name="query_results_s" type="list">
              <metadata name="name" value="testexec results"/>
              <discovered_dataset designation="S00000" file="TG/S_00000.gdm"/>
              <discovered_dataset designation="S00001" file="TG/S_00001.gdm"/>
              <discovered_dataset designation="S00002" file="TG/S_00002.gdm"/>
          </collection>
          <collection name="query_results_m" type="list">
              <metadata name="name" value="testexec results metadata"/>
              <discovered_dataset designation="S00000" file="TG/S_00000.gdm.meta"/>
              <discovered_dataset designation="S00001" file="TG/S_00001.gdm.meta"/>
              <discovered_dataset designation="S00002" file="TG/S_00002.gdm.meta"/>
          </collection>
      </test>
      <test>
          <param name="authToken" value="guest.gmql_user" />
          <param name="query_name" value="testcompile" />
          <conditional name="query_create">
              <param name="create" value="no" />
              <param name="query_file" value="query.gmql_query" />
          </conditional>
          <conditional name="mode">
              <param name="exec_mode" value="compile" />
          </conditional>
          <output name="log" ftype="txt">
              <assert_contents>
                  <has_text text="COMPILE_SUCCESS" />
              </assert_contents>
          </output>
      </test>
  </tests>
    <help>
It allows writing a GMQL query directly in text form and send it to the GMQL system to be compiled and executed,
and in this second case it imports the resulting dataset into the current history. This has been thought as a tool for
advanced users who already knows GMQL and its syntax. See the linked GMQL documentation about it.

----

**What it does**

Given a GMQL query in plain text, or a GMQL query saved in the current Galaxy history (gmql_query), requires its
compilation or execution.

- **Compile query**: send the query to be compiled on the GMQL system. It returns the compilation log.
- **Run query**: send the query to be run on the GMQL system. User can choose to automatically import the resulting dataset or not, and the output format. It returns the log generated by the system, an updated list of the user dataset, and the two collections corresponding to the result datasets samples and metadata, respectively.

.. class:: warningmark

A gmql_user authentication token is required for every action.

----

.. class:: infomark

**Output formats**

- **GTF**: General feature format, fields are:  seqname, source, feature, start (1-based), end, score, strand, frame, attribute
- **GDM** (Tab Delimited): the Genomic Data Model developed within the GMQL project. Fields are at least: chr, start (0-based), stop, strand (regions coordinates) plus an arbitrary set of additional attributes.

  </help>
  <expand macro="citations" />
</tool>