Mercurial > repos > yhoogstrate > crossmap
diff crossmap.xml @ 0:bfcdabc062ca draft
planemo upload for repository https://github.com/ErasmusMC-Bioinformatics/crossmap_galaxy_wrapper commit d4e9fe61901a612c78d9f26f172537b27fd2ddbb
author | yhoogstrate |
---|---|
date | Wed, 26 Aug 2015 11:04:47 -0400 |
parents | |
children | e6efe37b456a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crossmap.xml Wed Aug 26 11:04:47 2015 -0400 @@ -0,0 +1,455 @@ +<tool id="crossmap" name="CrossMap" version="0.2.a"> + <description>Convert genome coordinates or annotation files between genome assemblies</description> + + <requirements> + <requirement type="package" version="312">ucsc_tools</requirement> + <requirement type="package" version="0.2">crossmap</requirement> + </requirements> + + <stdio> + <regex match="Usage: CrossMap.py" source="stdout" level="fatal"/> + <regex match=".*" source="both" level="log"/> + </stdio> + + <version_command>CrossMap.py 2>&1 | head -n 1 | grep -E --only-matching 'CrossMap.*'</version_command> + + <command> + CrossMap.py + ${multiple.input_format.replace("sam","bam")} + + #if $multiple.input_format == "vcf" and $multiple.seq_source.index_source == "cached" + <!-- This is the 2nd dbkey, and the corresponding value has to be looked up --> + "${filter(lambda x: str( x[1] ) == str($multiple.seq_source.input_chain ), $__app__.tool_data_tables['liftOver'].get_fields())[0][2] }" + #else + "$multiple.seq_source.input_chain" + #end if + + #if $multiple.input_format in ["bam", "sam"] + -m $multiple.insert_size + -s $multiple.insert_size_stdev + -t $multiple.insert_size_fold + #end if + + "$multiple.seq_source.input" + + #if $multiple.input_format == "vcf" + "$multiple.seq_source.input_fasta" + #end if + + #if str($multiple.include_fails) == "True" + > + #end if + + "$output" + + #if $multiple.input_format in ["bam", "sam"] + ; mv "${output}.${multiple.input_format}" "$output" + ; mv "${output}.unmap.${multiple.input_format}" "$output_unmapped" + #else if $multiple.input_format in ["vcf"] + ; mv "${output}" "$output" + ; mv "${output}.unmap" "$output_unmapped" + #else if $multiple.input_format in ["wig", "bigwig"] + ; mv "${output}.bw" "$output" + ; mv "${output}.sorted.bgr" "$output2" + #end if + </command> + + <inputs> + <conditional name="multiple"> + <param name="input_format" type="select" label="Convert a file of the following format"> + <option value="bam">BAM</option> + <option value="sam">SAM</option> + <option value="bed">BED or BED-like</option> + <option value="bigwig">BigWig</option> + <option value="gff">GFF or GTF</option> + <option value="vcf">VCF</option> + <option value="wig">Wiggle or bedGraph</option> + </param> + <when value="bam"> + <conditional name="seq_source"> + <param name="index_source" type="select" label="Source for LiftOver Data (chain file)"> + <option value="cached">Local data (in galaxy)</option> + <option value="history">From History</option> + </param> + <when value="cached"> + <param type="data" format="bam" name="input" label="BAM/SAM file"> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="liftOver.loc" metadata_name="dbkey" metadata_column="0" message="LiftOver mapping (chain file) is not available for the specified build." /> + </param> + <param name="input_chain" type="select" label="Lift Over To"> + <options from_file="liftOver.loc"> + <column name="name" index="1"/> + <column name="value" index="2"/> + <column name="dbkey" index="0"/> + <filter type="data_meta" ref="input" key="dbkey" column="0" /> + </options> + </param> + </when> + <when value="history"> + <param type="data" format="bam,sam" name="input" label="BAM/SAM file" /> + <param type="data" format="csv" name="input_chain" label="LiftOver chain file" /> + </when> + </conditional> + + <param name="insert_size" type="float" value="200.0" label="Insert size (-m)" help="Average insert size of pair-end sequencing (bp) [default=200.0]" /> + <param name="insert_size_stdev" type="float" value="30.0" label="Insert size std. dev (-s)" help="Stanadard deviation of insert size. [default=30.0]" /> + <param name="insert_size_fold" type="float" value="3.0" label="Insert size std. dev foldchange (-t)" help="A mapped pair is considered as 'proper pair' if both ends mapped to different strand and the distance between them is less then '-t' * stdev from the mean. [default=3.0]" /> + + <param name="include_fails" type="hidden" tvalue="False" /> + </when> + <when value="sam"><!-- BAM and SAM are exactly the same conditions, but they need to be separate to get the proper output format --> + <conditional name="seq_source"> + <param name="index_source" type="select" label="Source for LiftOver Data (chain file)"> + <option value="cached">Local data (in galaxy)</option> + <option value="history">From History</option> + </param> + <when value="cached"> + <param type="data" format="sam" name="input" label="BAM/SAM file"> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="liftOver.loc" metadata_name="dbkey" metadata_column="0" message="LiftOver mapping (chain file) is not available for the specified build." /> + </param> + <param name="input_chain" type="select" label="Lift Over To"> + <options from_file="liftOver.loc"> + <column name="name" index="1"/> + <column name="value" index="2"/> + <column name="dbkey" index="0"/> + <filter type="data_meta" ref="input" key="dbkey" column="0" /> + </options> + </param> + </when> + <when value="history"> + <param type="data" format="bam,sam" name="input" label="BAM/SAM file" /> + <param type="data" format="csv" name="input_chain" label="LiftOver chain file" /> + </when> + </conditional> + + <param name="insert_size" type="float" value="200.0" label="Insert size (-m)" help="Average insert size of pair-end sequencing (bp) [default=200.0]" /> + <param name="insert_size_stdev" type="float" value="30.0" label="Insert size std. dev (-s)" help="Stanadard deviation of insert size. [default=30.0]" /> + <param name="insert_size_fold" type="float" value="3.0" label="Insert size std. dev foldchange (-t)" help="A mapped pair is considered as 'proper pair' if both ends mapped to different strand and the distance between them is less then '-t' * stdev from the mean. [default=3.0]" /> + + <param name="include_fails" type="hidden" tvalue="False" /> + </when> + <when value="bed"> + <conditional name="seq_source"> + <param name="index_source" type="select" label="Source for LiftOver Data (chain file)"> + <option value="cached">Local data (in galaxy)</option> + <option value="history">From History</option> + </param> + <when value="cached"> + <param format="bed" name="input" type="data" label="BED file" help="BED format file must have at least 3 columns (chrom, start, end) and no more than 12 columns."> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="liftOver.loc" metadata_name="dbkey" metadata_column="0" message="LiftOver mapping (chain file) is not available for the specified build." /> + </param> + <param name="input_chain" type="select" label="Lift Over To"> + <options from_file="liftOver.loc"> + <column name="name" index="1"/> + <column name="value" index="2"/> + <column name="dbkey" index="0"/> + <filter type="data_meta" ref="input" key="dbkey" column="0" /> + </options> + </param> + </when> + <when value="history"> + <param type="data" format="bed" name="input" label="BED file" help="BED format file must have at least 3 columns (chrom, start, end) and no more than 12 columns." /> + <param type="data" format="csv" name="input_chain" label="LiftOver chain file" /> + </when> + </conditional> + + <param name="include_fails" type="boolean" truevalue="True" checked="false" falsevalue="False" label="Include failed liftovers" help="If a coordinate can not be lift over, do you want to include it in the output (it is still being marked 'fail')" /> + </when> + <when value="bigwig"> + <conditional name="seq_source"> + <param name="index_source" type="select" label="Source for LiftOver Data (chain file)"> + <option value="cached">Local data (in galaxy)</option> + <option value="history">From History</option> + </param> + <when value="cached"> + <param format="bigwig" name="input" type="data" label="BigWig file"> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="liftOver.loc" metadata_name="dbkey" metadata_column="0" message="LiftOver mapping (chain file) is not available for the specified build." /> + </param> + <param name="input_chain" type="select" label="Lift Over To"> + <options from_file="liftOver.loc"> + <column name="name" index="1"/> + <column name="value" index="2"/> + <column name="dbkey" index="0"/> + <filter type="data_meta" ref="input" key="dbkey" column="0" /> + </options> + </param> + </when> + <when value="history"> + <param type="data" format="bigwig" name="input" label="BigWig file" /> + <param type="data" format="csv" name="input_chain" label="LiftOver chain file" /> + </when> + </conditional> + + <param name="include_fails" type="hidden" tvalue="False" /> + </when> + <when value="gff"> + <conditional name="seq_source"> + <param name="index_source" type="select" label="Source for LiftOver Data (chain file)"> + <option value="cached">Local data (in galaxy)</option> + <option value="history">From History</option> + </param> + <when value="cached"> + <param format="gtf,gff,gff3" name="input" type="data" label="GTF/GFF file"> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="liftOver.loc" metadata_name="dbkey" metadata_column="0" message="LiftOver mapping (chain file) is not available for the specified build." /> + </param> + <param name="input_chain" type="select" label="Lift Over To"> + <options from_file="liftOver.loc"> + <column name="name" index="1"/> + <column name="value" index="2"/> + <column name="dbkey" index="0"/> + <filter type="data_meta" ref="input" key="dbkey" column="0" /> + </options> + </param> + </when> + <when value="history"> + <param type="data" format="gtf,gff,gff3" name="input" label="GTF/GFF file" /> + <param type="data" format="csv" name="input_chain" label="LiftOver chain file" /> + </when> + </conditional> + + <param name="include_fails" type="boolean" truevalue="True" checked="false" falsevalue="False" label="Include failed liftovers" help="If a coordinate can not be lift over, do you want to include it in the output (it is still being marked 'fail')" /> + </when> + <when value="vcf"> + <conditional name="seq_source"> + <param name="index_source" type="select" label="Source for LiftOver Data"> + <option value="cached">Local data (in galaxy)</option> + <option value="history_chain">Chain file from History</option> + <option value="history_all">Chain & FASTA files from History</option> + </param> + + <when value="cached"> + <param type="data" format="vcf" name="input" label="VCF file"> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="liftOver.loc" metadata_name="dbkey" metadata_column="0" message="LiftOver mapping (chain file) is not available for the specified build." /> + </param> + + <!-- automatically fetch a FASTA file from the same DBKEY as the chain file --> + <param name="input_chain" type="select" label="Lift Over To (Chain file)"> + <options from_file="liftOver.loc"> + <column name="name" index="1" /> + <column name="value" index="1" /><!-- It is not possible to send the *.chain file as value, and obtain the 2nd dbkey as parameter via a filter --> + <column name="dbkey" index="0" /> + <filter type="data_meta" ref="input" key="dbkey" column="0" /> + </options> + </param> + + <param name="input_fasta" type="select" label="Lift Over To (FASTA file)" help="The FASTA file must be on the same build (dbkey) as the LiftOver chain file"> + <options from_file="all_fasta.loc"> + <column name="name" index="2"/> + <column name="value" index="3"/> + <column name="dbkey" index="1"/> + <filter type="param_value" ref="input_chain" column="1" /> + </options> + </param> + </when> + + <when value="history_chain"> + <param type="data" format="vcf" name="input" label="VCF file"> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="all_fasta.loc" metadata_name="dbkey" metadata_column="1" message="LiftOver mapping (FASTA file) is not available for the specified build." /> + </param> + <param type="data" format="csv" name="input_chain" multiple="false" label="LiftOver chain file" /> + <param name="input_fasta" type="select" label="Lift Over To (FASTA file)" help="The FASTA file must be on the same build (dbkey) as the LiftOver chain file"> + <options from_file="all_fasta.loc"> + <column name="name" index="2"/> + <column name="value" index="3"/> + <column name="dbkey" index="1"/> + </options> + </param> + </when> + + <when value="history_all"> + <param type="data" format="vcf" name="input" label="VCF file" /> + <param type="data" format="csv" name="input_chain" multiple="false" label="LiftOver chain file" /> + <param type="data" format="fasta" name="input_fasta" multiple="false" label="Full genome FASTA file" /> + </when> + </conditional> + + <param name="include_fails" type="hidden" tvalue="False" /> + </when> + <when value="wig"> + <conditional name="seq_source"> + <param name="index_source" type="select" label="Source for LiftOver Data (chain file)"> + <option value="cached">Local data (in galaxy)</option> + <option value="history">From History</option> + </param> + <when value="cached"> + <param format="wig" name="input" type="data" label="Wiggle file"> + <validator type="unspecified_build" /> + <validator type="dataset_metadata_in_file" filename="liftOver.loc" metadata_name="dbkey" metadata_column="0" message="LiftOver mapping (chain file) is not available for the specified build." /> + </param> + <param name="input_chain" type="select" label="Lift Over To"> + <options from_file="liftOver.loc"> + <column name="name" index="1"/> + <column name="value" index="2"/> + <column name="dbkey" index="0"/> + <filter type="data_meta" ref="input" key="dbkey" column="0" /> + </options> + </param> + </when> + <when value="history"> + <param format="wig" name="input" type="data" label="Wiggle file" /> + <param type="data" format="csv" name="input_chain" label="LiftOver chain file" /> + </when> + </conditional> + + <param name="include_fails" type="hidden" tvalue="False" /> + </when> + </conditional> + </inputs> + + <outputs> + <data format="text" name="output" label="${tool.name} on "> + <change_format> + <when input="multiple.input_format" value="bam" format="bam" /> + <when input="multiple.input_format" value="sam" format="sam" /> + <when input="multiple.input_format" value="bed" format="bed" /> + <when input="multiple.input_format" value="bigwig" format="bigwig" /> + <when input="multiple.input_format" value="gff" format="gff" /> + <when input="multiple.input_format" value="vcf" format="vcf" /> + <when input="imultiple.nput_format" value="wig" format="bigwig" /> + </change_format> + </data> + + <data format="text" name="output_unmapped" label="${tool.name} unmapped on "> + <filter>input_format in ["bam" , "vcf"]</filter> + <change_format> + <when input="multiple.input_format" value="bam" format="bam" /> + <when input="multiple.input_format" value="vcf" format="vcf" /> + </change_format> + </data> + <data format="text" name="output2" label="${tool.name} on "> + <filter>input_format in ["wig"]</filter> + <change_format> + <when input="multiple.input_format" value="wig" format="bedgraph" /> + </change_format> + </data> + </outputs> + + <tests> + <!-- BAM/SAM --> + <test> + <param name="input_format" value="sam"/> + <param name="index_source" value="history"/> + <param name="input" value="test_bam_01_input_a.sam" ftype="sam"/> + <param name="input_chain" value="aToB.over.chain" ftype="csv"/> + <param name="include_fails" value="False"/> + + <output name="output" file="test_bam_01_output_a.sam" compare="diff" lines_diff="4"/> + <output name="output_unmapped" file="test_bam_01_output_a.unmap.sam"/> + </test> + + <!-- BED --> + <test> + <param name="input_format" value="bed"/> + <param name="index_source" value="history"/> + <param name="input" value="test_bed_01_input_a.bed" ftype="bed"/> + <param name="input_chain" value="aToB.over.chain" ftype="csv"/> + <param name="include_fails" value="False"/> + + <output name="output" file="test_bed_01_output_a__only-matches.bed"/> + </test> + <test> + <param name="input_format" value="bed"/> + <param name="index_source" value="history"/> + <param name="input" value="test_bed_01_input_a.bed" ftype="bed"/> + <param name="input_chain" value="aToB.over.chain" ftype="txt"/> + <param name="include_fails" value="True"/> + + <output name="output" file="test_bed_01_output_a__all.bed"/> + </test> + <test> + <param name="input_format" value="bed"/> + <param name="index_source" value="history"/> + <param name="input" value="test_bed_02_input_a.bed" ftype="bed"/> + <param name="input_chain" value="aToB.over.chain" ftype="txt"/> + <param name="include_fails" value="False"/> + + <output name="output" file="test_bed_02_output_a__only-matches.bed"/> + </test> + <test> + <param name="input_format" value="bed"/> + <param name="index_source" value="history"/> + <param name="input" value="test_bed_02_input_a.bed" ftype="bed"/> + <param name="input_chain" value="aToB.over.chain" ftype="txt"/> + <param name="include_fails" value="True"/> + + <output name="output" file="test_bed_02_output_a__all.bed"/> + </test> + + <!-- BigWig --><!-- Malfuncioning in CrossMap 0.2, but patched via galaxy toolshed installer --> + <test> + <param name="input_format" value="bigwig"/> + <param name="index_source" value="history"/> + <param name="input" value="test_bigwig_01_input_a.bw" ftype="bigwig"/> + <param name="input_chain" value="aToB.over.chain" ftype="csv"/> + <param name="include_fails" value="False"/> + + <output name="output" file="test_bigwig_01_output_a.bw"/> + <output name="output2" file="test_bigwig_01_output_a.sorted.bgr"/> + </test> + <!-- GFF --> + <test> + <param name="input_format" value="gff"/> + <param name="index_source" value="history"/> + <param name="input" value="test_gff_01_input_a.gtf" ftype="gtf"/> + <param name="input_chain" value="aToB.over.chain" ftype="csv"/> + <param name="include_fails" value="False"/> + + <output name="output" file="test_gff_01_output_a__only-matches.gtf"/> + </test> + <test> + <param name="input_format" value="gff"/> + <param name="index_source" value="history"/> + <param name="input" value="test_gff_01_input_a.gtf" ftype="gtf"/> + <param name="input_chain" value="aToB.over.chain" ftype="csv"/> + <param name="include_fails" value="True"/> + + <output name="output" file="test_gff_01_output_a__all.gtf"/> + </test> + + <!-- VCF --> + <test> + <param name="input_format" value="vcf"/> + <param name="index_source" value="history_all"/> + <param name="input" value="test_vcf_01_input.vcf" ftype="vcf"/> + <param name="input_chain" value="test_vcf_01.over.chain" ftype="csv"/> + <param name="input_fasta" value="test_vcf_01.fasta" ftype="fasta"/> + <param name="include_fails" value="False"/> + + <output name="output" file="test_vcf_01_output.vcf" compare="diff" lines_diff="4"/> + <output name="output_unmapped" file="test_vcf_01_output.vcf.unmap"/> + </test> + </tests> + + <!-- WIG - Doesn't understand fixedStep --> + <test> + <param name="input_format" value="wig"/> + <param name="index_source" value="history"/> + <param name="input" value="test_wig_01_input_a.wig" ftype="wig"/> + <param name="input_chain" value="aToB.over.chain" ftype="csv"/> + <param name="include_fails" value="False"/> + + <output name="output" file="test_wig_01_output_a.bw"/> + <output name="output2" file="test_wig_01_output_a.sorted.bgr"/> + </test> + <help> +CrossMap is versatile tool to convert genome coordinates or annotation files between genome +assemblies. It supports mostly commonly used file types, including BAM, BED,BigWig, GFF, +GTF, SAM, Wiggle, and VCF formats. For large plain text file types, such as BED, GFF, GTF +and VCF, reading from remote servers and file compression are supported. + +CrossMap bed +------------ +BED format file must have at least 3 columns (chrom, start, end) and no more than 12 columns. +BED format: http://genome.ucsc.edu/FAQ/FAQformat.html#format1 + </help> + + <citations> + <citation type="doi">10.1093/bioinformatics/btt730</citation> + </citations> +</tool>