Mercurial > repos > devteam > samtools_stats
view samtools_stats.xml @ 12:8fecc86e574a draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/samtools/samtools_stats commit 9c5a35ce695c3d134e41d8695487edd5f71ea33c
author | iuc |
---|---|
date | Sun, 08 Sep 2024 03:23:56 +0000 |
parents | a95f78faca04 |
children |
line wrap: on
line source
<tool id="samtools_stats" name="Samtools stats" version="2.0.5" profile="@PROFILE@"> <description>generate statistics for BAM dataset</description> <macros> <import>macros.xml</import> </macros> <expand macro="requirements"/> <expand macro="stdio"/> <expand macro="version_command"/> <command><![CDATA[ @ADDTHREADS@ @PREPARE_IDX@ @PREPARE_FASTA_IDX@ samtools stats #if $coverage_cond.coverage_select == 'yes': --coverage ${coverage_cond.coverage_min},${coverage_cond.coverage_max},${coverage_cond.coverage_step} #end if ${remove_dups} #if str( $filter_by_flags.filter_flags ) == "filter": #set $filter = $filter_by_flags.require_flags @FLAGS@ --required-flag $flags #set $filter = $filter_by_flags.exclude_flags @FLAGS@ --filtering-flag $flags #end if #if str($gc_depth): --GC-depth ${gc_depth} #end if #if str($insert_size): --insert-size ${insert_size} #end if ## #if $read_group ## -I '$read_group' ## #end if #if str($read_length): --read-length ${read_length} #end if #if str($most_inserts): --most-inserts ${most_inserts} #end if #if str($trim_quality): --trim-quality ${trim_quality} #end if #if $use_ref: --ref-seq "\$reffa" #end if ## currently not implemented in Galaxy ## generates STR_VALUE.bamstat where STR is given by -P and VALUE is a value of the TAG given by -S ## needs some discover data sets action... ## -P, --split-prefix STR ## -S, --split TAG $sparse @REGIONS_FILE@ $remove_overlaps #if str($cov_threshold): -g $cov_threshold #end if -@ \$addthreads infile @REGIONS_MANUAL@ > '$output' #if $split_output_cond.split_output_selector == "yes": #set outputs_to_split = str($split_output_cond.generate_tables).split(',') && mkdir split #for s in str($split_output_cond.generate_tables).split(','): && name=`cat '$output' | grep '\^$s' | cut -d'.' -f 1 | sed 's/^# //'` && awk '/\^/{out=0} /\^$s/{out=1} {if(out==1){print $0}}' '$output' | sed 's/Use `grep .*` to extract this part.//' | sed 's/$s\t//' > "split/\$name.tab" #end for #end if ]]></command> <inputs> <param name="input" type="data" format="sam,bam,cram" label="BAM file" /> <conditional name="coverage_cond"> <param name="coverage_select" type="select" label="Set coverage distribution"> <option value="no" selected="True">No</option> <option value="yes">Yes</option> </param> <when value="no"/> <when value="yes"> <param name="coverage_min" type="integer" value="1" label="Minimum coverage" help="Minimum coverage" /> <param name="coverage_max" type="integer" value="1000" label="Maximum coverage" help="Maximum coverage" /> <param name="coverage_step" type="integer" value="1" label="Coverage step" help="Step value for coverage" /> </when> </conditional> <param argument="--remove-dups" type="boolean" truevalue="--remove-dups" falsevalue="" checked="False" label="Exclude reads marked as duplicates" /> <conditional name="split_output_cond"> <param name="split_output_selector" type="select" label="Output" help="Select between one single output or separate outputs for each statistics"> <option value="no" selected="True">One single summary file</option> <option value="yes">Separate datasets for each statistic</option> </param> <when value="no" /> <when value="yes"> <param name="generate_tables" type="select" display="checkboxes" multiple="True" label="Desired output files"> <option value="SN">Summary numbers</option> <option value="FFQ">First Fragment Qualities</option> <option value="LFQ">Last Fragment Qualities</option> <option value="MPC">Mismatches per cycle</option> <option value="GCF">GC Content of first fragments</option> <option value="GCL">GC Content of last fragments</option> <option value="GCC">ACGT content per cycle</option> <option value="FBC">ACGT content per cycle for first fragments</option> <option value="LBC">ACGT content per cycle for last fragments</option> <option value="IS">Insert sizes</option> <option value="RL">Read lengths</option> <option value="FRL">Read lengths for first fragments</option> <option value="LRL">Read lengths for last fragments</option> <option value="ID">Indel distribution</option> <option value="IC">Indels per cycle</option> <option value="COV">Coverage distribution</option> <option value="GCD">GC depth</option> </param> </when> </conditional> <conditional name="filter_by_flags"> <param name="filter_flags" type="select" label="Filter by SAM flags" help="More info on the flags: https://samtools.github.io/hts-specs/SAMv1.pdf"> <option value="nofilter" selected="True">Do not filter</option> <option value="filter">Filter by flags to exclude or require</option> </param> <when value="filter"> <param name="require_flags" argument="-f" type="select" display="checkboxes" multiple="True" label="Require"> <expand macro="flag_options" /> </param> <param name="exclude_flags" argument="-F" type="select" display="checkboxes" multiple="True" label="Exclude"> <expand macro="flag_options" /> </param> </when> <when value="nofilter" /> </conditional> <!-- TODO I would like to set the default values of float and int parameters as on the samtools stats help page, but then the tests don't work. Hence I leave the optional and give the defaults in the help --> <param name="gc_depth" argument="--GC-depth" type="float" optional="True" label="Size of GC-depth bins" help="Decreasing bin size increases memory requirement. default=2e4" /> <param argument="--insert-size" type="integer" optional="True" label="Maximum insert size" help="default=8000" /> <!-- TOOD https://github.com/samtools/samtools/issues/1489 --> <param name="read_group" argument="--id" type="select" optional="true" label="Limit to a specific read group name" > <options> <filter type="data_meta" ref="input" key="read_groups" /> </options> </param> <param argument="--read-length" type="integer" optional="true" label="Minimum read length to generate statistics for" help="No cutoff if left empty" /> <param argument="--most-inserts" type="float" optional="true" label="Report only the main part of inserts" help="default=0.99" /> <param argument="--trim-quality" type="integer" optional="true" label="BWA trim parameter" help="default=0" /> <expand macro="optional_reference" argument="--ref-seq" help="Required for GC-depth and mismatches-per-cycle calculation"/> <!-- unfortunately -t takes tabular and not bed like view (otherwise a macro might have simplified this) --> <expand macro="regions_macro"/> <param name="sparse" argument="-x/--sparse" type="boolean" truevalue="-x" falsevalue="" checked="False" label="Suppress absence of insertions" help="Suppress outputting IS rows where there are no insertions."/> <param name="remove_overlaps" argument="-p/--remove-overlaps" type="boolean" truevalue="-p" falsevalue="" checked="False" label="Remove overlaps of paired-end reads from coverage and base count computations" /> <param name="cov_threshold" argument="-g/--cov-threshold" optional="true" type="integer" label="Only bases with coverage above this value will be included in the target percentage computation" /> </inputs> <outputs> <data name="output" format="tabular"> <filter>split_output_cond['split_output_selector'] == 'no'</filter> </data> <collection name="output_collection" type="list" label="${tool.name} on ${on_string}: separate statistics"> <discover_datasets directory="split" pattern="(?P<designation>.+)\.tab" format="tabular" visible="false"/> <filter>split_output_cond['split_output_selector'] == 'yes'</filter> </collection> </outputs> <tests> <!-- https://github.com/samtools/samtools/blob/9ce8c64493f7ea3fa69bc5c1ac980b1a8e3dcf1f/test/test.pl#L2402 --> <test expect_num_outputs="1"> <param name="input" value="1_map_cigar.sam" ftype="sam" /> <conditional name="addref_cond"> <param name="addref_select" value="history" /> <param name="ref" value="test.fa" ftype="fasta" /> </conditional> <output name="output" file="1.stats.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/1.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/1_map_cigar.sam | tail -n+4", exp_fix=>$efix);--> <test expect_num_outputs="1"> <param name="input" value="2_equal_cigar_full_seq.sam" ftype="sam" /> <conditional name="addref_cond"> <param name="addref_select" value="history" /> <param name="ref" value="test.fa" ftype="fasta" /> </conditional> <output name="output" file="2.stats.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/2.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/2_equal_cigar_full_seq.sam | tail -n+4", exp_fix=>$efix);--> <!-- test_cmd($opts,out=>'stat/3.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/3_map_cigar_equal_seq.sam | tail -n+4", exp_fix=>$efix);--> <!-- test_cmd($opts,out=>'stat/4.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/4_X_cigar_full_seq.sam | tail -n+4", exp_fix=>$efix);--> <!-- test_cmd($opts,out=>'stat/5.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/5_insert_cigar.sam | tail -n+4", exp_fix=>$efix); --> <test expect_num_outputs="1"> <param name="input" value="5_insert_cigar.sam" ftype="sam" /> <param name="insert_size" value="0" /> <conditional name="addref_cond"> <param name="addref_select" value="history" /> <param name="ref" value="test.fa" ftype="fasta" /> </conditional> <output name="output" file="6.stats.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/6.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa -i 0 $$opts{path}/stat/5_insert_cigar.sam | tail -n+4", exp_fix=>$efix); --> <!-- test_cmd($opts,out=>'stat/7.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/7_supp.sam | tail -n+4", exp_fix=>$efix); --> <!-- test_cmd($opts,out=>'stat/8.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/8_secondary.sam | tail -n+4", exp_fix=>$efix);--> <!-- test_cmd($opts,out=>'stat/9.stats.expected',cmd=>"$$opts{bin}/samtools stats -S RG -r $$opts{path}/stat/test.fa $$opts{path}/stat/1_map_cigar.sam | tail -n+4", exp_fix=>$efix,out_map=>{"stat/1_map_cigar.sam_s1_a_1.bamstat"=>"stat/1_map_cigar.sam_s1_a_1.expected.bamstat"},hskip=>3);--> <!-- test_cmd($opts,out=>'stat/10.stats.expected',cmd=>"$$opts{bin}/samtools stats -S RG -r $$opts{path}/stat/test.fa $$opts{path}/stat/10_map_cigar.sam | tail -n+4", exp_fix=>$efix,out_map=>{"stat/10_map_cigar.sam_s1_a_1.bamstat"=>"stat/10_map_cigar.sam_s1_a_1.expected.bamstat", "stat/10_map_cigar.sam_s1_b_1.bamstat"=>"stat/10_map_cigar.sam_s1_b_1.expected.bamstat"},hskip=>3);--> <test expect_num_outputs="1"> <param name="input" value="11_target.sam" ftype="sam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="tab"/> <param name="targetregions" value="11.stats.targets" ftype="tabular" /> </conditional> <output name="output" file="11.stats.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/11.stats.expected',cmd=>"$$opts{bin}/samtools stats -t $$opts{path}/stat/11.stats.targets $$opts{path}/stat/11_target.sam | tail -n+4", exp_fix=>$efix); --> <test expect_num_outputs="1"> <param name="input" value="11_target.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="text"/> <param name="regions_repeat_0|region" value="ref1:10-24"/> <param name="regions_repeat_1|region" value="ref1:30-46"/> <param name="regions_repeat_2|region" value="ref1:39-56"/> </conditional> <output name="output" file="11.stats.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/11.stats.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/11_target.bam ref1:10-24 ref1:30-46 ref1:39-56 | tail -n+4", exp_fix=>$efix); --> <test expect_num_outputs="1"> <param name="input" value="11_target.sam" ftype="sam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="tab"/> <param name="targetregions" value="11.stats.targets" ftype="tabular" /> </conditional> <param name="cov_threshold" value="4" /> <output name="output" file="11.stats.g4.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/11.stats.g4.expected',cmd=>"$$opts{bin}/samtools stats -g 4 -t $$opts{path}/stat/11.stats.targets $$opts{path}/stat/11_target.sam | tail -n+4", exp_fix=>$efix);--> <test expect_num_outputs="1"> <param name="input" value="11_target.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="text"/> <param name="regions_repeat_0|region" value="ref1:10-24"/> <param name="regions_repeat_1|region" value="ref1:30-46"/> <param name="regions_repeat_2|region" value="ref1:39-56"/> </conditional> <param name="cov_threshold" value="4" /> <output name="output" file="11.stats.g4.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/11.stats.g4.expected',cmd=>"$$opts{bin}/samtools stats -g 4 $$opts{path}/stat/11_target.bam ref1:10-24 ref1:30-46 ref1:39-56 | tail -n+4", exp_fix=>$efix); --> <test expect_num_outputs="1"> <param name="input" value="12_overlaps.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="tab"/> <param name="targetregions" value="12_3reads.bed" ftype="tabular" /> </conditional> <output name="output" file="12.3reads.overlap.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/12.3reads.overlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -t $$opts{path}/stat/12_3reads.bed | tail -n+4", exp_fix=>$efix);--> <test expect_num_outputs="1"> <param name="input" value="12_overlaps.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="tab"/> <param name="targetregions" value="12_3reads.bed" ftype="tabular" /> </conditional> <param name="remove_overlaps" value="-p"/> <output name="output" file="12.3reads.nooverlap.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/12.3reads.nooverlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -p -t $$opts{path}/stat/12_3reads.bed | tail -n+4", exp_fix=>$efix);--> <test expect_num_outputs="1"> <param name="input" value="12_overlaps.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="tab"/> <param name="targetregions" value="12_2reads.bed" ftype="tabular" /> </conditional> <output name="output" file="12.2reads.overlap.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/12.2reads.overlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -t $$opts{path}/stat/12_2reads.bed | tail -n+4", exp_fix=>$efix);--> <test expect_num_outputs="1"> <param name="input" value="12_overlaps.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <conditional name="cond_region"> <param name="select_region" value="tab"/> <param name="targetregions" value="12_2reads.bed" ftype="tabular" /> </conditional> <param name="remove_overlaps" value="-p"/> <output name="output" file="12.2reads.nooverlap.expected" ftype="tabular" lines_diff="4" /> </test> <!-- test_cmd($opts,out=>'stat/12.2reads.nooverlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -p -t $$opts{path}/stat/12_2reads.bed | tail -n+4", exp_fix=>$efix);--> <test expect_num_outputs="1"> <param name="input" value="samtools_stats_input.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="history" /> <param name="ref" value="samtools_stats_ref.fa" ftype="fasta" /> </conditional> <output name="output" file="samtools_stats_out1.tab" ftype="tabular" lines_diff="4" /> </test> <test expect_num_outputs="1"> <param name="input" value="samtools_stats_input.bam" ftype="bam" /> <conditional name="addref_cond"> <param name="addref_select" value="history" /> <param name="ref" value="samtools_stats_ref.fa" ftype="fasta" /> </conditional> <conditional name="split_output_cond"> <param name="split_output_selector" value="yes" /> <param name="generate_tables" value="SN,MPC,GCC" /> </conditional> <output_collection name="output_collection" type="list"> <element name="ACGT content per cycle" ftype="tabular" file="samtools_stats_out1__gcc.tab"/> <element name="Mismatches per cycle and quality" ftype="tabular" file="samtools_stats_out1__mpc.tab" /> <element name="Summary Numbers" ftype="tabular" file="samtools_stats_out1__sn.tab" /> </output_collection> </test> <!-- test filtering by read group --> <!-- <test> <param name="input" value="11_target.sam" ftype="sam" /> <conditional name="addref_cond"> <param name="addref_select" value="no" /> </conditional> <param name="read_group" value="grp1" /> <output name="output" file="11.stats.read_groups.expected" ftype="tabular" lines_diff="2" /> <assert_command> <has_text text="-I 'grp1'"/> </assert_command> </test> --> </tests> <help><![CDATA[ **What it does** This tool runs the ``samtools stats`` command. The results of samtools stats can be visualized with MultiQC (for this the default of a single output file needs to be selected). ]]></help> <expand macro="citations"/> </tool>