annotate cfsan_centriflaken.xml @ 94:ca861be31596

"planemo upload"
author kkonganti
date Tue, 19 Jul 2022 10:22:51 -0400
parents 295c2597a475
children ef0b422978fd
rev   line source
kkonganti@0 1 <tool id="cfsan_centriflaken" name="Centriflaken" version="0.2.0+galaxy0">
kkonganti@0 2 <description>An automated pipeline to generate a MAG of interest (E.coli or Salmonella) and perform serotyping.</description>
kkonganti@0 3 <requirements>
kkonganti@0 4 <requirement type="package" version="22.04">nextflow</requirement>
kkonganti@0 5 <requirement type="package">graphviz</requirement>
kkonganti@0 6 </requirements>
kkonganti@0 7 <version_command>nextflow -version</version_command>
kkonganti@0 8 <command detect_errors="exit_code"><![CDATA[
kkonganti@50 9 mkdir -p cpipes-input || exit 1;
kkonganti@58 10 pwd_path=\$(pwd);
kkonganti@86 11 #import re
kkonganti@58 12 #if (str($input_read_type_cond.input_read_type) == "single_long"):
kkonganti@75 13 #for _, $unpaired in enumerate($input_read_type_cond.input):
kkonganti@85 14 #set read1 = str($unpaired.name)
kkonganti@84 15 #if not str($unpaired.name).endswith(('.fastq', '.fastq.gz')):
kkonganti@85 16 #set read1 = str($unpaired.name) + str('.') + str($unpaired.ext)
kkonganti@75 17 #end if
kkonganti@83 18 ln -sf '$unpaired' './cpipes-input/$read1';
kkonganti@58 19 #end for
kkonganti@66 20 #elif (str($input_read_type_cond.input_read_type) == "paired"):
kkonganti@75 21 #for _, $pair in enumerate($input_read_type_cond.input_pair)
kkonganti@94 22 #set read_R1 = re.sub('\:forward', '_forward', str($pair.forward.name))
kkonganti@94 23 #set read_R2 = re.sub('\:reverse', '_reverse', str($pair.reverse.name))
kkonganti@85 24 #if not str($pair.forward.name).endswith(('.fastq', '.fastq.gz')):
kkonganti@86 25 #set read_R1 = $read_R1 + str('.') + str($pair.forward.ext)
kkonganti@85 26 #end if
kkonganti@85 27 #if not str($pair.reverse.name).endswith(('.fastq', '.fastq.gz')):
kkonganti@86 28 #set read_R2 = $read_R2 + str('.') + str($pair.reverse.ext)
kkonganti@85 29 #end if
kkonganti@75 30 ln -sf '$pair.forward' './cpipes-input/$read_R1';
kkonganti@75 31 ln -sf '$pair.reverse' './cpipes-input/$read_R2';
kkonganti@58 32 #end for
kkonganti@60 33 #end if
kkonganti@92 34 $__tool_directory__/0.3.0/cpipes
kkonganti@61 35 --pipeline $input_read_type_cond.pipeline_cond.pipeline
kkonganti@58 36 #if ($input_read_type_cond.pipeline_cond.pipeline == "centriflaken"):
kkonganti@4 37 --fq_single_end true
kkonganti@33 38 --flye_genome_size '${genome_size}'
kkonganti@58 39 #if ($input_read_type_cond.pipeline_cond.long_read_platform == "nanopore_corr"):
kkonganti@33 40 --flye_nano_corr true --flye_nano_raw false
kkonganti@58 41 #elif ($input_read_type_cond.pipeline_cond.long_read_platform == "nanopore_hq"):
kkonganti@33 42 --flye_nano_hq true --flye_nano_raw false
kkonganti@58 43 #elif ($input_read_type_cond.pipeline_cond.long_read_platform == "pacbio_raw"):
kkonganti@33 44 --flye_pacbio_raw true --flye_nano_raw false
kkonganti@58 45 #elif ($input_read_type_cond.pipeline_cond.long_read_platform == "pacbio_corr"):
kkonganti@33 46 --flye_pacbio_corr true --flye_nano_raw false
kkonganti@58 47 #elif ($input_read_type_cond.pipeline_cond.long_read_platform == "pacbio_hifi"):
kkonganti@33 48 --flye_pacbio_hifi true --flye_nano_raw false
kkonganti@33 49 #end if
kkonganti@58 50 #elif ($input_read_type_cond.pipeline_cond.pipeline == "centriflaken_hy"):
kkonganti@64 51 #if (str($input_read_type_cond.input_read_type) == "single_long"):
kkonganti@4 52 --fq_single_end true
kkonganti@64 53 #elif (str($input_read_type_cond.input_read_type) == "paired"):
kkonganti@64 54 --fq_single_end false --fq2_suffix '${input_read_type_cond.fq2_suffix}'
kkonganti@4 55 #end if
kkonganti@0 56 #end if
kkonganti@0 57 --input \${pwd_path}/cpipes-input
kkonganti@0 58 --output \${pwd_path}/cpipes-output
kkonganti@64 59 --fq_suffix '${input_read_type_cond.fq_suffix}'
kkonganti@41 60 #if ($fq_filter_by_len != ""):
kkonganti@39 61 --fq_filter_by_len $fq_filter_by_len
kkonganti@39 62 #end if
kkonganti@0 63 --fq_filename_delim '${fq_filename_delim}'
kkonganti@0 64 --fq_filename_delim_idx $fq_filename_delim_idx
kkonganti@0 65 --centrifuge_extract_bug '${centrifuge_extract_bug}'
kkonganti@47 66 -profile kondagac;
kkonganti@87 67 mv './cpipes-output/${input_read_type_cond.pipeline_cond.pipeline}-multiqc/multiqc_report.html' './multiqc_report.html' > /dev/null 2>&1 || exit 1;
kkonganti@87 68 mv './cpipes-output/${input_read_type_cond.pipeline_cond.pipeline}-results/kraken2_extract_contigs' kraken2_extract_contigs > /dev/null 2>&1 || exit 1;
kkonganti@87 69 rm -rf ./cpipes-output > /dev/null 2>&1 || exit 1;
kkonganti@87 70 rm -rf ./work > /dev/null 2>&1 || exit 1
kkonganti@0 71 ]]></command>
kkonganti@0 72 <inputs>
kkonganti@58 73 <conditional name="input_read_type_cond">
kkonganti@58 74 <param name="input_read_type" type="select" label="Select the read collection type">
kkonganti@61 75 <option value="single_long" selected="true">Unpaired reads (i.e. Single-End short reads or Long reads)</option>
kkonganti@58 76 <option value="paired">Paired-End reads</option>
kkonganti@58 77 </param>
kkonganti@58 78 <when value="single_long">
kkonganti@75 79 <param name="input" type="data_collection" collection_type="list" format="fastq,fastq.gz"
kkonganti@61 80 label="Dataset list of unpaired short reads or long reads" />
kkonganti@58 81 <conditional name="pipeline_cond">
kkonganti@58 82 <param name="pipeline" type="select" label="CPIPES Workflow name"
kkonganti@90 83 help="centriflaken: for long reads (Nanopore or PacBio). centriflaken_hy: for unpaired short reads. Default: centriflaken">
kkonganti@58 84 <option value="centriflaken" selected="true">centriflaken</option>
kkonganti@58 85 <option value="centriflaken_hy">centriflaken_hy</option>
kkonganti@58 86 </param>
kkonganti@58 87 <when value="centriflaken">
kkonganti@58 88 <param name="long_read_platform" type="select" label="Mention long read sequencing platform and type">
kkonganti@58 89 <option value="nanopore_raw" selected="true">Nanopore raw reads, pre-Guppy5 (&lt;20% error)</option>
kkonganti@58 90 <option value="nanopore_corr">Nanopore reads that were corrected with other methods (&lt;3% error)</option>
kkonganti@58 91 <option value="nanopore_hq">Nanopore high-quality reads, Guppy5+ SUP or Q20 (5% error)</option>
kkonganti@58 92 <option value="pacbio_raw">PacBio regular CLR reads (&lt;20% error)</option>
kkonganti@58 93 <option value="pacbio_corr">PacBio reads that were corrected with other methods (&lt;3% error)</option>
kkonganti@58 94 <option value="pacbio_hifi">PacBio HiFi reads (&lt;1% error)</option>
kkonganti@58 95 </param>
kkonganti@58 96 </when>
kkonganti@58 97 <when value="centriflaken_hy">
kkonganti@89 98 <param name="long_read_platform" type="select" label="Mention long read sequencing platform and type"
kkonganti@89 99 help="THIS OPTION IS IGNORED IF THE INPUT READS ARE SHORT READS.">
kkonganti@89 100 <option value="NA" selected="true">N/A</option>
kkonganti@89 101 </param>
kkonganti@58 102 </when>
kkonganti@58 103 </conditional>
kkonganti@74 104 <param name="fq_suffix" value=".fastq.gz" type="text" label="Suffix of the Unpaired FASTQ"/>
kkonganti@58 105 </when>
kkonganti@58 106 <when value="paired">
kkonganti@85 107 <param name="input_pair" type="data_collection" collection_type="list:paired" format="fastq,fastq.gz" label="List of Dataset pairs" />
kkonganti@66 108 <conditional name="pipeline_cond">
kkonganti@66 109 <param name="pipeline" type="select" label="CPIPES Workflow name"
kkonganti@90 110 help="Auto selected centriflaken_hy workflow for paired-end short reads.">
kkonganti@66 111 <option value="centriflaken_hy" selected="true">centriflaken_hy</option>
kkonganti@66 112 </param>
kkonganti@66 113 <when value="centriflaken_hy">
kkonganti@91 114 <param name="long_read_platform" type="select" label="Mention long read sequencing platform and type"
kkonganti@91 115 help="THIS OPTION IS IGNORED IF THE INPUT READS ARE SHORT READS.">
kkonganti@91 116 <option value="NA" selected="true">N/A</option>
kkonganti@91 117 </param>
kkonganti@66 118 </when>
kkonganti@66 119 </conditional>
kkonganti@74 120 <param name="fq_suffix" value="_R1_001.fastq.gz" type="text" label="Suffix of the R1 FASTQ"/>
kkonganti@58 121 <param name="fq2_suffix" value="_R2_001.fastq.gz" type="text" label="Suffix of the R2 FASTQ"/>
kkonganti@58 122 </when>
kkonganti@58 123 </conditional>
kkonganti@44 124 <param name="fq_filter_by_len" optional="true" value="" type="integer" label="Enter minimum read length to retain before starting the analysis"
kkonganti@48 125 help="Keep this option empty to use default values. Default for centriflaken (long reads) is 4000 bp and for centriflaken_hy (short reads) is 75 bp."/>
kkonganti@40 126 <param name="fq_filename_delim" type="text" value="_" label="File name delimitor by which samples are grouped together (--fq_filename_delim)"
kkonganti@48 127 help="This is the delimitor by which samples are grouped together to display in the final MultiQC report. For example, if your input data sets are mango_replicate1.fastq.gz, mango_replicate2.fastq.gz, orange_replicate1_maryland.fastq.gz, orange_replicate2_maryland.fastq.gz, then to create 2 samples mango and orange, the value for --fq_filename_delim would be _ (underscore) and the value for --fq_filename_delim_idx would be 1, since you want to group by the first word (i.e. mango or orange) after splitting the filename based on _ (underscore)."/>
kkonganti@6 128 <param name="fq_filename_delim_idx" type="integer" value="1" label="File name delimitor index (--fq_filename_delim_idx)" />
kkonganti@0 129 <param name="centrifuge_extract_bug" type="text" value="Escherichia coli" label="Reads belonging to this taxa are extracted and a MAG is generated to allow for serotyping"/>
kkonganti@0 130 <param name="genome_size" type="text" optional="true" value="5.5m" label="Estimated genome size" help="For example, 5m or 2.6g.">
kkonganti@0 131 <validator type="regex" message="Genome size must be a float or integer, optionally followed by the a unit prefix (kmg)">^([0-9]*[.])?[0-9]+[kmg]?$</validator>
kkonganti@0 132 </param>
kkonganti@47 133 <!-- <param name="runtime_profile" type="select" label="Run time profile">
kkonganti@31 134 <option value="kondagac" selected="true">conda</option>
kkonganti@12 135 <option value="cingularitygac">singularity</option>
kkonganti@47 136 </param> -->
kkonganti@0 137 </inputs>
kkonganti@0 138 <outputs>
kkonganti@59 139 <data name="multiqc_report" format="html" label="${input_read_type_cond.pipeline_cond.pipeline}: MultiQC Report on ${on_string}" from_work_dir="multiqc_report.html"/>
kkonganti@59 140 <collection name="assembled_mags" type="list" label="${input_read_type_cond.pipeline_cond.pipeline}: Assembled MAGs on ${on_string}">
kkonganti@24 141 <discover_datasets pattern="(?P&lt;name&gt;.*)\.assembly_filtered_contigs\.fasta" ext="fasta" directory="kraken2_extract_contigs"/>
kkonganti@18 142 </collection>
kkonganti@0 143 </outputs>
kkonganti@3 144 <tests>
kkonganti@3 145 <!--Test 01: long reads-->
kkonganti@3 146 <test expect_num_outputs="2">
kkonganti@4 147 <param name="input">
kkonganti@3 148 <collection type="list">
kkonganti@4 149 <element name="FAL11127.fastq.gz" value="FAL11127.fastq.gz" />
kkonganti@4 150 <element name="FAL11341.fastq.gz" value="FAL11341.fastq.gz" />
kkonganti@4 151 <element name="FAL11342.fastq.gz" value="FAL11342.fastq.gz" />
kkonganti@3 152 </collection>
kkonganti@3 153 </param>
kkonganti@3 154 <param name="fq_suffix" value=".fastq.gz"/>
kkonganti@3 155 <output name="multiqc_report" file="multiqc_report.html" ftype="html" compare="sim_size"/>
kkonganti@18 156 <!-- <output name="assembled_mags" file="FAL11127.assembly_filtered.contigs.fasta" ftype="fasta" compare="sim_size"/> -->
kkonganti@3 157 </test>
kkonganti@3 158 </tests>
kkonganti@0 159 <help><![CDATA[
kkonganti@0 160
kkonganti@0 161 .. class:: infomark
kkonganti@0 162
kkonganti@0 163 **Purpose**
kkonganti@0 164
kkonganti@50 165 Centriflaken suite of automated data analysis pipelines are based on Nextflow DSL2 developed at CFSAN, FDA. These pipelines allow rapid
kkonganti@0 166 and effective construction of metagenomic assembled genomes (MAGs) to enable bacterial source-tracking. It is based on methods described in our
kkonganti@53 167 previous publication (Maguire *et al*, 2021. doi: https://doi.org/10.1371/journal.pone.0245172).
kkonganti@14 168
kkonganti@0 169 ----
kkonganti@0 170
kkonganti@0 171 .. class:: infomark
kkonganti@0 172
kkonganti@0 173 **Testing and Validation**
kkonganti@0 174
kkonganti@47 175 The CPIPES - Centriflaken Nextflow pipeline has been wrapped to make it work in Galaxy. It takes in either paired or unpaired short reads or long reads, generates MAGs and performs
kkonganti@0 176 in silico-based analysis (i.e., virulence gene finding). Additionally, AMR gene finding analysis is also included in Centriflaken and performed on MAGs
kkonganti@0 177 of interest. The final summary plots and tables can be downloaded from the provided MultiQC HTML report generated as part of the pipeline.
kkonganti@53 178 The Centriflaken pipeline was validated with data from our previously published method (Maguire *et al*, 2021. doi: https://doi.org/10.1371/journal.pone.0245172) and was able to replicate the detection
kkonganti@47 179 and classification of STECs for each sample. We tested the pipeline with Nanopore data obtained from 21 additional enriched samples from
kkonganti@0 180 irrigation water and was able to perform the entire precision metagenomics analysis in less than 5 hours for all of them. All the original testing and validation was
kkonganti@0 181 done on the command line on the CFSAN Raven2 HPC Cluster.
kkonganti@0 182
kkonganti@0 183
kkonganti@0 184 ----
kkonganti@0 185
kkonganti@0 186 .. class:: infomark
kkonganti@0 187
kkonganti@0 188 **Outputs**
kkonganti@0 189
kkonganti@0 190 The main output files are:
kkonganti@0 191
kkonganti@0 192 ::
kkonganti@0 193
kkonganti@55 194 - MultiQC Report: Contains a brief summary report including any serotyping and AMR result tables.
kkonganti@56 195 Please note that due to MultiQC customizations, the preview (eye icon) will not
kkonganti@56 196 work within Galaxy for the MultiQC report. Please download the file by clicking
kkonganti@57 197 on the floppy icon and view it in your browser on your local desktop/workstation.
kkonganti@27 198 - Final assembly: contains contigs and possibly scaffolds.
kkonganti@0 199
kkonganti@0 200 ]]></help>
kkonganti@0 201 <citations>
kkonganti@0 202 <citation type="bibtex">
kkonganti@0 203 @misc{gitlabCPIPES,
kkonganti@0 204 author = {Konganti, Kranti},
kkonganti@0 205 year = {2022},
kkonganti@0 206 title = {CPIPES - Centriflaken},
kkonganti@0 207 publisher = {GitLab},
kkonganti@0 208 journal = {GitLab repository},
kkonganti@0 209 url = {https://cfsan-git.fda.gov/Kranti.Konganti/cpipes}}
kkonganti@0 210 </citation>
kkonganti@0 211 </citations>
kkonganti@0 212 </tool>