diff macros.xml @ 22:9a913cdee30e draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/multiqc commit 57b36cfbdd1663aef43d03b76e37364cc5bdeef3"
author iuc
date Wed, 03 Nov 2021 15:17:39 +0000
parents
children abfd8a6544d7
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Wed Nov 03 15:17:39 2021 +0000
@@ -0,0 +1,377 @@
+<macros>
+    <token name="@TOOL_VERSION@">1.11</token>
+    <token name="@VERSION_SUFFIX@">0</token>
+    <xml name="bio_tools">
+        <xrefs>
+            <xref type="bio.tools">multiqc</xref>
+        </xrefs>
+    </xml>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@TOOL_VERSION@">multiqc</requirement>
+         </requirements>
+    </xml>
+
+    <token name="@ESCAPE_IDENTIFIER@">
+        <![CDATA[
+        #set identifier = re.sub('[^\s\w\-]', '_', str($file.element_identifier))
+    ]]></token>
+
+    <token name="@CHECK_LN_FILE@">
+        <![CDATA[
+        #if $file_path in $file_paths
+            #set $file_path += '_' + str($file_paths.count($file_path))
+        #end if
+        #set $file_paths += [$file_path]
+        grep -q '$pattern' $file || die "Module '${repeat.software_cond.software}: '$pattern' not found in the file '$identifier'" &&
+        ln -s '$file' '$file_path'  &&
+    ]]></token>
+        
+    <token name="@CREATE_REPEAT_DIR_1@">
+        <![CDATA[
+        #set repeat_dir = os.path.join($software_dir, str($repeat2.type) + '_' + str($j))
+        mkdir '$repeat_dir' &&
+    ]]></token>
+
+    <token name="@CREATE_REPEAT_DIR_1@">
+        <![CDATA[
+        #set repeat_dir = os.path.join($software_dir, str($repeat2.type) + '_' + str($j))
+        mkdir '$repeat_dir' &&
+                ]]></token>
+                <token name="@CREATE_REPEAT_DIR_2@">
+        <![CDATA[
+        #set repeat_dir = os.path.join($software_dir, str($repeat2.type.type) + '_' + str($j))
+        mkdir '$repeat_dir' &&
+                ]]></token>
+                <token name="@LN_FILES@">
+        <![CDATA[
+        #set file_paths = []
+        #for $file in $repeat.software_cond.input
+            @ESCAPE_IDENTIFIER@
+            #set file_path = os.path.join($software_dir, str($identifier))
+            @CHECK_LN_FILE@
+        #end for
+    ]]></token>
+
+    <token name="@LN_2_FILES@">
+        <![CDATA[
+        #set file_paths = []
+        @CREATE_REPEAT_DIR_1@
+        #for $file in $repeat2.input
+            #set identifier = re.sub('[^\s\w\-]', '_', str($file.element_identifier))
+            #set file_path = os.path.join($repeat_dir, str($identifier))
+            @CHECK_LN_FILE@
+        #end for
+    ]]></token>
+
+    <token name="@LN_3_FILES@">
+        <![CDATA[
+        #set file_paths = []
+        #for $file in $repeat2.type.input
+            #set identifier = re.sub('[^\s\w\-]', '_', str($file.element_identifier))
+            #set file_path = os.path.join($repeat_dir, str($identifier))
+            @CHECK_LN_FILE@
+        #end for
+    ]]></token>
+
+    <token name="@BISMARK_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            @CREATE_REPEAT_DIR_1@
+            #if str($repeat2.type) == "align"
+                #for $file in $repeat2.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_SE_report.txt')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "dedup"
+                #for $file in $repeat2.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_deduplication_report.txt')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "meth_extract"
+                #for $file in $repeat2.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_splitting_report.txt')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "m_bias"
+                #for $file in $repeat2.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_M-bias.txt')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "bam2nuc"
+                #for $file in $repeat2.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.nucleotide_stats.txt')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@DEEPTOOLS_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #if str($repeat2.type) == "bamPEFragmentSize"
+                #set $pattern = "Frag."
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "estimateReadFiltering"
+                #set $pattern = "Internally-determined Duplicate"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotCoverageStdout"
+                #set $pattern = "sample"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotCoverageOutRawCounts"
+                #set $pattern = "#plotCoverage --outRawCounts"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotEnrichment"
+                #set $pattern = "featureReadCount"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotFingerprintOutRawCounts"
+                #set $pattern = "#plotFingerprint --outRawCounts"
+                @LN_2_FILES@
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@PICCARD_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #if str($repeat2.type) == "alignment_metrics"
+                #set $pattern = "picard.analysis.AlignmentSummaryMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "basedistributionbycycle"
+                #set $pattern = "picard.analysis.BaseDistributionByCycleMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "gcbias"
+                #set $pattern = "picard.analysis.GcBias"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "hsmetrics"
+                #set $pattern = "picard.analysis.directed.HsMetrics"
+                @   @
+            #elif str($repeat2.type) == "insertsize"
+                #set $pattern = "picard.analysis.InsertSizeMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "markdups"
+                #set $pattern = "MarkDuplicates"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "oxogmetrics"
+                #set $pattern = "picard.analysis.CollectOxoGMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "pcr_metrics"
+                #set $pattern = "picard.analysis.directed.TargetedPcrMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "rnaseqmetrics"
+                #set $pattern = "Collect"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "rrbs_metrics"
+                #set $pattern = "picard.analysis.RrbsSummaryMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "wgs_metrics"
+                #set $pattern = "picard.analysis.CollectWgsMetrics$WgsMetrics"
+                @LN_2_FILES@
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@FASTQC_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            @CREATE_REPEAT_DIR_1@
+            #if str($repeat2.type) == "data"
+                #for $k, $file in enumerate($repeat2.input)
+                    #set file_dir = os.path.join($repeat_dir, 'file_' + str($k))
+                    #set file_path = os.path.join($file_dir, 'fastqc_data.txt')
+                    mkdir '$file_dir' &&
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "theoretical_gc"
+                #for $file in $repeat2.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_fastqc_theoretical_gc')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@RSEQ_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            @CREATE_REPEAT_DIR_2@
+            #if str($repeat2.type.type) == "bam_stat"
+                #set $pattern = "Proper-paired reads map to different chrom:"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "gene_body_coverage"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.geneBodyCoverage.txt')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type.type) == "inner_distance"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.inner_distance_freq.txt')
+                    ln -s '${file}' '$file_path' &&
+                #end for
+            #elif str($repeat2.type.type) == "junction_annotation"
+                #set $pattern = "Partial Novel Splicing Junctions:"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "read_gc"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.GC.xls')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type.type) == "junction_annotation"
+                #set $pattern = "Group               Total_bases         Tag_count           Tags/Kb"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "read_distribution"
+                #set $pattern = "Group               Total_bases         Tag_count           Tags/Kb"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "read_duplication_pos"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.pos.DupRate.xls')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type.type) == "infer_experiment"
+                #set $pattern = "Fraction of reads explained by"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier))
+                    grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@VCFTOOLS_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            @CREATE_REPEAT_DIR_2@
+            #if str($repeat2.type.type) == "relatedness2"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.relatedness2')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "tstv_by_count"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.count')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "tstv_by_qual"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.qual')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type) == "tstv_summary"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.summary')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #end if
+        #end for
+    ]]></token>
+    
+    <token name="@QUALIMAP_INPUT@"><![CDATA[
+        #for $file in $repeat.software_cond.input
+            #if re.search("genome_results", str($file.element_identifier))
+                sample="\$(grep 'bam file = ' $file | sed 's/bam file = //g' | sed 's: ::g')" &&
+                dir_name="$software_dir/\${sample}" &&
+                mkdir -p \${dir_name} &&
+                filepath_1="\${dir_name}/genome_results.txt" &&
+                ln -sf '$file' \${filepath_1} &&
+            #elif re.search("coverage_histogram", str($file.element_identifier))
+                nested_dir_name="\${dir_name}/raw_data_qualimapReport/" &&
+                mkdir -p \${nested_dir_name} &&
+                filepath_2="\${nested_dir_name}/coverage_histogram.txt" &&
+                ln -sf '$file' \${filepath_2} &&
+            #elif re.search("gc-content_distribution", str($file.element_identifier))
+                nested_dir_name="\${dir_name}/raw_data_qualimapReport/" &&
+                mkdir -p \${nested_dir_name} &&
+                filepath_3="\${nested_dir_name}/mapped_reads_gc-content_distribution.txt" &&
+                ln -sf '$file' \${filepath_3} &&
+            #else
+                #pass
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@SALMON_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            @CREATE_REPEAT_DIR_2@
+            #if str($repeat2.type.type) == "meta"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_dir = os.path.join($repeat_dir, 'file_' + str($k))
+                    #set file_path = os.path.join($file_dir, 'meta_info.json')
+                    mkdir '$file_dir' &&
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type.type) == "fld"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_dir = os.path.join($repeat_dir, 'file_' + str($k))
+                    #set file_path = os.path.join($file_dir,'flenDist.txt')
+                    mkdir '$file_dir' &&
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@SAMTOOLS_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            @CREATE_REPEAT_DIR_2@
+            #if str($repeat2.type.type) == "stats"
+                #set $pattern = "This file was produced by samtools stats"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "flagstat"
+                #set $pattern = "in total (QC-passed reads + QC-failed reads)"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "idxstats"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_idxstat')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type.type) == "rmdup"
+                #set $pattern = "[bam_rmdup"
+                @LN_3_FILES@
+            #end if
+        #end for
+    ]]></token>
+
+    <token name="@STAR_INPUT@"><![CDATA[
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            @CREATE_REPEAT_DIR_2@
+            #if str($repeat2.type.type) == "log"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_Log.final.out')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #elif str($repeat2.type.type) == "genecounts"
+                #for $file in $repeat2.type.input
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_ReadsPerGene.out.tab')
+                    ln -s '$file' '$file_path' &&
+                #end for
+            #end if
+        #end for
+    ]]></token>
+
+    <xml name="element_assert" token_name="" token_lines="" token_columns="" token_text="">
+        <element name="@NAME@">
+            <assert_contents>
+                <has_n_columns n="@COLUMNS@"/>
+                <has_n_lines n="@LINES@"/>
+                <has_text text="@TEXT@"/>
+                <yield/>
+            </assert_contents>
+        </element>
+    </xml>
+
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1101/gr.244293.118</citation>
+        </citations>
+    </xml>
+</macros>