diff construct_eset.xml @ 0:2cfd0db49bbc draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/music/ commit 08c6fd3885bdfbf8b5c3f4dcc2d04729b577e3e1"
author bgruening
date Sun, 12 Sep 2021 19:49:12 +0000
parents
children be91cb6f48e7
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/construct_eset.xml	Sun Sep 12 19:49:12 2021 +0000
@@ -0,0 +1,211 @@
+<tool id="music_construct_eset" name="Construct Expression Set Object" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@"
+      profile="20.05" license="GPL-3.0-or-later" >
+    <description>Create an ExpressionSet object from tabular and textual data</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements" />
+    <command detect_errors="exit_code"><![CDATA[
+Rscript --vanilla '$conf'
+]]></command>
+    <configfiles>
+        <configfile name="conf" >
+
+suppressWarnings(suppressPackageStartupMessages(library(xbioc)))
+suppressWarnings(suppressPackageStartupMessages(library(MuSiC)))
+
+null_str_vec = function(gstr){
+   tokens = unlist(as.vector(strsplit(gstr, split=",")))
+   if (length(tokens) == 0){
+      return(NULL)
+   }
+   if (length(tokens) == 1){
+      return(tokens[[1]])
+   }
+   return(tokens)
+}
+
+## Assay Data
+## F rows of features and S columns of samples
+## - This file is the only non-optional parameter
+exprs_file = '$exprs_file'
+exprs = as.matrix(read.table(exprs_file, header = T, sep = "\t",
+                  row.names = 1, as.is = T))
+## Phenotype Data
+## S rows of samples, and V columns of covariates (e.g. sex, age, etc.)
+pdata = NULL
+#if '$pdata_file':
+pdata_file = '$pdata_file'
+pdata = read.table(pdata_file, row.names = 1, header = T, sep = "\t", as.is=T)
+#end if
+## Annotation and Feature Data, or just a string for type of chip used
+annotation = null_str_vec('$annotation')
+
+if (all(rownames(pdata) != colnames(exprs))) {
+   stop("Number of Samples between phenotypes and assays are not the same")
+}
+
+##metadata = data.frame(
+##    labelDescription = c(
+##        "Patient gender",
+##        "Case/Control",
+##        "Tumor progress"),
+##    row.names = c("gender", "type", "score"))
+metadata = as.data.frame(do.call(rbind, list(
+#for i, row in enumerate($metadata):
+      #if i==0
+      list(ldesc='$row.label_desc', lname='$row.row_names')
+      #else
+      ,list(ldesc='$row.label_desc', lname='$row.row_names')
+      #end if
+#end for
+)))
+metadata\$labelDescription = unlist(metadata\$ldesc)
+rownames(metadata) = unlist(metadata\$lname)
+metadata\$ldesc = NULL
+metadata\$lname = NULL
+
+if (nrow(metadata)==0) {
+   metadata = NULL
+}
+
+pheno_data = new("AnnotatedDataFrame", data = pdata, varMetadata = metadata)
+
+## Experiment Description -- using the MIAME object
+experiment_data = new(
+    "MIAME",
+    name = null_str_vec('$expdata.name'),
+    lab = null_str_vec('$expdata.lab'),
+    contact = null_str_vec('$expdata.contact'),
+    title = null_str_vec('$expdata.title'),
+    abstract = null_str_vec('$expdata.abstract'),
+    url = null_str_vec('$expdata.url'),
+    other = list(
+#for i, row in enumerate($expdata.other):
+    #if i==0
+    '$row.field' = null_str_vec('$row.comment')
+    #else
+    ,'$row.field' = null_str_vec('$row.comment')
+    #end if
+#end for
+))
+
+e_set = ExpressionSet(assayData = exprs,
+                      phenoData = pheno_data,
+                      experimentData = experiment_data,
+                      annotation = annotation)
+
+capture.output(print(e_set), file = '$out_tab')
+saveRDS(e_set, file= '$out_rds')
+
+        </configfile>
+    </configfiles>
+    <inputs>
+        <param name="exprs_file" label="Assay Data" type="data" format="tabular,tsv"
+               help="F rows of features and S columns of samples. A Tab delimited file, with a header line and the first column has row names." />
+        <param name="pdata_file" label="Phenotype Data" type="data"
+               format="tabular,tsv" optional="true"
+               help="S rows of samples, and V columns of covariates (e.g. sex, age)" />
+        <param name="annotation" label="Annotation" type="text"
+               optional="true" help="A string detailing which chip was used"  >
+            <expand macro="validator_text_and_urls" />
+        </param>
+        <repeat name="metadata" title="Meta Data" min="0" max="15" >
+            <!-- optional, so min=0 -->
+            <param name="row_names" label="Label" type="text" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+            <param name="label_desc" label="Label Description" type="text" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+        </repeat>
+        <section name="expdata" title="Experiment Data" >
+            <param name="name" label="Experimenter Name" type="text" value="" optional="true" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+            <param name="lab" label="Lab" type="text" value="" optional="true" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+            <param name="contact" label="Contact" type="text" value="" optional="true" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+            <param name="title" label="Title" type="text" value="" optional="true" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+            <param name="abstract" label="Abstract" type="text" value="" optional="true" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+            <param name="url" label="URL" type="text" value="" optional="true" >
+                <expand macro="validator_text_and_urls" />
+            </param>
+            <repeat name="other" title="Other Fields" min="1">
+                <param name="field" label="FieldName" type="text" value="notes" >
+                    <expand macro="validator_text_and_urls" />
+                </param>
+                <param name="comment" label="Comment" type="text" value="Created in Galaxy" >
+                    <expand macro="validator_text_and_urls" />
+                </param>
+            </repeat>
+        </section>
+    </inputs>
+    <outputs>
+        <data name="out_tab" format="tabular" label="${tool.name} on ${on_string}: General Info" />
+        <data name="out_rds" format="rdata.eset" label="${tool.name} on ${on_string}: RData ESet Object" />
+    </outputs>
+    <tests>
+        <test expect_num_outputs="2" >
+            <!-- Values from the manual -->
+            <param name="exprs_file" value="array.tsv" />
+            <param name="pdata_file" value="pheno.tsv" />
+            <param name="annotation" value="hgu95av2" />
+            <repeat name="metadata" >
+                <param name="row_names" value="gender" />
+                <param name="label_desc" value="Patient gender" />
+            </repeat>
+            <repeat name="metadata" >
+                <param name="row_names" value="type" />
+                <param name="label_desc" value="Case/control status" />
+            </repeat>
+            <repeat name="metadata" >
+                <param name="row_names" value="score" />
+                <param name="label_desc" value="Tumor Progress on XYZ scale" />
+            </repeat>
+            <section name="expdata">
+                <param name="name" value="Pierre Fermat" />
+                <param name="lab" value="Francis Galton Lab" />
+                <param name="contact" value="pfermat@lab.not.exist" />
+                <param name="title" value="Smoking-Cancer Experiment" />
+                <param name="abstract" value="An example ExpressionSet" />
+                <param name="url" value="www.lab.not.exist" />
+                <repeat name="other" >
+                    <param name="field" value="notes" />
+                    <param name="comment" value="Created in Galaxy" />
+                </repeat>
+                <repeat name="other" >
+                    <param name="field" value="general" />
+                    <param name="comment" value="Some other comment" />
+                </repeat>
+            </section>
+            <output name="out_tab">
+                <assert_contents>
+                    <has_text text="assayData: 3 features, 2 samples " />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+Construct an ExpressionSet object from a variety of input attributes, such as experimentData, phenotype data, and annotations.
+
+For more options and information, consult `the manual <http://www.bioconductor.org/packages/release/bioc/vignettes/Biobase/inst/doc/ExpressionSetIntroduction.pdf>`_ and the `rdocumentation <https://www.rdocumentation.org/packages/Biobase/versions/2.32.0/topics/ExpressionSet>`_
+.
+    ]]></help>
+    <citations>
+        <citation type="bibtex">
+            @misc{falcon2007introduction,
+            title={An introduction to bioconductor’s expressionset class},
+            author={Falcon, Seth and Morgan, Martin and Gentleman, Robert},
+            year={2007}
+            }
+        </citation>
+    </citations>
+</tool>
\ No newline at end of file