Mercurial > repos > nml > cryptogenotyper
view cryptogenotyper.xml @ 0:c64e19bda2a6 draft default tip
planemo upload for repository https://github.com/phac-nml/CryptoGenotyper commit fdca1f95a5d09edf00bddd42286b68fcb20fa981
| author | nml |
|---|---|
| date | Fri, 12 Sep 2025 18:50:28 +0000 |
| parents | |
| children |
line wrap: on
line source
<tool id="CryptoGenotyper" name = "CryptoGenotyper" version="@VERSION@+galaxy0"> <description> classifies Cryptosporidium species subtypes based on SSU rRNA and gp60 gene markers from Sanger sequencing data. </description> <macros> <token name="@VERSION@">1.5.0</token> </macros> <requirements> <requirement type="package" version ="@VERSION@">cryptogenotyper</requirement> </requirements> <version_command>cryptogenotyper --version</version_command> <command detect_errors="exit_code"> <![CDATA[ #set $ref_file='' #if $db ln -sf '${db}' '${db.name}' && #set $ref_file = $db.name #end if #if $primers['seqtype'] == 'contig' #set $forward_name=$primers.input.forward.name.rsplit('.', 1)[0] #set $reverse_name=$primers.input.reverse.name.rsplit('.', 1)[0] ln -sf '${$primers.input['forward']}' '${forward_name}_forward.${primers.input.forward.ext}' && ln -sf '${$primers.input['reverse']}' '${reverse_name}_reverse.${primers.input.reverse.ext}' && cryptogenotyper -i '.' -m '$marker' -t '$primers.seqtype' -f 'forward' -r 'reverse' #if $db --databasefile $ref_file #end if #else #set $filename_no_ext=$primers.input.name.rsplit('.', 1)[0] ln -sf '${primers.input}' '${filename_no_ext}.${primers.input.ext}' && cryptogenotyper -i './${primers.input.name}' -m '$marker' -t '$primers.seqtype' #if $db --databasefile $ref_file #end if #end if $outputheader -o 'result' ]]> </command> <inputs> <param name="marker" type="select" label="Marker"> <option value="18S">SSU rRNA (18S)</option> <option value="gp60">gp60</option> </param> <param name="db" type="data" optional="true" format="fasta" label="Reference Database File (optional):"/> <conditional name="primers"> <param name="seqtype" type="select" label="Type of Sequences"> <option value="forward" selected="true">Forward Only</option> <option value="reverse">Reverse Only</option> <option value="contig">Contig</option> </param> <when value="contig"> <param name="input" type="data_collection" collection_type="paired" format="ab1,fasta" label="Paired Sequencing File(s)"/> </when> <when value="forward"> <param name="input" type="data" format="ab1,fasta" label="Forward Sequencing File(s)"/> </when> <when value="reverse"> <param name="input" type="data" format="ab1,fasta" label="Reverse Sequencing File(s)"/> </when> </conditional> <param name="show_log" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Output run log?"></param> <param name="outputheader" type="boolean" truevalue="" falsevalue="--noheaderline" checked="true" label="Output header line in the report?"> </param> </inputs> <outputs> <!-- For single files (forward/reverse mode) --> <data name="outfile_single" format="fasta" from_work_dir="result_cryptogenotyper_report.fa" label="${tool.name} ${marker} extracted fasta from ${primers.input.name.split('.')[0]}"> <filter>primers['seqtype'] != 'contig'</filter> </data> <!-- For collections (contig mode) --> <data name="outfile_collection" format="fasta" from_work_dir="result_cryptogenotyper_report.fa" label="${tool.name} ${marker} extracted fastas"> <filter>primers['seqtype'] == 'contig'</filter> </data> <!-- For single files (forward/reverse mode) --> <data name="outfile_report_single" format="tabular" from_work_dir="result_cryptogenotyper_report.txt" label="${tool.name} ${marker} REPORT on ${primers.input.name.split('.')[0]}"> <filter>primers['seqtype'] != 'contig'</filter> </data> <!-- For collections (contig mode) --> <data name="outfile_report_collection" format="tabular" from_work_dir="result_cryptogenotyper_report.txt" label="${tool.name} ${marker} REPORTS"> <filter>primers['seqtype'] == 'contig'</filter> </data> <!-- For single files (forward/reverse mode) --> <data name="outfile_log_single" format="txt" from_work_dir="cryptogenotyper.log" label="${tool.name} Run ${marker} log on ${primers.input.name.split('.')[0]}"> <filter>show_log and primers['seqtype'] != 'contig'</filter> </data> <!-- For collections (contig mode) --> <data name="outfile_log_collection" format="txt" from_work_dir="cryptogenotyper.log" label="${tool.name} ${marker} logs"> <filter>show_log and primers['seqtype'] == 'contig'</filter> </data> </outputs> <tests> <!--TEST 1--> <test expect_num_outputs="2"> <param name="marker" value="18S"/> <conditional name="primers"> <param name="seqtype" value="forward"/> <param name="input" value="P17705_Crypto16-2F-20170927_SSUF_G12_084.ab1"/> </conditional> <output name="outfile_report_single" ftype="tabular"> <assert_contents> <has_text_matching expression="C.parvum"/> </assert_contents> </output> </test> <!--TEST 2 --> <test expect_num_outputs="2"> <param name="marker" value="gp60"/> <conditional name="primers"> <param name="seqtype" value="forward"/> <param name="input" value="P17705_gp60-Crypt14-1F-20170927_gp60F_G07_051.ab1"/> </conditional> <output name="outfile_report_single" ftype="tabular" > <assert_contents> <has_text_matching expression="C.parvum"/> </assert_contents> </output> </test> <!--TEST 3:Paired gp60 contig test --> <test expect_num_outputs="2"> <param name="marker" value="gp60"/> <param name="primers|seqtype" value="contig"/> <param name="primers|input"> <collection type="paired"> <element name="forward" value="P17705_gp60-Crypt14-1F-20170927_gp60F_G07_051.ab1"/> <element name="reverse" value="P17705_gp60-Crypt14-1R-20170927_gp60R_H07_049.ab1"/> </collection> </param> <output name="outfile_report_collection" ftype="tabular"> <assert_contents> <has_text_matching expression="C.parvum"/> <has_text_matching expression="IIaA15G2R1"/> </assert_contents> </output> </test> <!--TEST 4:Paired 18S contig test --> <test expect_num_outputs="2"> <param name="marker" value="18S"/> <param name="primers|seqtype" value="contig"/> <param name="primers|input"> <collection type="paired"> <element name="forward" value="P17705_Crypto16-2F-20170927_SSUF_G12_084.ab1"/> <element name="reverse" value="P17705_Crypto16-2R-20170927_SSUR_H12_082.ab1"/> </collection> </param> <output name="outfile_report_collection" ftype="tabular"> <assert_contents> <has_text_matching expression="C.parvum"/> <has_text_matching expression="Check for C. parvum TGA paralogs"/> </assert_contents> </output> </test> <!--TEST 5: 18S multi-fasta forward --> <test expect_num_outputs="2"> <param name="marker" value="18S"/> <param name="primers|seqtype" value="forward"/> <param name="primers|input" value="test_illumina_18S_F.fasta"/> <output name="outfile_report_single" ftype="tabular"> <assert_contents> <has_n_lines n="5"/> <has_text_matching expression="C.hominis"/> <has_text_matching expression="forward"/> </assert_contents> </output> </test> <!--TEST 6: 18S multi-fasta reverse --> <test expect_num_outputs="2"> <param name="marker" value="18S"/> <param name="primers|seqtype" value="reverse"/> <param name="primers|input" value="test_illumina_18S_R.fasta"/> <output name="outfile_report_single" ftype="tabular"> <assert_contents> <has_n_lines n="5"/> <has_text_matching expression="C.hominis"/> <has_text_matching expression="reverse"/> </assert_contents> </output> </test> <!--TEST 7: 18S multi-fasta contig --> <test expect_num_outputs="2"> <param name="marker" value="18S"/> <param name="primers|seqtype" value="contig"/> <param name="primers|input"> <collection type="paired"> <element name="forward" value="test_illumina_18S_F.fasta"/> <element name="reverse" value="test_illumina_18S_R.fasta"/> </collection> </param> <output name="outfile_report_collection" ftype="tabular"> <assert_contents> <has_text_matching expression="C.hominis"/> <has_text_matching expression="contig"/> </assert_contents> </output> </test> <!--TEST 8: gp60 multi-fasta forward --> <test expect_num_outputs="2"> <param name="marker" value="gp60"/> <param name="primers|seqtype" value="forward"/> <param name="primers|input" value="test_illumina_gp60_F1.fasta"/> <output name="outfile_report_single" ftype="tabular"> <assert_contents> <has_n_lines n="3"/> <has_text_matching expression="C.parvum"/> <has_text_matching expression="forward"/> <has_text_matching expression="IIaA16G3R1"/> <has_text_matching expression="IIaA15G2R2"/> </assert_contents> </output> </test> <!--TEST 9: gp60 multi-fasta reverse --> <test expect_num_outputs="2"> <param name="marker" value="gp60"/> <param name="primers|seqtype" value="reverse"/> <param name="primers|input" value="test_illumina_gp60_R1.fasta"/> <output name="outfile_report_single" ftype="tabular"> <assert_contents> <has_n_lines n="3"/> <has_text_matching expression="C.parvum"/> <has_text_matching expression="reverse"/> <has_text_matching expression="IIaA3R1"/> <has_text_matching expression="IIaA3R1"/> </assert_contents> </output> </test> <!--TEST 10: gp60 multi-fasta reverse --> <test expect_num_outputs="3"> <param name="marker" value="gp60"/> <param name="primers|seqtype" value="contig"/> <param name="show_log" value="true"/> <param name="primers|input"> <collection type="paired"> <element name="forward" value="test_illumina_gp60_F1.fasta"/> <element name="reverse" value="test_illumina_gp60_R1.fasta"/> </collection> </param> <output name="outfile_report_collection" ftype="tabular"> <assert_contents> <has_text_matching expression="C.parvum"/> <has_text_matching expression="contig"/> <has_text_matching expression="IIaA16G3R1"/> <has_text_matching expression="IIaA15G2R2"/> </assert_contents> </output> </test> </tests> <help> **Syntax** CryptoGenotyper is a standalone tool to *in-silico* determine species and subtype based on SSU rRNA (18S) and gp60 markers. **❗ Important:** To process **multiple input files** and generate **a single** combined report, please import and use the workflows available `here`_. .. _here: https://github.com/phac-nml/CryptoGenotyper/tree/main/CryptoGenotyper/GalaxyWorkflows For a tutorial on how to use CryptoGenotyper, please refer to the `official tutorial`_. For more information, please visit https://github.com/phac-nml/CryptoGenotyper. .. _official tutorial: https://github.com/phac-nml/CryptoGenotyper/blob/docs/docs/CryptoGenotyperTutorial-CrownCopyright.pdf ----- **Input:** AB1 or FASTA file(s) representing Cryptosporidium's SSU rRNA (18S) or gp60 locus can be provided as single-end reads (either forward or reverse only) or as paired-end reads in contig mode (both a forward and a reverse read for each sample). Optional: A custom reference database of SSU rRNA or gp60 locus in .fasta file format, to be used during the homology search for *Cryptosporidium* classification. **Output:** A tabular report and a FASTA file containing the identification of the *Cryptosporidium* species/subtype and its corresponding sequence for each sample along with other relevant details. The gp60 subtyping is based on the `Deciphering a cryptic minefield: a guide to Cryptosporidium gp60 subtyping publication`_. .. _`Deciphering a cryptic minefield: a guide to Cryptosporidium gp60 subtyping publication`: https://doi.org/10.1016/j.crpvbd.2025.100257 </help> <citations> <citation type="bibtex"> @ARTICLE{githubCryptoGenotyper, author = {Yanta, Christine A. and Bessonov, Kyrylo and Robinson, Guy and Troell, Karin and Guy, Rebecca A.}, title = {CryptoGenotyper: a new bioinformatics tool to enhance Cryptosporidium identification}, journal = {Food and waterborne parasitology}, year = {2021}, volume = {23}, url = {https://doi.org/10.1016/j.fawpar.2021.e00115} }</citation> <citation type="bibtex"> @ARTICLE{RobinsonGp60, author = {Robinson, Gillian and Chalmers, Rachel M. and Elwin, Kirsty and Guy, Richard A. and Bessonov, Konstantin and Troell, Kristina and Xiao, Lihua}, title = {Deciphering a cryptic minefield: A guide to Cryptosporidium gp60 subtyping}, journal = {Current Research in Parasitology and Vector-Borne Diseases}, year = {2025}, volume = {7}, url = {https://doi.org/10.1016/j.crpvbd.2025.100257} } }</citation> </citations> </tool>
