annotate csp2_snp.xml @ 61:e7470d424809

"planemo upload"
author rliterman
date Thu, 19 Dec 2024 13:02:58 -0500
parents 5378cd1e3a39
children 0552b9528fc4
rev   line source
rliterman@29 1 <tool id="csp2-snp" name="CSP2 (SNP Pipeline Mode)" version="0.9.7_Dev21">
rliterman@29 2 <description>Run SNP Pipeline analysis on isolates using one or more references.</description>
rliterman@29 3 <requirements>
rliterman@29 4 <requirement type="package" version="24.10.1">nextflow</requirement>
rliterman@29 5 <requirement type="package" version="1.5.8">micromamba</requirement>
rliterman@29 6 </requirements>
rliterman@29 7 <version_command>nextflow -version</version_command>
rliterman@29 8 <command detect_errors="aggressive"><![CDATA[
rliterman@51 9 mkdir ./queries ./references;
rliterman@29 10
rliterman@59 11 #set query_fasta_input=""
rliterman@59 12 #set ref_fasta_input=""
rliterman@59 13 #set query_reads_forward=""
rliterman@59 14 #set query_reads_reverse=""
rliterman@59 15 #set ref_reads_forward=""
rliterman@59 16 #set ref_reads_reverse=""
rliterman@57 17
rliterman@61 18 export QUERY_FASTA_SELECT="$query_fasta.query_fasta_select"
rliterman@61 19 export QUERY_READS_SELECT="$query_reads.query_reads_select"
rliterman@61 20 export REF_FASTA_SELECT="$ref_fasta.ref_fasta_select"
rliterman@61 21 export REF_READS_SELECT="$ref_reads.ref_reads_select"
rliterman@61 22
rliterman@61 23 if [[ "\$QUERY_FASTA_SELECT" == 'collection' ]]; then
rliterman@58 24 #set query_fasta_input=$query_fasta.coll.elements
rliterman@61 25 elif [[ "\$QUERY_FASTA_SELECT" == 'history' ]]; then
rliterman@58 26 #set query_fasta_input=$query_fasta.list
rliterman@61 27 fi;
rliterman@58 28
rliterman@61 29 if [[ "\$REF_FASTA_SELECT" == 'collection' ]]; then
rliterman@59 30 #set ref_fasta_input=$ref_fasta.coll.elements
rliterman@61 31 elif [[ "\$REF_FASTA_SELECT" == 'history' ]]; then
rliterman@59 32 #set ref_fasta_input=$ref_fasta.list
rliterman@61 33 fi;
rliterman@59 34
rliterman@61 35 if [[ "\$QUERY_READS_SELECT" == 'collection' ]]; then
rliterman@59 36 #set query_reads_forward=$query_reads.coll.forward
rliterman@59 37 #set query_reads_reverse=$query_reads.coll.reverse
rliterman@61 38 elif [[ "\$QUERY_READS_SELECT" == 'history' ]]; then
rliterman@59 39 #set query_reads_forward=$query_reads.list
rliterman@61 40 fi;
rliterman@59 41
rliterman@61 42 if [[ "\$REF_READS_SELECT" == 'collection' ]]; then
rliterman@59 43 #set ref_reads_forward=$ref_reads.coll.forward
rliterman@59 44 #set ref_reads_reverse=$ref_reads.coll.reverse
rliterman@61 45 elif [[ "\$REF_READS_SELECT" =='history' ]]; then
rliterman@59 46 #set ref_reads_forward=$ref_reads.list
rliterman@61 47 fi;
rliterman@59 48
rliterman@61 49 echo "Query Fasta: \$QUERY_FASTA_SELECT";
rliterman@61 50 echo "Ref Fasta: \$REF_FASTA_SELECT";
rliterman@61 51
rliterman@61 52 echo "Query Reads: \$QUERY_READS_SELECT";
rliterman@61 53 echo "Ref Reads: \$REF_READS_SELECT";
rliterman@61 54
rliterman@61 55 if [[ "\$QUERY_FASTA_SELECT" == 'none']]; then
rliterman@55 56 export QUERY_FASTA_ARG="";
rliterman@29 57 else
rliterman@58 58 #for query in $query_fasta_input:
rliterman@55 59 ln -sf ${query} ./queries/${query.element_identifier};
rliterman@55 60 #end for
rliterman@55 61 export QUERY_FASTA_ARG="--fasta ./queries";
rliterman@29 62 fi;
rliterman@29 63
rliterman@58 64
rliterman@58 65 if [[ "$ref_fasta.ref_fasta_select" == "none" ]]; then
rliterman@55 66 export REF_FASTA_ARG="";
rliterman@58 67 else
rliterman@58 68 #for ref in $ref_fasta_input:
rliterman@55 69 ln -sf ${ref} ./references/${ref.element_identifier};
rliterman@55 70 #end for
rliterman@58 71 export REF_FASTA_ARG="--fasta ./references";
rliterman@29 72 fi;
rliterman@29 73
rliterman@58 74 if [[ "$query_reads.query_reads_select" == "none" ]]; then
rliterman@55 75 export QUERY_READS_ARG="";
rliterman@29 76 else
rliterman@58 77 #for query in $query_reads_forward $query_reads_reverse:
rliterman@55 78 ln -sf ${query} ./queries/${query.element_identifier};
rliterman@55 79 #end for
rliterman@55 80 export QUERY_READS_ARG="--reads ./queries";
rliterman@29 81 fi;
rliterman@29 82
rliterman@58 83 if [[ "$ref_reads.ref_reads_select" == "none" ]]; then
rliterman@58 84 export QUERY_READS_ARG="";
rliterman@58 85 else
rliterman@58 86 #for ref in $ref_reads_forward $ref_reads_reverse:
rliterman@55 87 ln -sf ${ref} ./references/${ref.element_identifier};
rliterman@55 88 #end for
rliterman@58 89 export QUERY_READS_ARG="--reads ./queries";
rliterman@29 90 fi;
rliterman@29 91
rliterman@59 92 if [ -n "$trim_name" ] && [ "$trim_name" != "None" ]; then
rliterman@29 93 export TRIM_ARG="--trim_name $trim_name";
rliterman@29 94 else
rliterman@29 95 export TRIM_ARG="";
rliterman@29 96 fi;
rliterman@29 97
rliterman@29 98 if [[ "$rescue" == "true" ]]; then
rliterman@29 99 export RESCUE_ARG="--rescue";
rliterman@29 100 else
rliterman@29 101 export RESCUE_ARG="";
rliterman@29 102 fi;
rliterman@29 103
rliterman@52 104 nextflow run ${__tool_directory__}/CSP2/CSP2.nf -profile csp2_galaxy --runmode snp \$QUERY_FASTA_ARG \$REF_FASTA_ARG \$QUERY_READS_ARG \$REF_READS_ARG \$TRIM_ARG \$RESCUE_ARG --readext $readext --forward $forward --reverse $reverse --ref_readext $readext --ref_forward $forward --ref_reverse $reverse --min_cov $min_cov --min_iden $min_iden --min_len $min_len --ref_edge $ref_edge --query_edge $query_edge --dwin $dwin --wsnps $wsnps --max_missing $max_missing --n_ref $n_ref --out ./CSP2_SNP_Output > Nextflow_Log.txt 2>&1 &&
rliterman@51 105 mkdir CSP2_Output &&
rliterman@51 106 cat CSP2_SNP_Output/logs/Reference_IDs.txt | while read line; do cp 'CSP2_SNP_Output/SNP_Analysis/'\$line'/CSP2_SNP_Pipeline.log' 'CSP2_Output/'\$line'_CSP2_SNP_Pipeline.log'; cp 'CSP2_SNP_Output/SNP_Analysis/'\$line'/Reference_Screening.tsv' 'CSP2_Output/'\$line'_Reference_Screening.tsv'; cp 'CSP2_SNP_Output/SNP_Analysis/'\$line'/snp_distance_matrix_preserved.tsv' 'CSP2_Output/'\$line'_snp_distance_matrix_preserved.tsv'; cp 'CSP2_SNP_Output/SNP_Analysis/'\$line'/snp_distance_pairwise_preserved.tsv' 'CSP2_Output/'\$line'_snp_distance_pairwise_preserved.tsv'; cp 'CSP2_SNP_Output/SNP_Analysis/'\$line'/snpma_preserved.fasta' 'CSP2_Output/'\$line'_snpma_preserved.fasta';done &&
rliterman@51 107 ls -la CSP2_Output;
rliterman@33 108
rliterman@34 109 ]]>
rliterman@29 110 </command>
rliterman@29 111 <inputs>
rliterman@55 112 <conditional name="query_fasta">
rliterman@55 113 <param name="query_fasta_select" type="select" label="Get query assemblies from a collection or your history">
rliterman@55 114 <option value="none" selected="true">Do not provide query assemblies</option>
rliterman@55 115 <option value="collection">Query assemblies from a collection_type</option>
rliterman@55 116 <option value="history">Query assemblies from your history</option>
rliterman@55 117 </param>
rliterman@55 118 <when value="none">
rliterman@55 119 </when>
rliterman@55 120 <when value="collection">
rliterman@55 121 <param label="Query Assembly Collection" name="coll" type="data_collection" format="fasta" collection_type="list" />
rliterman@55 122 </when>
rliterman@55 123 <when value="history">
rliterman@55 124 <param label="Query Assembly List" type="data" name="list" format="fasta" multiple="true" />
rliterman@55 125 </when>
rliterman@55 126 </conditional>
rliterman@55 127
rliterman@55 128 <conditional name="ref_fasta">
rliterman@55 129 <param name="ref_fasta_select" type="select" label="Get reference assemblies from a collection or your history">
rliterman@55 130 <option value="none" selected="true">Do not provide reference assemblies</option>
rliterman@55 131 <option value="collection">Reference assemblies from a collection_type</option>
rliterman@55 132 <option value="history">Reference assemblies from your history</option>
rliterman@55 133 </param>
rliterman@55 134 <when value="none">
rliterman@55 135 </when>
rliterman@55 136 <when value="collection">
rliterman@55 137 <param label="Reference Assembly Collection" name="coll" type="data_collection" format="fasta" collection_type="list" />
rliterman@55 138 </when>
rliterman@55 139 <when value="history">
rliterman@55 140 <param label="Reference Assembly List" type="data" name="list" format="fasta" multiple="true" />
rliterman@55 141 </when>
rliterman@55 142 </conditional>
rliterman@55 143 <conditional name="query_reads">
rliterman@55 144 <param name="query_reads_select" type="select" label="Get query reads from a paired-end collection or your history">
rliterman@55 145 <option value="none" selected="true">Do not provide query reads</option>
rliterman@55 146 <option value="collection">Query reads from a collection_type</option>
rliterman@55 147 <option value="history">Query reads from your history</option>
rliterman@55 148 </param>
rliterman@55 149 <when value="none">
rliterman@55 150 </when>
rliterman@55 151 <when value="collection">
rliterman@55 152 <param label="Query Reads Collection" name="coll" type="data_collection" format="fastq,fastqsanger,fastq.gz,fastqsanger.gz,fastq.bz2,fastqsanger.bz2" collection_type="paired" />
rliterman@55 153 </when>
rliterman@55 154 <when value="history">
rliterman@55 155 <param label="Query Reads List" type="data" name="list" format="fastq,fastqsanger,fastq.gz,fastqsanger.gz,fastq.bz2,fastqsanger.bz2" multiple="true" />
rliterman@55 156 </when>
rliterman@55 157 </conditional>
rliterman@55 158
rliterman@55 159 <conditional name="ref_reads">
rliterman@55 160 <param name="ref_reads_select" type="select" label="Get reference reads from a paired-end collection or your history">
rliterman@55 161 <option value="none" selected="true">Do not provide reference reads</option>
rliterman@55 162 <option value="collection">Refrence reads from a collection_type</option>
rliterman@55 163 <option value="history">Refrence reads from your history</option>
rliterman@55 164 </param>
rliterman@55 165 <when value="none">
rliterman@55 166 </when>
rliterman@55 167 <when value="collection">
rliterman@55 168 <param label="Refrence Reads Collection" name="coll" type="data_collection" format="fastq,fastqsanger,fastq.gz,fastqsanger.gz,fastq.bz2,fastqsanger.bz2" collection_type="paired" />
rliterman@55 169 </when>
rliterman@55 170 <when value="history">
rliterman@55 171 <param label="Refrence Reads List" type="data" name="list" format="fastq,fastqsanger,fastq.gz,fastqsanger.gz,fastq.bz2,fastqsanger.bz2" multiple="true" />
rliterman@55 172 </when>
rliterman@55 173 </conditional>
rliterman@55 174
rliterman@29 175 <param name="min_cov" type="float" value="85" label="Minimum reference genome coverage to proceed with distance estimation" optional="true" />
rliterman@29 176 <param name="min_iden" type="float" value="99" label="Minimum alignment percent identity to detect SNPs" optional="true" />
rliterman@29 177 <param name="min_len" type="integer" value="500" label="Minimum alignment length to detect SNPs" optional="true" />
rliterman@29 178 <param name="ref_edge" type="integer" value="150" label="Prune SNPs within this many bases of reference contig edge" optional="true" />
rliterman@29 179 <param name="query_edge" type="integer" value="150" label="Prune SNPs within this many bases of query contig edge" optional="true" />
rliterman@29 180 <param name="dwin" type="text" value="1000,125,15" label="Comma-separated set of window sizes for SNP density filtration (Set to 0 to disable density filtration)" optional="true" />
rliterman@29 181 <param name="wsnps" type="text" value="3,2,1" label="Comma-separated list of maximum SNP counts per density window" optional="true" />
rliterman@29 182 <param name="readext" type="text" value="fastq.gz" label="Read extension format (e.g., fastq.gz)" optional="true" />
rliterman@29 183 <param name="forward" type="text" value="_1.fastq.gz" label="Forward read suffix (e.g. _1.fastq.gz)" optional="true" />
rliterman@29 184 <param name="reverse" type="text" value="_2.fastq.gz" label="Forward read suffix (e.g. _2.fastq.gz)" optional="true" />
rliterman@59 185 <param name="trim_name" type="text" value="" label="Text to remove from all file names (e.g., _contigs_skesa)" optional="true" />
rliterman@29 186 <param name="rescue" type="boolean" value="false" label="Enable SNP edge rescue mode" optional="true" />
rliterman@29 187 <param name="max_missing" type="float" value="50" label="Maximum percent of isolates allowed to have missing data to retain a SNP" optional="true" />
rliterman@52 188 <param name="n_ref" type="integer" value="1" label="Number of reference genomes to select" optional="true" />
rliterman@52 189
rliterman@29 190 </inputs>
rliterman@29 191 <outputs>
rliterman@34 192 <data name="isolate_data" format="tabular" label="Isolate Data" from_work_dir="CSP2_SNP_Output/Isolate_Data.tsv" />
rliterman@29 193 <data name="raw_mummer" format="tabular" label="Raw MUMmer Output" from_work_dir="CSP2_SNP_Output/Raw_MUMmer_Summary.tsv" />
rliterman@51 194
rliterman@51 195 <collection name="csp2_logs" type='list' label="CSP2 Log">
rliterman@51 196 <discover_datasets pattern="(?P&lt;designation&gt;.+)_CSP2_SNP_Pipeline\.log" directory="CSP2_Output" format='txt'/>
rliterman@51 197 </collection>
rliterman@51 198 <collection name="csp2_alignments" type='list' label="CSP2 Alignment">
rliterman@51 199 <discover_datasets pattern="(?P&lt;designation&gt;.+)_snpma_preserved\.fasta" directory="CSP2_Output" format='fasta'/>
rliterman@51 200 </collection>
rliterman@51 201 <collection name="csp2_matrices" type='list' label="CSP2 Matrices">
rliterman@51 202 <discover_datasets pattern="(?P&lt;designation&gt;.+)_snp_distance_matrix_preserved\.tsv" directory="CSP2_Output" format='tabular'/>
rliterman@51 203 </collection>
rliterman@51 204 <collection name="csp2_pairwise" type='list' label="CSP2 Pairwise Distances">
rliterman@51 205 <discover_datasets pattern="(?P&lt;designation&gt;.+)_snp_distance_pairwise_preserved\.tsv" directory="CSP2_Output" format='tabular'/>
rliterman@51 206 </collection>
rliterman@51 207 <collection name="csp2_ref_screening" type='list' label="CSP2 Reference Screening">
rliterman@51 208 <discover_datasets pattern="(?P&lt;designation&gt;.+)_Reference_Screening\.tsv" directory="CSP2_Output" format='tabular'/>
rliterman@37 209 </collection>
rliterman@29 210 </outputs>
rliterman@29 211 <tests>
rliterman@29 212 <test>
rliterman@29 213 <param name="query_fasta">
rliterman@29 214 <collection type="list">
rliterman@29 215 <element name="Sample_A" value="assemblies/Sample_A.fasta" />
rliterman@29 216 <element name="Sample_B" value="assemblies/Sample_B.fasta" />
rliterman@29 217 <element name="Sample_C" value="assemblies/Sample_C.fasta" />
rliterman@29 218 <element name="Sample_D" value="assemblies/Sample_D.fasta" />
rliterman@29 219 <element name="Sample_E" value="assemblies/Sample_E.fasta" />
rliterman@29 220 <element name="Sample_F" value="assemblies/Sample_F.fasta" />
rliterman@29 221 <element name="Sample_G" value="assemblies/Sample_G.fasta" />
rliterman@29 222 <element name="Sample_H" value="assemblies/Sample_H.fasta" />
rliterman@29 223 <element name="Sample_I" value="assemblies/Sample_I.fasta" />
rliterman@29 224 <element name="Sample_J" value="assemblies/Sample_J.fasta" />
rliterman@29 225 <element name="Sample_K" value="assemblies/Sample_K.fasta" />
rliterman@29 226 <element name="Sample_L" value="assemblies/Sample_L.fasta" />
rliterman@29 227 <element name="Sample_M" value="assemblies/Sample_M.fasta" />
rliterman@29 228 <element name="Sample_N" value="assemblies/Sample_N.fasta" />
rliterman@29 229 <element name="Sample_O" value="assemblies/Sample_O.fasta" />
rliterman@29 230 </collection>
rliterman@29 231 </param>
rliterman@29 232 <param name="query_reads">
rliterman@29 233 <collection type="list">
rliterman@29 234 <element name="Forward" value="reads/Week_42_Reads_1.fq.gz" />
rliterman@29 235 <element name="Reverse" value="reads/Week_42_Reads_2.fq.gz" />
rliterman@29 236 </collection>
rliterman@29 237 </param>
rliterman@29 238
rliterman@29 239 <param name="ref_id" value="Sample_A,Sample_B" />
rliterman@29 240 <param name="readext" value="fq.gz" />
rliterman@29 241 <param name="forward" value="_1.fq.gz" />
rliterman@29 242 <param name="reverse" value="_2.fq.gz" />
rliterman@29 243
rliterman@29 244 <output name="isolate_data" value="Isolate_Data.tsv" />
rliterman@29 245 </test>
rliterman@29 246 </tests>
rliterman@29 247 <help>
rliterman@29 248 This tool takes query assemblies and reference assemblies and calculates the pairwise distance between each query/reference combination. If no reference is provided, all queries are compared to all other queries.
rliterman@29 249 </help>
rliterman@29 250 <citations>
rliterman@29 251 <citation type="doi">10.XXXX/placeholder.doi</citation>
rliterman@29 252 <citation type="bibtex">@article{example2024,title={CFSAN SNP Pipeline 2 (CSP2): a pipeline for fast and accurate SNP distance estimation from bacterial genome assemblies.},author={Doe, John and Smith, Jane},journal={Submitted},year={2024}}
rliterman@29 253 </citation>
rliterman@29 254 </citations>
rliterman@29 255 </tool>
rliterman@29 256