Mercurial > repos > matthias > dada2_makesequencetable
diff dada2_makeSequenceTable.xml @ 0:98e24c66eeb2 draft
planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/topic/dada2/tools/dada2 commit d63c84012410608b3b5d23e130f0beff475ce1f8-dirty
author | matthias |
---|---|
date | Fri, 08 Mar 2019 06:42:56 -0500 |
parents | |
children | d2e7c5f8a9f7 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dada2_makeSequenceTable.xml Fri Mar 08 06:42:56 2019 -0500 @@ -0,0 +1,75 @@ +<tool id="dada2_makeSequenceTable" name="dada2: makeSequenceTable" version="@DADA2_VERSION@"> + <description>construct a sequence table (analogous to OTU table)</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"/> + <expand macro="version_command"/> + <command detect_errors="exit_code"><![CDATA[ + Rscript '$dada2_script' + ]]></command> + <configfiles> + <configfile name="dada2_script"><![CDATA[ +@READ_FOO@ + +library(dada2, quietly=T) +#if $filter.plot == "yes" +library(ggplot2, quietly=T) +#end if + +samples <- list() +#for $s in $samples: + #if $len($samples) == 1 + samples <- $read_data($s) + #else + samples[["$s.element_identifier"]] <- $read_data($s) + #end if +#end for +## make sequence table +seqtab <- makeSequenceTable(samples, orderBy = "$orderby") + +## get and plot length distribution +seqlen <- data.frame(length = nchar(getSequences(seqtab))) +seqlenq <- quantile(seqlen\$length, probs=c( $filter.plower, $filter.pupper )) + +#if $filter.plot == "yes" +pdf( '$plot' ) +ggplot(seqlen) + + geom_histogram( aes(x=length), binwidth=1 ) + + geom_vline(xintercept=c(seqlenq[1]-0.5, seqlenq[2]+0.5)) +bequiet <- dev.off() +#end if + +## filter by seqlengths +#if $filter.filter == "yes" +seqtab <- seqtab[,nchar(colnames(seqtab)) %in% seqlenq] +#end if + +write.table(seqtab, "$stable", quote=F, sep="\t", row.names = T, col.names = NA) + ]]></configfile> + </configfiles> + <inputs> + <param name="samples" type="data" multiple="true" format="@DADA_UNIQUES@" label="samples" /> + <param name="orderby" type="select" label="Column order"> + <option value="abundance">abundance</option> + <option value="nsamples">nsamples</option> + </param> + <section name="filter" title="Plot and filter sequence lengths"> + <param name="plower" type="float" min="0" max="1" value="0.01" label="lower quantile" /> + <param name="pupper" type="float" min="0" max="1" value="0.99" label="upper quantile" /> + <param name="plot" type="boolean" truevalue="yes" falsevalue="no" checked="true" label="plot sequence length distribution" /> + <param name="filter" type="boolean" truevalue="yes" falsevalue="no" checked="true" label="filter sequence length using quantiles" /> + </section> + </inputs> + <outputs> + <data name="stable" format="dada2_sequencetable" label="${tool.name} on ${on_string}"/> + <data name="plot" format="pdf" label="${tool.name} on ${on_string}: sequence length distribution"> + <filter>filter['plot']</filter> + </data> + </outputs> + + <help><![CDATA[ + TODO: Fill in help. + ]]></help> + <expand macro="citations"/> +</tool>