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@29
|
9 export CSP2_DIR=\$PWD;
|
rliterman@29
|
10 mkdir -p \$CSP2_DIR/queries \$CSP2_DIR/references;
|
rliterman@29
|
11
|
rliterman@29
|
12 if [ -n "$query_fasta" ] && [ "$query_fasta" != "None" ]; then
|
rliterman@29
|
13 #for query in $query_fasta:
|
rliterman@29
|
14 ln -sf ${query} \$CSP2_DIR/queries/${query.element_identifier};
|
rliterman@29
|
15 #end for
|
rliterman@29
|
16 export QUERY_FASTA_ARG="--fasta \$CSP2_DIR/queries";
|
rliterman@29
|
17 else
|
rliterman@29
|
18 export QUERY_FASTA_ARG="";
|
rliterman@29
|
19 fi;
|
rliterman@29
|
20
|
rliterman@29
|
21 if [ -n "$query_reads" ] && [ "$query_reads" != "None" ]; then
|
rliterman@29
|
22 #for query in $query_reads:
|
rliterman@29
|
23 ln -sf ${query} \$CSP2_DIR/queries/${query.element_identifier};
|
rliterman@29
|
24 #end for
|
rliterman@29
|
25 export QUERY_READS_ARG="--reads \$CSP2_DIR/queries";
|
rliterman@29
|
26 else
|
rliterman@29
|
27 export QUERY_READS_ARG="";
|
rliterman@29
|
28 fi;
|
rliterman@29
|
29
|
rliterman@29
|
30 if [ -n "$ref_fasta" ] && [ "$ref_fasta" != "None" ]; then
|
rliterman@29
|
31 #for ref in $ref_fasta:
|
rliterman@29
|
32 ln -sf ${ref} \$CSP2_DIR/references/${ref.element_identifier};
|
rliterman@29
|
33 #end for
|
rliterman@29
|
34 export REF_FASTA_ARG="--ref_fasta \$CSP2_DIR/references";
|
rliterman@29
|
35 else
|
rliterman@29
|
36 export REF_FASTA_ARG="";
|
rliterman@29
|
37 fi;
|
rliterman@29
|
38
|
rliterman@29
|
39 if [ -n "$ref_reads" ] && [ "$ref_reads" != "None" ]; then
|
rliterman@29
|
40 #for ref in $ref_reads:
|
rliterman@29
|
41 ln -sf ${ref} \$CSP2_DIR/references/${ref.element_identifier};
|
rliterman@29
|
42 #end for
|
rliterman@29
|
43 export REF_READS_ARG="--ref_reads \$CSP2_DIR/references";
|
rliterman@29
|
44 else
|
rliterman@29
|
45 export REF_READS_ARG="";
|
rliterman@29
|
46 fi;
|
rliterman@29
|
47
|
rliterman@29
|
48 if [ -n "$trim_name" ] && [ "$trim_name" != "None" ]; then
|
rliterman@29
|
49 export TRIM_ARG="--trim_name $trim_name";
|
rliterman@29
|
50 else
|
rliterman@29
|
51 export TRIM_ARG="";
|
rliterman@29
|
52 fi;
|
rliterman@29
|
53
|
rliterman@29
|
54 if [[ "$rescue" == "true" ]]; then
|
rliterman@29
|
55 export RESCUE_ARG="--rescue";
|
rliterman@29
|
56 else
|
rliterman@29
|
57 export RESCUE_ARG="";
|
rliterman@29
|
58 fi;
|
rliterman@29
|
59
|
rliterman@36
|
60 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 --out \$CSP2_DIR/CSP2_SNP_Output > Nextflow_Log.txt 2>&1;
|
rliterman@33
|
61
|
rliterman@35
|
62 mkdir -p Output; for file in CSP2_SNP_Output/SNP_Analysis/*/*; do ln -sf "\$file" Output/; done;
|
rliterman@30
|
63 zip -r CSP2_Output.zip CSP2_SNP_Output;
|
rliterman@34
|
64 ]]>
|
rliterman@29
|
65 </command>
|
rliterman@29
|
66 <inputs>
|
rliterman@29
|
67 <param name="query_fasta" type="data" format="fasta" value="" label="Query assemblies" multiple="true" optional="true" />
|
rliterman@29
|
68 <param name="ref_fasta" type="data" format="fasta" value="" label="Reference assemblies" multiple="true" optional="true" />
|
rliterman@29
|
69 <param name="query_reads" type="data" format="fastq,fastq.gz" value="" label="Query reads" multiple="true" optional="true" />
|
rliterman@29
|
70 <param name="ref_reads" type="data" format="fastq,fastq.gz" value="" label="Reference reads" multiple="true" optional="true" />
|
rliterman@29
|
71 <param name="min_cov" type="float" value="85" label="Minimum reference genome coverage to proceed with distance estimation" optional="true" />
|
rliterman@29
|
72 <param name="min_iden" type="float" value="99" label="Minimum alignment percent identity to detect SNPs" optional="true" />
|
rliterman@29
|
73 <param name="min_len" type="integer" value="500" label="Minimum alignment length to detect SNPs" optional="true" />
|
rliterman@29
|
74 <param name="ref_edge" type="integer" value="150" label="Prune SNPs within this many bases of reference contig edge" optional="true" />
|
rliterman@29
|
75 <param name="query_edge" type="integer" value="150" label="Prune SNPs within this many bases of query contig edge" optional="true" />
|
rliterman@29
|
76 <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
|
77 <param name="wsnps" type="text" value="3,2,1" label="Comma-separated list of maximum SNP counts per density window" optional="true" />
|
rliterman@29
|
78 <param name="readext" type="text" value="fastq.gz" label="Read extension format (e.g., fastq.gz)" optional="true" />
|
rliterman@29
|
79 <param name="forward" type="text" value="_1.fastq.gz" label="Forward read suffix (e.g. _1.fastq.gz)" optional="true" />
|
rliterman@29
|
80 <param name="reverse" type="text" value="_2.fastq.gz" label="Forward read suffix (e.g. _2.fastq.gz)" optional="true" />
|
rliterman@29
|
81 <param name="trim_name" type="text" value="" label="Text to remove from all file names (e.g., _contigs_skesa)" optional="true" />
|
rliterman@29
|
82 <param name="rescue" type="boolean" value="false" label="Enable SNP edge rescue mode" optional="true" />
|
rliterman@29
|
83 <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@29
|
84 </inputs>
|
rliterman@29
|
85 <outputs>
|
rliterman@34
|
86 <data name="nextflow_log" format="txt" label="Nextflow Log" from_work_dir="Nextflow_Log.txt" />
|
rliterman@34
|
87 <data name="isolate_data" format="tabular" label="Isolate Data" from_work_dir="CSP2_SNP_Output/Isolate_Data.tsv" />
|
rliterman@29
|
88 <data name="raw_mummer" format="tabular" label="Raw MUMmer Output" from_work_dir="CSP2_SNP_Output/Raw_MUMmer_Summary.tsv" />
|
rliterman@34
|
89 <data name="reference_screening" format="tabular" label="Reference Screening Data" from_work_dir="Output/Reference_Screening.tsv" />
|
rliterman@34
|
90 <data name="csp2_log" format="txt" label="CSP2 Log" from_work_dir="Output/CSP2_SNP_Pipeline.log" />
|
rliterman@34
|
91 <data name="snp_matrix" format="tabular" label="Preserved SNP Matrix" from_work_dir="Output/snp_distance_matrix_preserved.tsv" />
|
rliterman@34
|
92 <data name="snp_pairwise" format="tabular" label="Preserved SNP Pairwise Distances" from_work_dir="Output/snp_distance_pairwise_preserved.tsv" />
|
rliterman@34
|
93 <data name="snp_alignment" format="fasta" label="Preserved SNP Alignment" from_work_dir="Output/snpma_preserved.fasta" />
|
rliterman@30
|
94 <data name="csp2_zip" format="zip" label="Zipped Output" from_work_dir="CSP2_Output.zip" />
|
rliterman@29
|
95 </outputs>
|
rliterman@29
|
96 <tests>
|
rliterman@29
|
97 <test>
|
rliterman@29
|
98 <param name="query_fasta">
|
rliterman@29
|
99 <collection type="list">
|
rliterman@29
|
100 <element name="Sample_A" value="assemblies/Sample_A.fasta" />
|
rliterman@29
|
101 <element name="Sample_B" value="assemblies/Sample_B.fasta" />
|
rliterman@29
|
102 <element name="Sample_C" value="assemblies/Sample_C.fasta" />
|
rliterman@29
|
103 <element name="Sample_D" value="assemblies/Sample_D.fasta" />
|
rliterman@29
|
104 <element name="Sample_E" value="assemblies/Sample_E.fasta" />
|
rliterman@29
|
105 <element name="Sample_F" value="assemblies/Sample_F.fasta" />
|
rliterman@29
|
106 <element name="Sample_G" value="assemblies/Sample_G.fasta" />
|
rliterman@29
|
107 <element name="Sample_H" value="assemblies/Sample_H.fasta" />
|
rliterman@29
|
108 <element name="Sample_I" value="assemblies/Sample_I.fasta" />
|
rliterman@29
|
109 <element name="Sample_J" value="assemblies/Sample_J.fasta" />
|
rliterman@29
|
110 <element name="Sample_K" value="assemblies/Sample_K.fasta" />
|
rliterman@29
|
111 <element name="Sample_L" value="assemblies/Sample_L.fasta" />
|
rliterman@29
|
112 <element name="Sample_M" value="assemblies/Sample_M.fasta" />
|
rliterman@29
|
113 <element name="Sample_N" value="assemblies/Sample_N.fasta" />
|
rliterman@29
|
114 <element name="Sample_O" value="assemblies/Sample_O.fasta" />
|
rliterman@29
|
115 </collection>
|
rliterman@29
|
116 </param>
|
rliterman@29
|
117 <param name="query_reads">
|
rliterman@29
|
118 <collection type="list">
|
rliterman@29
|
119 <element name="Forward" value="reads/Week_42_Reads_1.fq.gz" />
|
rliterman@29
|
120 <element name="Reverse" value="reads/Week_42_Reads_2.fq.gz" />
|
rliterman@29
|
121 </collection>
|
rliterman@29
|
122 </param>
|
rliterman@29
|
123
|
rliterman@29
|
124 <param name="ref_id" value="Sample_A,Sample_B" />
|
rliterman@29
|
125 <param name="readext" value="fq.gz" />
|
rliterman@29
|
126 <param name="forward" value="_1.fq.gz" />
|
rliterman@29
|
127 <param name="reverse" value="_2.fq.gz" />
|
rliterman@29
|
128
|
rliterman@29
|
129 <output name="isolate_data" value="Isolate_Data.tsv" />
|
rliterman@29
|
130 </test>
|
rliterman@29
|
131 </tests>
|
rliterman@29
|
132 <help>
|
rliterman@29
|
133 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
|
134 </help>
|
rliterman@29
|
135 <citations>
|
rliterman@29
|
136 <citation type="doi">10.XXXX/placeholder.doi</citation>
|
rliterman@29
|
137 <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
|
138 </citation>
|
rliterman@29
|
139 </citations>
|
rliterman@29
|
140 </tool>
|
rliterman@29
|
141
|