comparison gem_knockout.xml @ 0:098cb458609f draft default tip

planemo upload for repository https://github.com/AlmaasLab/elixir-galaxy-tools-systemsbiology commit 3f7bec1264a86e1488ee1315dbac0f44675f5171
author iuc
date Fri, 13 Dec 2024 21:31:47 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:098cb458609f
1 <tool id="gem_knockout" name="Gene knockout analysis" version="@VERSION@" profile="@PROFILE@">
2 <description>
3 on a GEM
4 </description>
5 <macros>
6 <import>gem_macros.xml</import>
7 </macros>
8 <expand macro="requirements"/>
9 <expand macro="version_command_cobra"/>
10 <command>
11 python '$__tool_directory__/gem_knockout.py'
12 --cb_model_location '${cb_model_location}'
13 --output '${output}'
14 --knockout_type '${knockout_type}'
15 #if $gene_knockouts:
16 --gene_knockouts '${gene_knockouts}'
17 #end if
18 #if $uptake_constraints_file:
19 --uptake_constraints_file '${uptake_constraints_file}'
20 #end if
21 </command>
22 <inputs>
23 <expand macro="input_model"/>
24 <param name="knockout_type" type="select" label="Type of knockout analysis">
25 <option value="single">Single gene knockouts</option>
26 <option value="double">Double gene knockouts</option>
27 </param>
28 <param name="gene_knockouts" type="text" optional="true" label="Specific genes to knockout (comma-separated)" help="Leave empty to analyze all genes">
29 <validator type="regex" message="Genes must be comma-separated, alphanumeric, and underscore characters only">^([a-zA-Z0-9_]+,?)+$</validator>
30 </param>
31 <expand macro="input_uptake_constraints"/>
32 </inputs>
33 <outputs>
34 <expand macro="output"/>
35 </outputs>
36 <tests>
37 <!-- Test 1: Single gene knockout analysis -->
38 <test>
39 <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
40 <param name="knockout_type" value="single"/>
41 <output name="output" file="expected_single_knockout.csv"/>
42 </test>
43 <!-- Test 2: Single gene knockout analysis with specific genes -->
44 <test>
45 <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
46 <param name="knockout_type" value="single"/>
47 <param name="gene_knockouts" value="b0351,b2296"/>
48 <output name="output">
49 <assert_contents>
50 <has_line line="reaction_id;ko_gene_id_1;ko_gene_id_2;reaction;wildtype_flux;knockout_flux"/>
51 </assert_contents>
52 </output>
53 </test>
54 <!-- Test 3: Double gene knockout analysis -->
55 <test>
56 <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
57 <param name="knockout_type" value="double"/>
58 <param name="gene_knockouts" value="b0351,b2296,b1849"/>
59 <output name="output">
60 <assert_contents>
61 <has_line line="reaction_id;ko_gene_id_1;ko_gene_id_2;reaction;wildtype_flux;knockout_flux"/>
62 </assert_contents>
63 </output>
64 </test>
65 <!-- Test 4: Single gene knockout analysis with uptake constraints -->
66 <test>
67 <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
68 <param name="knockout_type" value="single"/>
69 <param name="uptake_constraints_file" value="textbook_model_cobrapy_exchange.csv"/>
70 <output name="output">
71 <assert_contents>
72 <has_line line="reaction_id;ko_gene_id_1;ko_gene_id_2;reaction;wildtype_flux;knockout_flux"/>
73 </assert_contents>
74 </output>
75 </test>
76 <!-- Test 5: Double gene knockout analysis with invalid model file -->
77 <test expect_failure="true">
78 <param name="cb_model_location" value="invalid_format.txt"/>
79 <assert_stderr>
80 <has_text text="The model could not be read"/>
81 </assert_stderr>
82 </test>
83 <!-- Test 5: Double gene knockout analysis with invalid gene names -->
84 <test expect_failure="true">
85 <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
86 <param name="knockout_type" value="double"/>
87 <param name="gene_knockouts" value="abc,123"/>
88 <assert_stderr>
89 <has_text text="One or more of the genes to knockout are not present in the model"/>
90 </assert_stderr>
91 </test>
92 </tests>
93 <help><![CDATA[
94 Gene Knockout Analysis
95
96 This tool performs single or double gene knockout analysis on a Genome-scale Metabolic Model (GEM) using Flux Balance Analysis (FBA).
97
98 Input Parameters
99
100 **Model File**: A GEM in SBML format (.xml) that will be analyzed.
101
102 **Knockout Type**: Choose between:
103 - Single gene knockouts: Analyze the effect of removing one gene at a time
104 - Double gene knockouts: Analyze the effect of removing pairs of genes
105
106 **Genes to Knockout** (optional): Specify particular genes to analyze. If left empty, all genes in the model will be analyzed.
107
108 **Uptake Constraints File** (optional): A CSV file specifying constraints for exchange reactions.
109
110 Output
111
112 The tool generates a CSV file containing:
113 - Reaction IDs
114 - Knocked out gene(s)
115 - Reaction formulas
116 - Wildtype flux values
117 - Knockout flux values
118
119 Common Issues
120
121 - Ensure your model is well-formatted
122 - Verify that specified genes exist in the model
123 - Large models may require significant computation time, especially for double knockouts
124 ]]></help>
125 <citations>
126 <expand macro="citation_cobrapy"/>
127 </citations>
128 </tool>