Mercurial > repos > tduigou > sculpt_sequences
diff sculpt_sequences.xml @ 1:a0cd867780ec draft default tip
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/Examples/blob/master/templates/template1.ipynb commit 6b6ce806b5d016b3c7f20318180eff2dbe64395a-dirty
| author | tduigou |
|---|---|
| date | Thu, 17 Jul 2025 13:24:49 +0000 |
| parents | 0c7f75a2338b |
| children |
line wrap: on
line diff
--- a/sculpt_sequences.xml Mon Jul 07 13:11:42 2025 +0000 +++ b/sculpt_sequences.xml Thu Jul 17 13:24:49 2025 +0000 @@ -18,14 +18,24 @@ <requirement type="package" version="3.1.5">dna_features_viewer</requirement> </requirements> <command detect_errors="exit_code"><![CDATA[ - #set avoid_list = [line.strip() for line in str($avoid_patterns).strip().split('\n') if line.strip()] - #set avoid_patterns = ','.join($avoid_list) + #if str($json_use.use_json_param) == "false": + #set avoid_list = [line.strip() for line in str($avoid_patterns).strip().split('\n') if line.strip()] + #set avoid_patterns = ','.join($avoid_list) + + #set hairpin_lines = [line.strip() for line in str($json_use.hairpin_constraints).strip().split('\n') if line.strip()] + #set hairpin_constraints = '__cn__'.join($hairpin_lines) - #set hairpin_lines = [line.strip() for line in str($adv.hairpin_constraints).strip().split('\n') if line.strip()] - #set hairpin_constraints = '__cn__'.join($hairpin_lines) + #set gc_lines = [line.strip() for line in str($json_use.gc_constraints).strip().split('\n') if line.strip()] + #set gc_constraints = '__cn__'.join($gc_lines) + + #set kmer_size = $json_use.kmer_size - #set gc_lines = [line.strip() for line in str($adv.gc_constraints).strip().split('\n') if line.strip()] - #set gc_constraints = '__cn__'.join($gc_lines) + #else: + #set avoid_patterns = '' + #set hairpin_constraints = '' + #set gc_constraints = '' + #set kmer_size = '' + #end if #set genbank_file_paths = ','.join([str(f) for f in $genbank_files]) #set $file_name_mapping = ",".join(["%s:%s" % (file.file_name, file.name) for file in $genbank_files]) @@ -33,30 +43,42 @@ mkdir 'outdir_scul' && mkdir 'outdir_unscul' && python '$__tool_directory__/sculpt_sequences.py' + --use_json_param '$json_use.use_json_param' --files_to_sculpt '$genbank_file_paths' --file_name_mapping '$file_name_mapping' --outdir_scul 'outdir_scul' --outdir_unscul 'outdir_unscul' - --use_file_names_as_id '$adv.use_file_names_as_ids' + --use_file_names_as_id '$use_file_names_as_ids' --avoid_patterns '$avoid_patterns' - --gc_constraints '$adv.gc_constraints' - --DnaOptimizationProblemClass '$DnaOptimizationProblemClass' - --kmer_size '$adv.kmer_size' - --hairpin_constraints '$adv.hairpin_constraints' + --gc_constraints '$gc_constraints' + --kmer_size '$kmer_size' + --hairpin_constraints '$hairpin_constraints' + #if $json_use.use_json_param: + --json_params '$json_use.json_params' + #else: + --json_params '' + --DnaOptimizationProblemClass '$json_use.DnaOptimizationProblemClass' + #end if ]]></command> <inputs> <param name="genbank_files" type="data_collection" collection_type="list" format="genbank" label="GenBank File(s)"/> - <param name="DnaOptimizationProblemClass" type="select" label="DnaOptimizationProblem Calss" help="select the assambly class"> - <option value="DnaOptimizationProblem" selected="True">DnaOptimizationProblem</option> - <option value="CircularDnaOptimizationProblem">CircularDnaOptimizationProblem</option> - </param> - <param name="avoid_patterns" type="text" area="true" label="Pattern to Avoid" helps="Each pattern on a line" /> - <section name="adv" title="Advanced Options" expanded="false"> - <param name="hairpin_constraints" type="text" area="true" label="Hairpins Constraints" optional="true" help="e.g. (you can add others Hairpins Constraints on a new line): stem_size=20, hairpin_window=200"/> - <param name="gc_constraints" type="text" area="true" label="Enforce GC Content Constraints" optional="true" help="e.g. (you can add others Enforce GC Content Constraints on a new line): mini=0.3, maxi=0.7, window=100"/> - <param name="kmer_size" type="integer" label="K-mer Uniqueness Size" value="" optional="true" help="e.g.: 15"/> - <param name="use_file_names_as_ids" type="boolean" checked="True" label="Use File Names As Sequence IDs" /> - </section> + <conditional name='json_use'> + <param name="use_json_param" type="boolean" checked="false" label="Use parameter from a JSON file" /> + <when value="false"> + <param name="DnaOptimizationProblemClass" type="select" label="DnaOptimizationProblem Calss" help="select the assambly class"> + <option value="DnaOptimizationProblem" selected="True">DnaOptimizationProblem</option> + <option value="CircularDnaOptimizationProblem">CircularDnaOptimizationProblem</option> + </param> + <param name="avoid_patterns" type="text" area="true" label="Avoid Pattern Constraints" help="Each pattern on a line" /> + <param name="hairpin_constraints" type="text" area="true" label="Hairpins Constraints" optional="true" help="e.g. (you can add others Hairpins Constraints on a new line): stem_size=20, hairpin_window=200"/> + <param name="gc_constraints" type="text" area="true" label="Enforce GC Content Constraints" optional="true" help="e.g. (you can add others Enforce GC Content Constraints on a new line): mini=0.3, maxi=0.7, window=100"/> + <param name="kmer_size" type="integer" label="K-mer Uniqueness Size" value="" optional="true" help="e.g.: 15"/> + </when> + <when value="true"> + <param name="json_params" type="data" format="json" optional="true" label="JSON parameters file" help="Contains tool's parameters" /> + </when> + </conditional> + <param name="use_file_names_as_ids" type="boolean" checked="True" label="Use File Names As Sequence IDs" /> </inputs> <outputs> <collection name="scul" type="list" label="scul group" > @@ -68,7 +90,7 @@ </outputs> <tests> <test> - <!-- test for DnaOptimizationProblem --> + <!-- test for DnaOptimizationProblem --> <param name="genbank_files"> <collection type="list"> <element name="p15_PuroR" value="10_emma_genbanks/p15_PuroR.gb" /> @@ -83,23 +105,26 @@ <element name="HC_Amp_ccdB" value="10_emma_genbanks/HC_Amp_ccdB.gb" /> </collection> </param> - <param name="DnaOptimizationProblemClass" value="DnaOptimizationProblem" /> - <param name="adv|use_file_names_as_ids" value="True" /> - <!-- AvoidPatterns --> - <param name="avoid_patterns" value="BsaI_site - NotI_site - XbaI_site - ClaI_site - 8x1mer" /> - <!-- EnforceGCContent --> - <param name="adv|gc_constraints" value="mini=0.1, maxi=0.9, window=50"/> + <conditional name="json_use"> + <param name="use_json_param" value="false" /> + <param name="DnaOptimizationProblemClass" value="DnaOptimizationProblem" /> + <!-- AvoidPatterns --> + <param name="avoid_patterns" value="BsaI_site + NotI_site + XbaI_site + ClaI_site + 8x1mer" /> + <!-- EnforceGCContent --> + <param name="gc_constraints" value="mini=0.1, maxi=0.9, window=50"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output_collection name="scul" count="10"> </output_collection> <output_collection name="unscul" count="10"> </output_collection> </test> <test> - <!-- test for CircularDnaOptimizationProblem --> + <!-- test for CircularDnaOptimizationProblem --> <param name="genbank_files"> <collection type="list"> <element name="p15_PuroR" value="10_emma_genbanks/p15_PuroR.gb" /> @@ -114,19 +139,48 @@ <element name="HC_Amp_ccdB" value="10_emma_genbanks/HC_Amp_ccdB.gb" /> </collection> </param> - <param name="DnaOptimizationProblemClass" value="CircularDnaOptimizationProblem" /> - <param name="adv|use_file_names_as_ids" value="True" /> - <!-- AvoidPatterns --> - <param name="avoid_patterns" value="BsaI_site - NotI_site - XbaI_site - ClaI_site - 8x1mer" /> - <!-- EnforceGCContent --> - <param name="adv|gc_constraints" value="mini=0.1, maxi=0.9 - mini-0.3, maxi=0.7, window=50"/> - <param name="adv|hairpin_constraints" value="stem_size=20, hairpin_window=200 - stem_size=10, hairpin_window=100"/> + <conditional name="json_use"> + <param name="use_json_param" value="false" /> + <param name="DnaOptimizationProblemClass" value="CircularDnaOptimizationProblem" /> + <!-- AvoidPatterns --> + <param name="avoid_patterns" value="BsaI_site + NotI_site + XbaI_site + ClaI_site + 8x1mer" /> + <!-- EnforceGCContent --> + <param name="gc_constraints" value="mini=0.1, maxi=0.9 + mini=0.3, maxi=0.7, window=50"/> + <param name="hairpin_constraints" value="stem_size=20, hairpin_window=200 + stem_size=10, hairpin_window=100"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> + <output_collection name="scul" count="10"> + </output_collection> + <output_collection name="unscul" count="10"> + </output_collection> + </test> + <test> + <!-- test json params --> + <param name="genbank_files"> + <collection type="list"> + <element name="p15_PuroR" value="10_emma_genbanks/p15_PuroR.gb" /> + <element name="p9_PuroR" value="10_emma_genbanks/p9_PuroR.gb" /> + <element name="p15_Pup9_mTagBFP2roR" value="10_emma_genbanks/p9_mTagBFP2.gb" /> + <element name="p15_p9_BSDRPuroR" value="10_emma_genbanks/p9_BSDR.gb" /> + <element name="p8_Linker1" value="10_emma_genbanks/p8_Linker1.gb" /> + <element name="p7_L7Ae-Weiss" value="10_emma_genbanks/p7_L7Ae-Weiss.gb" /> + <element name="p6_Nt-IgKLsequence" value="10_emma_genbanks/p6_Nt-IgKLsequence.gb" /> + <element name="p6_Kozak-ATG" value="10_emma_genbanks/p6_Kozak-ATG.gb" /> + <element name="p4_Kt-L7Ae-Weiss" value="10_emma_genbanks/p4_Kt-L7Ae-Weiss.gb" /> + <element name="HC_Amp_ccdB" value="10_emma_genbanks/HC_Amp_ccdB.gb" /> + </collection> + </param> + <conditional name="json_use"> + <param name="use_json_param" value="true" /> + <param name="json_params" value="test_json_workflow2.json" /> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output_collection name="scul" count="10"> </output_collection> <output_collection name="unscul" count="10"> @@ -142,6 +196,9 @@ **Parameters**: --------------- * **GenBank File(s)**: List of GenBank files to be processed. +* **Use parameter from a JSON file**: + Yes/No parameter to indicate if user want to set parameter manually or using a json file + If Yes, user should provide a JSON file contains all parameters * **DnaOptimizationProblem Class**: - "DnaOptimizationProblem": is the class to define and solve an optimization problems. Its methods implement all the solver logics. - "CircularDnaOptimizationProblem": is a variant of DnaOptimizationProblem whose optimization algorithm assumes that the sequence is circular.
