diff circexplorer2.xml @ 0:465d6578b4d0 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circexplorer2 commit fe03991cd7c43f5266314d1fb9e4108f1ab102e8
author iuc
date Fri, 26 Aug 2022 22:43:38 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/circexplorer2.xml	Fri Aug 26 22:43:38 2022 +0000
@@ -0,0 +1,408 @@
+<tool id="circexplorer2" name="CIRCexplorer2" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
+    <description>circular RNA analysis</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements" />
+    <expand macro='xrefs'/>
+    <command detect_errors="exit_code"><![CDATA[
+        #if $mode.selector == 'align'
+            mkdir -p reads &&
+            #set file_paths = []
+            #for $i,$input_file in enumerate($mode.fastq)
+                #set $fname = 'file' + str($i) + "." + $input_file.ext
+                #set $file_path = 'reads/' + $fname
+                ln -s '$input_file' '$file_path' &&
+                $file_paths.append($file_path)
+            #end for
+            CIRCexplorer2 align
+            @threads@
+            --gtf '$mode.gtf'
+            -g '$mode.genome'
+            --fastq #echo ','.join($file_paths)#
+            $mode.bw
+            $mode.scale
+            $mode.skip_tophat
+            $mode.skip_tophat_fusion
+            && tar -zcvf alignment.tgz './alignment'
+        #else if $mode.selector == 'parse'
+            CIRCexplorer2 parse
+            -t $mode.aligner.selector
+            $mode.aligner.fusion_file
+            #if $mode.aligner.selector == 'TopHat-Fusion'
+                $mode.aligner.pe
+            #end if
+            $mode.aligner.f
+        #else if  $mode.selector == 'annotate'
+            ln -s $mode.genome reference_genome.fa &&
+            CIRCexplorer2 annotate
+            -r $mode.ref
+            -g reference_genome.fa
+            -b $mode.bed
+            $mode.no_fix
+            $mode.low_confidence
+        #else if $mode.selector == 'assemble'
+            tar -zxf $mode.tophat &&
+            CIRCexplorer2 assemble
+            @threads@
+            -r $mode.ref
+            -m ./alignment
+            $mode.remove_rRNA
+            && tar -zcvf assemble.tgz './assemble'
+        #else
+            ln -s '$mode.genome' reference_genome.fa &&
+            #if $mode.assemble_file.ext.endswith(".gz")
+                tar -zxf $mode.assemble_file &&
+            #else
+                tar -xf $mode.assemble_file &&
+            #end if
+            #if $mode.as_option.selector == 'enabled'
+                tar -zxf $mode.as_option.tophat &&
+            #end if
+            CIRCexplorer2 denovo
+            -d ./assemble
+            -r $mode.ref
+            -b $mode.bed
+            -g reference_genome.fa
+            #if $mode.abs
+                --abs 'abs'
+            #end if
+            #if $mode.as_option.selector == 'enabled'
+                --as 'as'
+                $mode.as_option.type_mapping './alignment'
+            #end if
+            $mode.no_fix
+            $mode.rpkm
+        #end if
+    ]]></command>
+    <inputs>
+        <conditional name="mode">
+            <param name="selector" type="select" 
+                label="Tool module" help="CIRCexplorer2 contains 5 modules. Each module 
+                    functions as an independent component owning its distinctive duty. 
+                    Meanwhile, they inteact with each other, and different circular RNA 
+                    analysis pipelines are derived from different combinations of several 
+                    modules.">
+                <option value="align">Align: Map circular RNA junction reads with TopHat2/TopHat-Fusion</option>
+                <option value="parse">Parse: Parse fusion junction information from other aligners</option>
+                <option value="annotate">Annotate: Annotate circular RNA junction reads with gene annotations</option>
+                <option value="assemble">Assemble: Assemble transcriptome for circular RNAs</option>
+                <option value="denovo">De novo: Fetch de novo circular RNA isoforms</option>
+            </param>
+            <when value="align">
+                <param argument="--gtf" type="data" format="gtf" label="Annotation GTF file" />
+                <expand macro="genome_file"/>
+                <param argument="--fastq" type="data" format="fastq,fastqsanger,fastq.gz,fastqsanger.gz" multiple="true" label="RNA-seq FASTQ file(s)" 
+                    help="Only single-read RNA-seq is supported. It is recommended to convert paired-end RNA-seq to single-read RNA-seq before alignment"/>
+                <param argument="--bw" type="boolean" truevalue="--bw" falsevalue="" checked="false" 
+                    label="Create BigWig file" help=" It will not consider strand information of read alignment"/>
+                <param argument="--scale" type="boolean" truevalue="--scale" falsevalue="" checked="false" 
+                    label="Scale BigWig to HPB" help="Expression levels will be scaled to hits per billion-mapped-bases (HPB)" />
+                <param argument="--skip-tophat" type="boolean" truevalue="--skip-tophat" falsevalue="" checked="false" 
+                    label="Skip TopHat mapping" help="CIRexplorer2 aligns reads onto genome and transcriptome using TopHat2 to 
+                        reduce false positive reads aligned in the TopHat-Fusion alignment step" />
+                <param argument="--skip-tophat-fusion" type="boolean" truevalue="--skip-tophat-fusion" falsevalue="" checked="false" 
+                    label="Skip TopHat fusion" help="It is useful for poly(A)+ RNA-seq" />
+            </when>
+            <when value="parse">
+                <conditional name="aligner">
+                    <param argument="-t" name="selector" type="select" label="Aligner" 
+                        help="CIRCexplorer2 parse could accept results derived from TopHat-Fusion, 
+                            STAR, MapSplice, BWA and segemehl.">
+                        <option value="TopHat-Fusion">TopHat-Fusion</option>
+                        <option value="STAR">STAR</option>
+                        <option value="MapSplice">MapSplice</option>
+                        <option value="BWA">BWA</option>
+                        <option value="segemehl">segemehl</option>
+                    </param>
+                    <when value="TopHat-Fusion"> 
+                        <expand macro="parse_fusion" format="bam" label="TopHat-Fusion file" 
+                            help="The required input file is accepted_hits.bam"/>
+                        <expand macro="parse_statistics"/>
+                        <param argument="--pe" type="boolean" truevalue="--pe" falsevalue="" checked="false" label="Paired-end aligner file" 
+                            help="Parse paired-end alignment file. If this is set, then -f is set automatically." />
+                    </when>
+                    <when value="STAR">
+                        <expand macro="parse_fusion" format="interval,tabular" label="STAR fusion file" 
+                            help="The required input file is Chimeric.out.junction"/>
+                        <expand macro="parse_statistics"/>
+                    </when>
+                    <when value="MapSplice">
+                        <expand macro="parse_fusion" format="txt" label="MapSplice fusion file" 
+                            help="The required input file is fusions_raw.txt"/>
+                        <expand macro="parse_statistics"/>
+                    </when>
+                    <when value="BWA">
+                        <expand macro="parse_fusion" format="sam" label="BWA fusion file" 
+                            help="The required input file is the output sam file"/>
+                        <expand macro="parse_statistics"/>
+                    </when>
+                    <when value="segemehl">
+                        <expand macro="parse_fusion" format="bed" label="segemehl fusion file" 
+                            help="The required input file is splicesites.bed"/>
+                        <expand macro="parse_statistics"/>
+                    </when>
+                </conditional>
+            </when>
+            <when value="annotate">
+                <expand macro="annotation_file"/>
+                <expand macro="genome_file"/>
+                <expand macro="junction_file"/>
+                <param argument="--no-fix" type="boolean" truevalue="--no-fix" falsevalue="" checked="false" label="No fix mode" 
+                    help="When enabled, realignment step of fusion junction reads will be skipped. It is useful for species with 
+                        poor gene annotations, but the accuracy of circular RNA prediction would decrease." />
+                <param argument="--low-confidence" type="boolean" truevalue="--low-confidence" falsevalue="" checked="false" label="Low confidence" 
+                    help="By default, it extracts fusion junction reads exactly matching the boundaries of exons of the same isoform by default. 
+                        If you set the --low-confidence, it will also extract fusion junction reads matching the boundaries of exons of the different 
+                        isofoms of the same gene" />
+            </when>
+            <when value="assemble">
+                <expand macro="annotation_file"/>
+                <expand macro="tophat_file"/>
+                <param argument="--remove-rRNA" type="boolean" truevalue="--remove-rRNA" falsevalue="" checked="false" 
+                    label="Remove rRNA" help="Ignore rRNA during assembling (only for human hg19)" />
+            </when>
+            <when value="denovo">
+                <expand macro="annotation_file"/>
+                <expand macro="junction_file"/>
+                <expand macro="genome_file"/>
+                <param name="assemble_file" type="data" format="tgz,tar" label="Assemble file" 
+                    help="Generated by the module CIRCexplorer2 assemble" />
+                <param argument="--abs" type="boolean" truevalue="--abs" falsevalue="" checked="false" 
+                    label="Detect alternative back-splicing" help="When set, it will characterize the 
+                        alternative back-splicing of circular RNAs" />
+                <conditional name="as_option">
+                    <param name="selector" type="select" label="Characterize alternative splicing of cirRNAs" 
+                        help="If enabled,  it will characterize the alternative splicing of circular RNAs, including 
+                            cassette exons, retained introns, A5SS and A3SS">
+                            <option value="disabled">Disabled</option>
+                            <option value="enabled">Enabled</option>
+                    </param>
+                    <when value="disabled"/>
+                    <when value="enabled">
+                        <expand macro="tophat_file"/>
+                        <param name="type_mapping" type="select" label="Type of mapping" 
+                            help="In this mode, you should also offer the path of TopHat mapping directory for 
+                                p(A)-/p(A)+ RNA-seq via -m/-n option">
+                            <option value="-m">p(A)-</option>
+                            <option value="-n">p(A)+ RNA-seq</option>
+                        </param>
+                    </when>
+                </conditional>
+                <param argument="--no-fix" type="boolean" truevalue="--no-fix" falsevalue="" checked="false" label="No-fix mode" 
+                    help="If enabled,  realignment step of fusion junction reads will be skipped. It is useful for species with 
+                        poor gene annotations, but the accuracy of circular RNA prediction would decrease." />
+                <param argument="--rpkm" type="boolean" truevalue="--rpkm" falsevalue="" checked="false" label="Calculate RPKM for cassete exons" 
+                    help="If enabled, RPKM of cassette exons would be calculated" />
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="alignment" format="tgz" from_work_dir="alignment.tgz" label="${tool.name} on ${on_string}: alignment file   ">
+            <filter>mode['selector'] == 'align'</filter>
+        </data>
+        <data name="fusion_junction_bw" format="bigwig" from_work_dir="./alignment/tophat/accepted_hits.bw" label="${tool.name} on ${on_string}: BigWig">
+            <filter>mode['selector'] == 'align'</filter>
+            <filter>mode['bw']</filter>
+        </data>
+        <data name="parse" format="bed" from_work_dir="back_spliced_junction.bed" label="${tool.name} on ${on_string}: back spliced junction (BED)">
+            <filter>mode['selector'] == 'parse'</filter>
+        </data>
+        <data name="annotate" format="tabular" from_work_dir="circularRNA_known.txt" label="${tool.name} on ${on_string}: circRNA known">
+            <filter>mode['selector'] == 'annotate'</filter>
+        </data>
+        <data name="annotate_low" format="tabular" from_work_dir="low_conf_circularRNA_known.txt" label="${tool.name} on ${on_string}: Low confidence circRNA">
+            <filter>mode['selector'] == 'annotate'</filter>
+            <filter>mode['low_confidence']</filter>
+        </data>
+        <data name="assemble" format="tgz" from_work_dir="assemble.tgz" label="${tool.name} on ${on_string}: assemble file">
+            <filter>mode['selector'] == 'assemble'</filter>
+        </data>
+        <data name="denovo_combined" format="tabular" from_work_dir="./denovo/combined_ref.txt" label="${tool.name} on ${on_string}: combined ref">
+            <filter>mode['selector'] == 'denovo'</filter>
+        </data>
+        <data name="denovo_circularRNA" format="tabular" from_work_dir="./denovo/circularRNA_full.txt" label="${tool.name} on ${on_string}: circRNA full">
+            <filter>mode['selector'] == 'denovo'</filter>
+        </data>
+        <data name="denovo_annotated" format="tabular" from_work_dir="./denovo/annotated_circ.txt" label="${tool.name} on ${on_string}: annotated circRNA">
+            <filter>mode['selector'] == 'denovo'</filter>
+        </data>
+        <data name="denovo_novel" format="tabular" from_work_dir="./denovo/novel_circ.txt" label="${tool.name} on ${on_string}: novel circRNA">
+            <filter>mode['selector'] == 'denovo'</filter>
+        </data>
+        <data name="denovo_abs5" format="tabular" from_work_dir="./abs/a5bs.txt" label="${tool.name} on ${on_string}: a5bs">
+            <filter>mode['selector'] == 'denovo'</filter>
+            <filter>mode['abs']</filter>
+        </data>
+        <data name="denovo_abs3" format="tabular" from_work_dir="./abs/a3bs.txt" label="${tool.name} on ${on_string}: a3bs">
+            <filter>mode['selector'] == 'denovo'</filter>
+            <filter>mode['abs']</filter>
+        </data>
+        <data name="denovo_all_exon" format="tabular" from_work_dir="./as/all_exon_info.txt" label="${tool.name} on ${on_string}: all exon info">
+            <filter>mode['selector'] == 'denovo'</filter>
+            <filter>mode['as_option'] == 'enabled'</filter>
+        </data>
+        <data name="denovo_all_intron" format="tabular" from_work_dir="./as/all_intron_info.txt" label="${tool.name} on ${on_string}: all intron info">
+            <filter>mode['selector'] == 'denovo'</filter>
+            <filter>mode['as_option'] == 'enabled'</filter>
+        </data>
+        <data name="denovo_a5ss" format="tabular" from_work_dir="./as/all_A5SS_info.txt" label="${tool.name} on ${on_string}: all A5SS info">
+            <filter>mode['selector'] == 'denovo'</filter>
+            <filter>mode['as_option'] == 'enabled'</filter>
+        </data>
+        <data name="denovo_a3ss" format="tabular" from_work_dir="./as/all_A3SS_info.txt" label="${tool.name} on ${on_string}: all A3SS info">
+            <filter>mode['selector'] == 'denovo'</filter>
+            <filter>mode['as_option'] == 'enabled'</filter>
+        </data>
+    </outputs>
+    <tests>
+    <test expect_num_outputs="1">
+        <!--Test 01: Module align default options-->
+        <conditional name="mode">
+            <param name="selector" value="align"/>
+            <param name="gtf" value="annotation_01.gtf"/>
+            <param name="genome" value="reference_01.fa"/>
+            <param name="fastq" value="reads_01.fastq,reads_02.fastq,reads_03.fastq"/>
+            <param name="skip_tophat_fusion" value="true"/>
+        </conditional>
+        <output name="alignment">
+            <assert_contents>
+                <has_size value="3426053" delta="5000"/>
+            </assert_contents>
+        </output>
+    </test>
+    <test expect_num_outputs="2">
+        <!--Test 02: Module align compressed files-->
+        <conditional name="mode">
+            <param name="selector" value="align"/>
+            <param name="gtf" value="annotation_01.gtf"/>
+            <param name="genome" value="reference_01.fa"/>
+            <param name="fastq" value="reads_01.fastq.gz,reads_02.fastq.gz,reads_03.fastq.gz"/>
+            <param name="skip_tophat_fusion" value="true"/>
+            <param name="bw" value="true"/>
+            <param name="scale" value="true"/>
+        </conditional>
+        <output name="alignment">
+            <assert_contents>
+                <has_size value="3435977" delta="5000"/>
+            </assert_contents>
+        </output>
+        <output name="fusion_junction_bw" value="test_02.bigwig" ftype="bigwig"/>
+    </test>
+    <test expect_num_outputs="1">
+        <!--Test 03: Module parse-->
+        <conditional name="mode">
+            <param name="selector" value="parse"/>
+            <conditional name="aligner">
+                <param name="selector" value="MapSplice"/>
+                <param name="fusion_file" value="mapsplice_chimeric.junction"/>
+            </conditional>
+        </conditional>
+        <output name="parse" value="test_03.bed" ftype="bed"/>
+    </test>
+    <test expect_num_outputs="1">
+        <!--Test 04: Module parse STAR-->
+        <conditional name="mode">
+            <param name="selector" value="parse"/>
+            <conditional name="aligner">
+                <param name="selector" value="STAR"/>
+                <param name="fusion_file" value="STAR_chimeric.junction"/>
+                <param name="f" value="true"/>
+            </conditional>
+        </conditional>
+        <output name="parse" value="test_04.bed" ftype="bed"/>
+    </test>
+    <test expect_num_outputs="1">
+        <!--Test 05: Module annotate-->
+        <conditional name="mode">
+            <param name="selector" value="annotate"/>
+            <param name="ref" value="annotation_02.txt"/>
+            <param name="genome" value="reference_02.fa"/>
+            <param name="bed" value="test_04.bed"/>
+        </conditional>
+        <output name="annotate" value="test_05.tabular" ftype="tabular"/>
+    </test>
+    <test expect_num_outputs="2">
+        <!--Test 06: Module annotate-->
+        <conditional name="mode">
+            <param name="selector" value="annotate"/>
+            <param name="ref" value="annotation_02.txt"/>
+            <param name="genome" value="reference_02.fa"/>
+            <param name="bed" value="test_04.bed"/>
+            <param name="no_fix" value="true"/>
+            <param name="low_confidence" value="true"/>
+        </conditional>
+        <output name="annotate" value="test_06.tabular" ftype="tabular"/>
+    </test>
+    <test expect_num_outputs="4">
+        <!--Test 07: Module de novo-->
+        <conditional name="mode">
+            <param name="selector" value="denovo"/>
+            <param name="ref" value="annotation_02.txt"/>
+            <param name="bed" value="test_04.bed"/>
+            <param name="genome" value="reference_02.fa"/>
+            <param name="assemble_file" value="assemble.tgz"/>
+        </conditional>
+        <output name="denovo_combined" value="test_07_combined.txt" ftype="tabular"/>
+        <output name="denovo_circularRNA" value="test_07_full.txt" ftype="tabular"/>
+        <output name="denovo_annotated" value="test_07_annotated.txt" ftype="tabular"/>
+        <output name="denovo_novel" value="test_07_novel.txt" ftype="tabular"/>
+    </test>
+    <test expect_num_outputs="6">
+        <!--Test 08: Module de novo additional options-->
+        <conditional name="mode">
+            <param name="selector" value="denovo"/>
+            <param name="ref" value="annotation_02.txt"/>
+            <param name="bed" value="test_04.bed"/>
+            <param name="genome" value="reference_02.fa"/>
+            <param name="assemble_file" value="assemble.tgz"/>
+            <param name="abs" value="true"/>
+            <param name="no_fix" value="true"/>
+            <param name="rpkm" value="true"/>
+        </conditional>
+        <output name="denovo_combined" value="test_08_combined.txt" ftype="tabular"/>
+        <output name="denovo_circularRNA" value="test_08_full.txt" ftype="tabular"/>
+        <output name="denovo_annotated" value="test_08_annotated.txt" ftype="tabular"/>
+        <output name="denovo_novel" value="test_08_novel.txt" ftype="tabular"/>
+        <output name="denovo_abs5" value="test_08_a5bs.txt" ftype="tabular"/>
+        <output name="denovo_abs3" value="test_08_a3bs.txt" ftype="tabular"/>
+    </test>
+    </tests>
+    <help><![CDATA[
+
+.. class:: infomark
+
+**Purpose**
+
+CIRCexplorer2 is a comprehensive and integrative circular RNA analysis toolset. It is the successor 
+of CIRCexplorer with plenty of new features to facilitate circular RNA identification and characterization.
+
+-------------------
+
+ .. class:: infomark
+
+**Features**
+
+    * Precisely annotate circular RNAs (Annotate)
+    * Support multiple circular RNA aligners (TopHat2/TopHat-Fusion, STAR, MapSplice, BWA and segemehl) (Align and Parse)
+    * De novo assemble novel circular RNA transcripts (Assemble)
+    * Characterize various of alternative (back-)splicing events of circular RNAs (Denovo)
+    * Fast identify circuar RNAs with STAR or BWA (Parse)
+    * Support both single-read and paired-end sequencing.
+
+-------------------
+
+.. class:: infomark
+
+**Modules** 
+
+CIRCexplorer2 contains 5 modules. Each module functions as an independent component owning its distinctive duty. 
+Meanwhile, they inteact with each other, and different circular RNA analysis pipelines are derived from different 
+combinations of several modules. Understanding the detailed mechanism of each module could facilitate your circular 
+RNA research.
+
+CIRCexplorer2 documentation is available from `here <http://circexplorer2.readthedocs.org/>`_, including installation instructions and tutorial.
+
+    ]]></help>
+    <expand macro="citations" />
+</tool>