view csp2-screen.xml @ 0:1c1e01265e0f draft default tip

planemo upload commit 7f3c6fb6db52daedaa0c59d6ca7f39710778f242-dirty
author jpayne
date Mon, 11 Aug 2025 15:46:24 +0000
parents
children
line wrap: on
line source

<tool id="csp2-screen" name="CSP2 (Screening Mode)" version="0.9.7.7">
        <description>Screen query assemblies against reference assemblies</description>
        <requirements>
                <!-- <requirement type="package" version="24.10.1">nextflow</requirement>
                <requirement type="package" version="1.5.8">micromamba</requirement> -->
                <container type="docker">cfsanbiostatistics/csp2:v.0.9.7.7-galaxy</container>
        </requirements>
        <version_command>nextflow -version</version_command>
        <command detect_errors="exit_code"><![CDATA[
mkdir -p queries references .nextflow
#set readext=""
#set renamedref=$source.reference.element_identifier.replace(": ", ".").replace(" ", "_")
#for $reads in $coll
        && ln -sf '${reads}' 'queries/${reads.element_identifier.replace(": ", ".").replace(" ", "_")}.fasta'
#end for
        && ln -sf '$source.reference' 'references/${renamedref}.fasta'
        && echo "*** Files in queries directory: ***"
        && ls -lah queries/
        && nextflow run 
        /app/CSP2.nf -c $__tool_directory__/nextflow.config -profile standard
        --runmode screen
        --fasta queries
        --ref_fasta 'references/${renamedref}.fasta'
        --min_cov $opt.min_cov 
        --min_iden $opt.min_iden 
        --min_len $opt.min_len 
        --ref_edge $opt.ref_edge 
        --query_edge $opt.query_edge 
        --dwin $opt.dwin 
        --wsnps $opt.wsnps 
        --out CSP2_Screen_Output
        --quiet
        && echo "*** Files in output directory: ***"
        && ls -lahR CSP2_Screen_Output
        && tail -n +2 CSP2_Screen_Output/Isolate_Data.tsv > ${isolate_data}
        && tail -n +2 CSP2_Screen_Output/Raw_MUMmer_Summary.tsv > ${raw_mummer}
        && tail -n +2 CSP2_Screen_Output/Screening_Results.tsv > ${screening_results}
        && echo "*** Nextflow log follows: ***"
        && cat .nextflow.log
]]>
        </command>
        <inputs>
                <conditional name="source">
                        <param name="source_select" type="select" label="Use a curated GalaxyTrakr reference or a reference from your history">
                                <option value="curated">Use a GalaxyTrakr reference</option>
                                <option value="history">Use a reference from your history</option>
                        </param>
                        <when value="curated">
                                <param name="reference" type="select" label="Select reference fasta">
                                        <options from_data_table="all_fasta">
                                                <filter type="sort_by" column="2"/>
                                                <validator type="no_options" message="No assemblies are available for the selected input dataset"/>
                                        </options>
                                </param>
                        </when>
                        <when value="history">
                                <param type="data" name="reference" format="fasta" label="Select reference FASTA"/>
                        </when>
                </conditional>
                <!-- <conditional name="query">
                        <param name="query_select" type="select" label="Screen a list of paired-end reads or a list of assemblies">
                                <option value="reads">Screen a list of paired reads</option>
                                <option value="assemblies">Screen a list of assemblies</option>
                        </param>
                        <when value="reads">
                                <param label="Paired reads" name="coll" type="data_collection" format="fastq,fastqsanger,fastq.gz,fastqsanger.gz,fastq.bz2,fastqsanger.bz2" collection_type="list:paired" />
                        </when>
                        <when value="assemblies"> -->
                                <param label="Assemblies" name="coll" type="data_collection" format="fasta" collection_type="list" />
                        <!-- </when> -->
                <!-- </conditional> -->
                <section name="opt" title="Advanced options...">
                        <param argument="--min_cov" name="min_cov" type="float" value="85" label="Minimum reference genome coverage to proceed with distance estimation" />
                        <param argument="--min_eden" name="min_iden" type="float" value="99" label="Minimum alignment percent identity to detect SNPs" />
                        <param argument="--min_len" name="min_len" type="integer" value="500" label="Minimum alignment length to detect SNPs" />
                        <param argument="--ref_edge" name="ref_edge" type="integer" value="150" label="Prune SNPs within this many bases of reference contig edge" />
                        <param argument="--query_edge" name="query_edge" type="integer" value="150" label="Prune SNPs within this many bases of query contig edge" />
                        <param argument="--dwin" 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)" />
                        <param argument="--wsnips" name="wsnps" type="text" value="3,2,1" label="Comma-separated list of maximum SNP counts per density window" />
                </section>
        </inputs>
        <outputs>
                <data name="raw_mummer" format="tabular" label="Raw MUMmer Output">
                        <actions>
                                <action name="column_names" type="metadata" default="SNPDiffs_File,Query_ID,Query_Assembly,Query_Contig_Count,Query_Assembly_Bases,Query_N50,Query_N90,Query_L50,Query_L90,Query_SHA256,Reference_ID,Reference_Assembly,Reference_Contig_Count,Reference_Assembly_Bases,Reference_N50,Reference_N90,Reference_L50,Reference_L90,Reference_SHA256,SNPs,Reference_Percent_Aligned,Query_Percent_Aligned,Median_Percent_Identity,Median_Alignment_Length,Kmer_Similarity,Shared_Kmers,Reference_Unique_Kmers,Query_Unique_Kmers,Reference_Breakpoints,Query_Breakpoints,Reference_Relocations,Query_Relocations,Reference_Translocations,Query_Translocations,Reference_Inversions,Query_Inversions,Reference_Insertions,Query_Insertions,Reference_Tandem,Query_Tandem,Indels,Invalid,gSNPs,gIndels" />
                        </actions>
                </data>
                <data name="isolate_data" format="tabular" label="Isolate Data">
                        <actions>
                                <action name="column_names" type="metadata" default="Isolate_ID,Isolate_Type,Assembly_Path,Contig_Count,Assembly_Bases,N50,N90,L50,L90,SHA256" />
                        </actions>
                </data>
                <data name="screening_results" format="tabular" label="Screening Results">
                        <actions>
                                <action name="column_names" type="metadata" default="Query_ID,Reference_ID,Screen_Category,CSP2_Screen_SNPs,Query_Percent_Aligned,Reference_Percent_Aligned,Query_Contigs,Query_Bases,Reference_Contigs,Reference_Bases,Raw_SNPs,Purged_Length,Purged_Identity,Purged_LengthIdentity,Purged_Invalid,Purged_Indel,Purged_Duplicate,Purged_Het,Purged_Density,Filtered_Query_Edge,Filtered_Ref_Edge,Filtered_Both_Edge,Kmer_Similarity,Shared_Kmers,Query_Unique_Kmers,Reference_Unique_Kmers,MUMmer_gSNPs,MUMmer_gIndels" />
                        </actions>
                </data>
                <!-- <data name="nextflow_log" format="txt" label="Nextflow Log" from_work_dir="Nextflow_Log.txt" /> -->
        </outputs>
        <tests>
                <test>
                        <param name="source_select" value="history" />
                        <param name="reference" value="assemblies/Sample_A.fasta" ftype="fasta" />
                        <!-- <param name="query_select" value="assemblies" /> -->
                        <param name="coll">
                                <collection type="list">
                                        <!-- <element name="Sample_A" value="assemblies/Sample_A.fasta" /> -->
                                        <element name="Sample_B" value="assemblies/Sample_B.fasta" />
                                        <element name="Sample_C" value="assemblies/Sample_C.fasta" />
                                        <element name="Sample_D" value="assemblies/Sample_D.fasta" />
                                        <element name="Sample_E" value="assemblies/Sample_E.fasta" />
                                        <element name="Sample_F" value="assemblies/Sample_F.fasta" />
                                        <element name="Sample_G" value="assemblies/Sample_G.fasta" />
                                        <element name="Sample_H" value="assemblies/Sample_H.fasta" />
                                        <element name="Sample_I" value="assemblies/Sample_I.fasta" />
                                        <element name="Sample_J" value="assemblies/Sample_J.fasta" />
                                        <element name="Sample_K" value="assemblies/Sample_K.fasta" />
                                        <element name="Sample_L" value="assemblies/Sample_L.fasta" />
                                        <element name="Sample_M" value="assemblies/Sample_M.fasta" />
                                        <element name="Sample_N" value="assemblies/Sample_N.fasta" />
                                        <element name="Sample_O" value="assemblies/Sample_O.fasta" />
                                </collection>
                        </param>

                        <output name="screening_results" value="Screening_Results.tsv" />
                        <output name="isolate_data" value="Isolate_Data.tsv" />
                </test>
                <!-- <test>
                        <param name="source_select" value="history" />
                        <param name="reference" value="assemblies/Sample_A.fasta" ftype="fasta" />
                        <param name="query_select" value="reads" />
                        <param name="coll">
                                <collection type="list:paired">
                                        <element name="Sample_A" >
                                                <collection type="paired">
                                                        <element name="forward" value="reads/Week_42_Reads_1.fq.gz" ftype="fastqsanger.gz" />
                                                        <element name="reverse" value="reads/Week_42_Reads_2.fq.gz" ftype="fastqsanger.gz" />
                                                </collection>
                                        </element>
                                </collection>
                        </param>
                        <output name="screening_results" value="Screening_Results.tsv" />
                        <output name="isolate_data" value="Isolate_Data.tsv" />
                </test> -->
        </tests>
        <help>
        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.
        </help>
        <citations>
                <citation type="doi">10.XXXX/placeholder.doi</citation>
                <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}}
                </citation>
        </citations>
</tool>