diff XSeekerPreparator.xml @ 0:1660665c081e draft

#issue9 branch Updating - - Fxx
author fgiacomoni
date Thu, 19 Nov 2020 14:28:46 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/XSeekerPreparator.xml	Thu Nov 19 14:28:46 2020 +0000
@@ -0,0 +1,343 @@
+<tool id="xseeker_preparator"
+      name="XSeeker Preparator"
+      version="1.0.1"
+      profile="20.04"
+>
+    <description>Prepare RData file from CAMERA to be visualized in XSeeker</description>
+    
+    <edam_operations>
+        <edam_operation>operation_1812</edam_operation>
+        <edam_operation>operation_0335</edam_operation>
+    </edam_operations>
+    
+    <requirements>
+        <requirement type="set_environment">R_SCRIPT_PATH</requirement>
+        <!-- 
+        <requirement type="package" version="4.0.0">R</requirement>
+        -->
+        <requirement type="package" version="4.0.0">R</requirement>
+        <requirement type="package" version="1.6.6">optparse</requirement>
+        <requirement type="package" version="3.10.2">xcms</requirement>
+        <requirement type="package" version="1.2.1">blob</requirement>
+        <requirement type="package" version="0.9.4">fst</requirement>
+        <requirement type="package" version="1.4.0">stringr</requirement>
+        <requirement type="package">DBModelR</requirement>
+    </requirements>
+    
+    <stdio>
+
+        <exit_code 
+            range="1"
+            level="warning"
+            description="Selected samples have no data associated to them."
+        />
+
+        <exit_code 
+            range="2"
+            level="warning"
+            description="Some samples have no data associated to them."
+        />
+
+    </stdio>
+
+    <version_command>
+        R_SCRIPT_PATH '$__tool_directory__/XSeekerPreparator.R' -v
+    </version_command>
+
+    <command>
+        <![CDATA[
+
+            R_SCRIPT_PATH '$__tool_directory__/XSeekerPreparator.R'
+
+                -P
+
+                --input '$input'
+                --output '$output'
+
+                #if $samples.selected
+                    --samples '${",".join(samples.selected)}'
+                #end if
+
+                #if $database.archetypes
+                    --archetype '${",".join($database.archetypes)}'
+                #end if
+
+                #if $database.base.kind == "tabular"
+                    --compounds-csv '${database.base.tabular}'
+                #else if $database.base.kind == "sql"
+                    --database '${database.base.sql}'
+                #end if
+
+                #if $database.models.kind == "default"
+                    --models '${base_config}'
+                #else
+                    --models '${database.models.url}'
+                #end if
+
+        ]]>
+
+    </command>
+
+    <inputs>
+        <param 
+            name="input"
+            type="data"
+            multiple="false"
+            label="Rdata to prepare"
+            optional="false"
+            format="rdata"
+        >
+        </param>
+        <section name="samples" title="Samples Options" expanded="false">
+            <param 
+                name="selected"
+                type="data"
+                multiple="true"
+                label="Samples to visualize"
+                optional="true"
+                format="mzml"
+            >
+            </param>
+        </section>
+
+        <section name="database" title="Database Options" expanded="false">
+            <param
+                name="archetypes"
+                type="select"
+                multiple="true"
+                label="Molecule family (for database's compounds enrichment)"
+            >
+                <option value="G" selected="true">General</option>
+                <option value="H">Halogenates</option>
+            </param>
+
+            <conditional name="base">
+                <param name="kind" type="select" label="File containing compound's type">
+                    <option value="none" selected="true">None (deafult)</option>
+                    <option value="tabular">tabular</option>
+                    <option value="sql">sql</option>
+                </param>
+                <when value="tabular">
+                    <param
+                        name="tabular"
+                        type="data"
+                        multiple="true"
+                        label="Tabular file containing compound to use in XSeeker"
+                        optional="true"
+                        format="tabular"
+                    >
+                    </param>
+                </when>
+                <when value="sql">
+                    <param
+                        name="sql"
+                        type="data"
+                        multiple="true"
+                        label="SQL file containing compound to use in XSeeker"
+                        optional="true"
+                        format="sql"
+                    >
+                    </param>
+                </when>
+            </conditional>
+
+            <conditional name="models">
+                <param name="kind" type="select" label="How is the database's model defined">
+                    <option value="default" selected="true">Default (regular XSeeker Database)</option>
+                    <option value="url">Download model file</option>
+                    <option value="git">Get versionned model file</option>
+                </param>
+                <when value="url">
+                    <param name="url" type="text" format="url" label="File URL"/>
+                </when>
+                <when value="git">
+                    <param name="url" type="text" format="url" label="Repo URL"/>
+                </when>
+            </conditional>
+        </section>
+    </inputs>
+
+
+    <outputs>
+        <data format="xseeker.sqlite" name="output" />
+    </outputs>
+
+    <configfiles>
+        <configfile name="base_config">
+tryCatch({
+    DBModelR::ModelDefinition(table="yui", fields=list(yui="INTEGER"))
+}, error=function(e) {
+    stop("Please, install DBModelR before you source this file.")
+})
+
+list(
+    adduct=DBModelR::ModelDefinition(
+        table="adduct",
+        fields=list(
+            name="TEXT",
+            mass="FLOAT",
+            charge="INTEGER",
+            multi="INTEGER",
+            formula_add="TEXT",
+            formula_ded="TEXT",
+            sign="TEXT",
+            oidscore="INTEGER",
+            quasi="INTEGER",
+            ips="FLOAT"
+        )
+    ),
+    cluster=DBModelR::ModelDefinition(
+        table="cluster",
+        fields=list(
+            clusterID="INTEGER",
+            formula="TEXT",
+            annotation="TEXT",
+            coeff="FLOAT",
+            r_squared="FLOAT",
+            charge="INTEGER",
+            mean_rt="FLOAT",
+            score="FLOAT",
+            deviation="FLOAT",
+            status="TEXT",
+            adduct="TEXT",
+            curent_group="INTEGER",
+            pc_group="INTEGER",
+            align_group="INTEGER",
+            xcms_group="INTEGER"
+        ),
+        one=list("sample", "compound")
+    ),
+    compound=DBModelR::ModelDefinition(
+        table="compound",
+        fields=list(
+            name="TEXT",
+            common_name="TEXT",
+            formula="TEXT",
+            charge="INTEGER",
+            date="TEXT",
+            mz="FLOAT"
+        )
+    ),
+    feature=DBModelR::ModelDefinition(
+        table="feature",
+        fields=list(
+            featureID="INTEGER",
+            mz="FLOAT",
+            mz_min="FLOAT",
+            mz_max="FLOAT",
+            rt="FLOAT",
+            rt_min="FLOAT",
+            rt_max="FLOAT",
+            int_o="FLOAT",
+            int_b="FLOAT",
+            max_o="FLOAT",
+            iso="TEXT",
+            abundance="FLOAT"
+        ),
+        one=list("cluster")
+    ),
+    instrument=DBModelR::ModelDefinition(
+        table="instrument",
+        fields=list(
+            model="TEXT",
+            manufacturer="TEXT",
+            analyzer="TEXT",
+            detector_type="TEXT",
+            ion_source="TEXT"
+        )
+    ),
+    instrument_config=DBModelR::ModelDefinition(
+        table="instrument_config",
+        fields=list(
+            resolution="TEXT",
+            agc_target="TEXT",
+            maximum_IT="TEXT",
+            number_of_scan_range="TEXT",
+            scan_range="TEXT",
+            version="TEXT"
+        )
+    ),
+    project=DBModelR::ModelDefinition(
+        table="project",
+        fields=list(
+            name="TEXT",
+            comment="TEXT"
+        ),
+        one=list("sample")
+    ),
+    sample=DBModelR::ModelDefinition(
+        table="sample",
+        fields=list(
+            name="TEXT",
+            path="TEXT",
+            polarity="TEXT",
+            kind="TEXT", ## rdata or mxml or enriched_rdata
+            raw="BLOB"
+        ),
+        one=list(
+            "peak_picking_parameters",
+            "pairing_parameters",
+            "alignmenmt_parameters",
+            "camera_parameters",
+            "instrument",
+            "instrument_config",
+            "software",
+            "smol_xcms_set"
+        )
+    ),
+    smol_xcms_set=DBModelR::ModelDefinition(
+        table="smol_xcms_set",
+        fields=list(
+            raw="BLOB"
+        )
+    ),
+    software=DBModelR::ModelDefinition(
+        table="software",
+        fields=list(
+            name="TEXT",
+            version="TEXT"
+        )
+    ),
+    peak_picking_parameters=DBModelR::ModelDefinition(
+        table="peak_picking_parameters",
+        fields=list(
+            ppm="FLOAT",
+            peakwidth="TEXT",
+            snthresh="TEXT",
+            prefilterStep="TEXT",
+            prefilterLevel="TEXT",
+            mzdiff="TEXT",
+            fitgauss="TEXT",
+            noise="TEXT",
+            mzCenterFun="TEXT",
+            integrate="INTEGER",
+            firstBaselineCheck="TEXT",
+            snthreshIsoROIs="TEXT",
+            maxCharge="INTEGER",
+            maxIso="INTEGER",
+            mzIntervalExtension="TEXT"
+        )
+    ),
+    alignmenmt_parameters=DBModelR::ModelDefinition(
+        table="alignmenmt_parameters",
+        fields=list(
+            binSize="TEXT",
+            centerSample="TEXT",
+            response="TEXT",
+            distFun="TEXT",
+            gapInit="TEXT",
+            gapExtend="TEXT",
+            factorDiag="TEXT",
+            factorGap="TEXT",
+            localAlignment="INTEGER",
+            initPenalty="TEXT",
+            bw="TEXT",
+            minFraction="TEXT",
+            minSamples="TEXT",
+            maxFeatures="TEXT"
+        )
+    )
+)
+        </configfile>
+    </configfiles>
+</tool>