Mercurial > repos > bgruening > flexynesis_plot
comparison flexynesis_plot.xml @ 3:52b6f2ac38c7 draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/flexynesis commit 6b520305ec30e6dc37eba92c67a5368cea0fc5ad
author | bgruening |
---|---|
date | Wed, 23 Jul 2025 07:49:52 +0000 |
parents | 3c5d82bf6e8a |
children |
comparison
equal
deleted
inserted
replaced
2:3c5d82bf6e8a | 3:52b6f2ac38c7 |
---|---|
8 <include path="flexynesis_plot.py" /> | 8 <include path="flexynesis_plot.py" /> |
9 </required_files> | 9 </required_files> |
10 <command detect_errors="exit_code"><![CDATA[ | 10 <command detect_errors="exit_code"><![CDATA[ |
11 @CHECK_NON_COMMERCIAL_USE@ | 11 @CHECK_NON_COMMERCIAL_USE@ |
12 mkdir -p inputs/ plots/ && | 12 mkdir -p inputs/ plots/ && |
13 ln -s '$plot_conditional.labels' 'inputs/$plot_conditional.labels.element_identifier.$plot_conditional.labels.ext' && | 13 #if str($plot_conditional.plot_type) != 'cox_plot': |
14 ln -s '$plot_conditional.labels' inputs/labels.tabular && | |
15 #end if | |
14 #if $plot_conditional.plot_type == "dimred": | 16 #if $plot_conditional.plot_type == "dimred": |
15 ln -s '$plot_conditional.embeddings' 'inputs/$plot_conditional.embeddings.element_identifier.$plot_conditional.embeddings.ext' && | 17 ln -s '$plot_conditional.embeddings' inputs/embeddings.tabular && |
16 #end if | 18 #end if |
17 cat '$flexynesis_plot_config' && | 19 #if $plot_conditional.plot_type == "km_plot": |
18 python '$flexynesis_plot_config' | 20 ln -s '$plot_conditional.survival_data' inputs/survival_data.tabular && |
21 survival_event=`'$__tool_directory__/index_to_name.py' inputs/survival_data.tabular $plot_conditional.surv_event_var` && | |
22 ## check if survival variable is numerical | |
23 echo "Survival event variable: \$survival_event" && | |
24 python '$__tool_directory__/flexynesis_utils.py' --util validate_survival --clin inputs/survival_data.tabular --clin_variable \$survival_event && | |
25 survival_time=`'$__tool_directory__/index_to_name.py' inputs/survival_data.tabular $plot_conditional.surv_time_var` && | |
26 echo "Survival time variable: \$survival_time" && | |
27 #end if | |
28 #if $plot_conditional.plot_type == "cox_plot": | |
29 ln -s '$plot_conditional.important_features' inputs/important_features.tabular && | |
30 ln -s '$plot_conditional.clinical_train' inputs/clinical_train.tabular && | |
31 ln -s '$plot_conditional.clinical_test' inputs/clinical_test.tabular && | |
32 ln -s '$plot_conditional.omics_train' inputs/omics_train.tabular && | |
33 ln -s '$plot_conditional.omics_test' inputs/omics_test.tabular && | |
34 survival_event=`'$__tool_directory__/index_to_name.py' inputs/clinical_train.tabular $plot_conditional.surv_event_var` && | |
35 ## check if survival variable is numerical | |
36 echo "Survival event variable: \$survival_event" && | |
37 python '$__tool_directory__/flexynesis_utils.py' --util validate_survival --clin inputs/clinical_train.tabular --clin_variable \$survival_event && | |
38 survival_time=`'$__tool_directory__/index_to_name.py' inputs/clinical_train.tabular $plot_conditional.surv_time_var` && | |
39 echo "Survival time variable: \$survival_time" && | |
40 #if str($plot_conditional.clinical_variables) != 'None': | |
41 covars=`'$__tool_directory__/index_to_name.py' inputs/clinical_train.tabular $plot_conditional.clinical_variables` && | |
42 ## check if survival variable is numerical | |
43 echo "Clinical variables: \$covars" && | |
44 python '$__tool_directory__/flexynesis_utils.py' --util validate_covariate --clin inputs/clinical_train.tabular --clin_variable \$covars && | |
45 #end if | |
46 #end if | |
47 #if $plot_conditional.plot_type == "dimred": | |
48 ## set target variables | |
49 color_col=`'$__tool_directory__/index_to_name.py' inputs/labels.tabular $plot_conditional.color` && | |
50 echo "Color: \$color_col" && | |
51 python '$__tool_directory__/flexynesis_plot.py' | |
52 --plot_type dimred | |
53 --embeddings inputs/embeddings.tabular | |
54 --labels inputs/labels.tabular | |
55 --method $plot_conditional.method | |
56 --color \$color_col | |
57 --output_dir plots | |
58 --format $plot_conditional.format | |
59 --dpi $plot_conditional.dpi | |
60 | |
61 #else if $plot_conditional.plot_type == "scatter": | |
62 #if $plot_conditional.true_label and $plot_conditional.predicted_label: | |
63 true_label_col=`'$__tool_directory__/index_to_name.py' inputs/labels.tabular $plot_conditional.true_label` && | |
64 echo "True label: \$true_label_col" && | |
65 python '$__tool_directory__/flexynesis_utils.py' --util validate_covariate --clin inputs/labels.tabular --clin_variable \$true_label_col && | |
66 | |
67 predicted_label_col=`'$__tool_directory__/index_to_name.py' inputs/labels.tabular $plot_conditional.predicted_label` && | |
68 echo "Predicted label: \$predicted_label_col" && | |
69 python '$__tool_directory__/flexynesis_utils.py' --util validate_covariate --clin inputs/labels.tabular --clin_variable \$predicted_label_col && | |
70 #end if | |
71 python '$__tool_directory__/flexynesis_plot.py' | |
72 --plot_type scatter | |
73 --labels inputs/labels.tabular | |
74 #if $plot_conditional.true_label and $plot_conditional.predicted_label: | |
75 --true_label \$true_label_col | |
76 --predicted_label \$predicted_label_col | |
77 #end if | |
78 --output_dir plots | |
79 --format $plot_conditional.format | |
80 --dpi $plot_conditional.dpi | |
81 #else if $plot_conditional.plot_type == "concordance_heatmap": | |
82 #if $plot_conditional.true_label and $plot_conditional.predicted_label: | |
83 true_label_col=`'$__tool_directory__/index_to_name.py' inputs/labels.tabular $plot_conditional.true_label` && | |
84 predicted_label_col=`'$__tool_directory__/index_to_name.py' inputs/labels.tabular $plot_conditional.predicted_label` && | |
85 echo "True label: \$true_label_col" && | |
86 echo "Predicted label: \$predicted_label_col" && | |
87 #end if | |
88 python '$__tool_directory__/flexynesis_plot.py' | |
89 --plot_type concordance_heatmap | |
90 --labels inputs/labels.tabular | |
91 #if $plot_conditional.true_label and $plot_conditional.predicted_label: | |
92 --true_label \$true_label_col | |
93 --predicted_label \$predicted_label_col | |
94 #end if | |
95 --output_dir plots | |
96 --format $plot_conditional.format | |
97 --dpi $plot_conditional.dpi | |
98 #else if $plot_conditional.plot_type == "pr_curve": | |
99 python '$__tool_directory__/flexynesis_plot.py' | |
100 --plot_type pr_curve | |
101 --labels inputs/labels.tabular | |
102 --output_dir plots | |
103 --format $plot_conditional.format | |
104 --dpi $plot_conditional.dpi | |
105 #else if $plot_conditional.plot_type == "roc_curve": | |
106 python '$__tool_directory__/flexynesis_plot.py' | |
107 --plot_type roc_curve | |
108 --labels inputs/labels.tabular | |
109 --output_dir plots | |
110 --format $plot_conditional.format | |
111 --dpi $plot_conditional.dpi | |
112 #else if $plot_conditional.plot_type == "box_plot": | |
113 python '$__tool_directory__/flexynesis_plot.py' | |
114 --plot_type box_plot | |
115 --labels inputs/labels.tabular | |
116 --output_dir plots | |
117 --format $plot_conditional.format | |
118 --dpi $plot_conditional.dpi | |
119 #else if $plot_conditional.plot_type == "km_plot": | |
120 python '$__tool_directory__/flexynesis_plot.py' | |
121 --plot_type kaplan_meier | |
122 --labels inputs/labels.tabular | |
123 --survival_data inputs/survival_data.tabular | |
124 --surv_event_var \$survival_event | |
125 --surv_time_var \$survival_time | |
126 --output_dir plots | |
127 --format $plot_conditional.format | |
128 --dpi $plot_conditional.dpi | |
129 #else if $plot_conditional.plot_type == "cox_plot": | |
130 python '$__tool_directory__/flexynesis_plot.py' | |
131 --plot_type cox | |
132 --important_features inputs/important_features.tabular | |
133 --clinical_train inputs/clinical_train.tabular | |
134 --clinical_test inputs/clinical_test.tabular | |
135 --omics_train inputs/omics_train.tabular | |
136 --omics_test inputs/omics_test.tabular | |
137 --layer '$plot_conditional.layer' | |
138 --surv_time_var \$survival_time | |
139 --surv_event_var \$survival_event | |
140 #if str($plot_conditional.clinical_variables) != 'None': | |
141 --clinical_variables \$covars | |
142 #end if | |
143 --top_features $plot_conditional.top_features | |
144 #if str($plot_conditional.crossval_conditional.crossval) == 'yes': | |
145 --crossval | |
146 #end if | |
147 #if str($plot_conditional.crossval_conditional.crossval) == 'yes': | |
148 --n_splits $plot_conditional.crossval_conditional.n_splits | |
149 #end if | |
150 --random_state 42 | |
151 --output_dir plots | |
152 --format $plot_conditional.format | |
153 --dpi $plot_conditional.dpi | |
154 #end if | |
19 ]]></command> | 155 ]]></command> |
20 <configfiles> | |
21 <configfile name="flexynesis_plot_config"><![CDATA[ | |
22 import sys | |
23 sys.path.append('$__tool_directory__/') | |
24 | |
25 import matplotlib.pyplot as plt | |
26 import numpy as np | |
27 import pandas as pd | |
28 import seaborn as sns | |
29 import torch | |
30 from flexynesis import ( | |
31 get_important_features, | |
32 plot_dim_reduced, | |
33 plot_hazard_ratios, | |
34 plot_kaplan_meier_curves, | |
35 plot_pr_curves, | |
36 plot_roc_curves, | |
37 plot_scatter | |
38 ) | |
39 from scipy.stats import kruskal, mannwhitneyu | |
40 from flexynesis_plot import ( | |
41 plot_label_concordance_heatmap, | |
42 plot_boxplot, | |
43 detect_color_type, | |
44 load_labels, | |
45 load_embeddings, | |
46 match_samples_to_embeddings | |
47 ) | |
48 #if $plot_conditional.plot_type == "dimred": | |
49 @PLOT_COMMON_CONFIG@ | |
50 embeddings, sample_names = load_embeddings('inputs/$plot_conditional.embeddings.element_identifier.$plot_conditional.embeddings.ext') | |
51 matched_labels = match_samples_to_embeddings(sample_names, label_data) | |
52 | |
53 label = matched_labels.columns[$plot_conditional.label-1] | |
54 color_type = detect_color_type(matched_labels[label]) | |
55 | |
56 fig = plot_dim_reduced( | |
57 matrix=embeddings, | |
58 labels=matched_labels[label], | |
59 method='$plot_conditional.method', | |
60 color_type=color_type | |
61 ) | |
62 output_path = "plots/{label}_${plot_conditional.method}.${plot_conditional.format}" | |
63 fig.save(output_path, dpi=$plot_conditional.dpi, bbox_inches='tight') | |
64 #else if $plot_conditional.plot_type == "scatter": | |
65 @PLOT_COMMON_CONFIG@ | |
66 | |
67 true_label = label_data.columns[$plot_conditional.true_label-1] | |
68 predicted_label = label_data.columns[$plot_conditional.predicted_label-1] | |
69 true_values = pd.to_numeric(label_data[true_label], errors='coerce') | |
70 predicted_values = pd.to_numeric(label_data[predicted_label], errors='coerce') | |
71 | |
72 if true_values.isna().all() or predicted_values.isna().all(): | |
73 raise ValueError("No valid numeric values found for known or predicted labels") | |
74 | |
75 fig = plot_scatter(true_values, predicted_values) | |
76 | |
77 output_path = "plots/${plot_conditional.true_label}_${plot_conditional.predicted_label}_scatter.${plot_conditional.format}" | |
78 fig.save(output_path, dpi=$plot_conditional.dpi, bbox_inches='tight') | |
79 | |
80 #else if $plot_conditional.plot_type == "concordance_heatmap": | |
81 @PLOT_COMMON_CONFIG@ | |
82 | |
83 true_label = label_data.columns[$plot_conditional.true_label-1] | |
84 predicted_label = label_data.columns[$plot_conditional.predicted_label-1] | |
85 | |
86 true_values = label_data[true_label].tolist() | |
87 predicted_values = label_data[predicted_label].tolist() | |
88 fig = plot_label_concordance_heatmap(true_values, predicted_values) | |
89 plt.close(fig) | |
90 output_path = "plots/{true_label}_{predicted_label}_concordance_heatmap.${plot_conditional.format}" | |
91 fig.savefig(output_path, dpi=$plot_conditional.dpi, bbox_inches='tight') | |
92 | |
93 #else if $plot_conditional.plot_type == "pr_curve": | |
94 @PR_ROC_CONFIG@ | |
95 | |
96 fig = plot_pr_curves(y_true_np, y_probs_np) | |
97 | |
98 output_path = "plots/pr_curves.${plot_conditional.format}" | |
99 fig.save(output_path, dpi=$plot_conditional.dpi, bbox_inches='tight') | |
100 | |
101 #else if $plot_conditional.plot_type == "roc_curve": | |
102 @PR_ROC_CONFIG@ | |
103 fig = plot_roc_curves(y_true_np, y_probs_np) | |
104 output_path = "plots/roc_curves.${plot_conditional.format}" | |
105 fig.save(output_path, dpi=$plot_conditional.dpi, bbox_inches='tight') | |
106 | |
107 #else if $plot_conditional.plot_type == "box_plot": | |
108 @PR_ROC_BOX_CONFIG@ | |
109 # Remove rows with missing data | |
110 clean_data = label_data.dropna(subset=['known_label', 'probability']) | |
111 | |
112 if clean_data.empty: | |
113 raise ValueError(" No valid data after cleaning") | |
114 | |
115 # Get unique classes | |
116 classes = clean_data['class_label'].unique() | |
117 | |
118 for class_label in classes: | |
119 print(f" Generating box plot for class: {class_label}") | |
120 | |
121 # Filter for current class | |
122 class_data = clean_data[clean_data['class_label'] == class_label] | |
123 | |
124 # Create the box plot | |
125 fig = plot_boxplot( | |
126 categorical_x=class_data['known_label'], | |
127 numerical_y=class_data['probability'], | |
128 title_x='True Label', | |
129 title_y=f'Predicted Probability ({class_label})', | |
130 ) | |
131 | |
132 # Save the plot | |
133 safe_class_name = str(class_label).replace('/', '_').replace('\\', '_').replace(' ', '_').replace(':', '_') | |
134 plt.close(fig) | |
135 | |
136 output_path = f"plots/box_plot_{safe_class_name}.${plot_conditional.format}" | |
137 fig.savefig(output_path, dpi=$plot_conditional.dpi, bbox_inches='tight') | |
138 #end if | |
139 ]]></configfile> | |
140 </configfiles> | |
141 <inputs> | 156 <inputs> |
142 <expand macro="commercial_use_param"/> | 157 <expand macro="commercial_use_param"/> |
143 <conditional name="plot_conditional"> | 158 <conditional name="plot_conditional"> |
144 <param name="plot_type" type="select" label="Flexynesis plot"> | 159 <param name="plot_type" type="select" label="Flexynesis plot"> |
145 <option value="dimred">Dimensionality reduction</option> | 160 <option value="dimred">Dimensionality reduction</option> |
146 <option value="scatter">Scatter plot of known vs predicted labels</option> | 161 <option value="scatter">Scatter plot of known vs predicted labels</option> |
147 <option value="concordance_heatmap">Label concordance heatmap</option> | 162 <option value="concordance_heatmap">Label concordance heatmap</option> |
148 <option value="pr_curve">Precision-recall curves</option> | 163 <option value="pr_curve">Precision-recall curves</option> |
149 <option value="roc_curve">ROC curves</option> | 164 <option value="roc_curve">ROC curves</option> |
150 <option value="box_plot">Box plot</option> | 165 <option value="box_plot">Box plot</option> |
166 <option value="km_plot">Kaplan-Meier plot</option> | |
167 <option value="cox_plot">Cox proportional hazards plot</option> | |
151 </param> | 168 </param> |
152 <when value="dimred"> | 169 <when value="dimred"> |
153 <expand macro="plots_common_param"> | 170 <expand macro="plots_common_param_svg"> |
154 <expand macro="plots_common_input"/> | 171 <expand macro="plots_common_input"/> |
155 <param argument="--embeddings" type="data" format="tabular" label="Embeddings" help="Generated by flexynesis"/> | 172 <param argument="--embeddings" type="data" format="tabular" label="Embeddings" help="Generated by flexynesis"/> |
156 <param argument="--label" type="data_column" data_ref="labels" label="Column in the labels file to use for coloring the points in the plot"/> | 173 <param argument="--color" type="data_column" data_ref="labels" label="Column in the labels file to use for coloring the points in the plot"/> |
157 <param name="method" type="select" label="Transformation method"> | 174 <param name="method" type="select" label="Transformation method"> |
158 <option value="pca" selected="true">PCA</option> | 175 <option value="pca" selected="true">PCA</option> |
159 <option value="umap">UMAP</option> | 176 <option value="umap">UMAP</option> |
160 </param> | 177 </param> |
161 </expand> | 178 </expand> |
162 </when> | 179 </when> |
163 <when value="scatter"> | 180 <when value="scatter"> |
164 <expand macro="plots_common_param"> | 181 <expand macro="plots_common_param_svg"> |
165 <expand macro="plots_common_input"/> | 182 <expand macro="plots_common_input"/> |
166 <param name="true_label" type="data_column" data_ref="labels" label="Column name in the labels file to use for the true labels"/> | 183 <param argument="--true_label" type="data_column" data_ref="labels" optional="true" label="Column in the labels file to use for true labels"/> |
167 <param name="predicted_label" type="data_column" data_ref="labels" label="Column name in the labels file to use for the predicted labels"/> | 184 <param argument="--predicted_label" type="data_column" data_ref="labels" optional="true" label="Column in the labels file to use for predicted labels"/> |
168 </expand> | 185 </expand> |
169 </when> | 186 </when> |
170 <when value="concordance_heatmap"> | 187 <when value="concordance_heatmap"> |
171 <expand macro="plots_common_param"> | 188 <expand macro="plots_common_param_svg"> |
172 <expand macro="plots_common_input"/> | 189 <expand macro="plots_common_input"/> |
173 <param name="true_label" type="data_column" data_ref="labels" label="Column name in the labels file to use for the true labels"/> | 190 <param argument="--true_label" type="data_column" data_ref="labels" optional="true" label="Column in the labels file to use for true labels"/> |
174 <param name="predicted_label" type="data_column" data_ref="labels" label="Column name in the labels file to use for the predicted labels"/> | 191 <param argument="--predicted_label" type="data_column" data_ref="labels" optional="true" label="Column in the labels file to use for predicted labels"/> |
175 </expand> | 192 </expand> |
176 </when> | 193 </when> |
177 <when value="pr_curve"> | 194 <when value="pr_curve"> |
178 <expand macro="plots_common_param"> | 195 <expand macro="plots_common_param_svg"> |
179 <expand macro="plots_common_input"/> | 196 <expand macro="plots_common_input"/> |
180 </expand> | 197 </expand> |
181 </when> | 198 </when> |
182 <when value="roc_curve"> | 199 <when value="roc_curve"> |
183 <expand macro="plots_common_param"> | 200 <expand macro="plots_common_param_svg"> |
184 <expand macro="plots_common_input"/> | 201 <expand macro="plots_common_input"/> |
185 </expand> | 202 </expand> |
186 </when> | 203 </when> |
187 <when value="box_plot"> | 204 <when value="box_plot"> |
188 <expand macro="plots_common_param"> | 205 <expand macro="plots_common_param_svg"> |
189 <expand macro="plots_common_input"/> | 206 <expand macro="plots_common_input"/> |
207 </expand> | |
208 </when> | |
209 <when value="km_plot"> | |
210 <expand macro="plots_common_param_svg"> | |
211 <expand macro="plots_common_input"/> | |
212 <param argument="--survival_data" type="data" format="tabular" label="Survival data"/> | |
213 <param argument="--surv_event_var" type="data_column" data_ref="survival_data" label="Column in the survival data to use as survival event"/> | |
214 <param argument="--surv_time_var" type="data_column" data_ref="survival_data" label="Column in the survival data to use as survival time"/> | |
215 </expand> | |
216 </when> | |
217 <when value="cox_plot"> | |
218 <expand macro="plots_common_param_svg"> | |
219 <param argument="--important_features" type="data" format="tabular" label="Important features file"/> | |
220 <param argument="--clinical_train" type="data" format="tabular" label="Clinical training data"/> | |
221 <param argument="--clinical_test" type="data" format="tabular" label="Clinical test data"/> | |
222 <param argument="--omics_train" type="data" format="tabular" label="Omics training data"/> | |
223 <param argument="--omics_test" type="data" format="tabular" label="Omics test data"/> | |
224 <param name="layer" type="text" optional="false" label="The class label to use from important features file" help="This corresponds to assay name in flexynesis tool."> | |
225 <expand macro="sanitizer_letters"/> | |
226 </param> | |
227 <param argument="--surv_event_var" type="data_column" data_ref="clinical_train" label="Column in the clinical training data to use as survival event"/> | |
228 <param argument="--surv_time_var" type="data_column" data_ref="clinical_train" label="Column in the clinical training data to use as survival time"/> | |
229 <param argument="--clinical_variables" type="data_column" data_ref="clinical_train" optional="true" multiple="true" label="Columns in the train clinical data to use as clinical covariates and include in the Cox model (e.g SEX, AGE, ...), multiple covariates are allowed"/> | |
230 <param argument="--top_features" type="integer" min="1" value="20" label="Number of top important features to include in Cox model"/> | |
231 <conditional name="crossval_conditional"> | |
232 <param name="crossval" type="select" label="Performs K-fold cross-validation?"> | |
233 <option value="yes">Yes</option> | |
234 <option value="no" selected="true">No</option> | |
235 </param> | |
236 <when value="yes"> | |
237 <param name="n_splits" type="integer" min="2" value="5" label="Number of folds for cross-validation"/> | |
238 </when> | |
239 <when value="no"/> | |
240 </conditional> | |
190 </expand> | 241 </expand> |
191 </when> | 242 </when> |
192 </conditional> | 243 </conditional> |
193 </inputs> | 244 </inputs> |
194 <outputs> | 245 <outputs> |
195 <data name="plot_out" auto_format="true" from_work_dir="plots/*" label="${tool.name} on ${on_string}: ${plot_conditional.plot_type}"> | 246 <collection name="plot_out" type="list" label="${tool.name} on ${on_string}: ${plot_conditional.plot_type} - ${plot_conditional.format}"> |
196 <filter>plot_conditional['plot_type'] != "box_plot"</filter> | |
197 </data> | |
198 <collection name="boxplot_out" type="list" label="${tool.name} on ${on_string}: box_plot"> | |
199 <discover_datasets pattern="__name_and_ext__" directory="plots/"/> | 247 <discover_datasets pattern="__name_and_ext__" directory="plots/"/> |
200 <filter>plot_conditional['plot_type'] == "box_plot"</filter> | 248 <filter>plot_conditional['format'] != 'svg'</filter> |
249 </collection> | |
250 <!-- other types can be sniffed correctly by galaxy --> | |
251 <collection name="plot_out_svg" format="svg" type="list" label="${tool.name} on ${on_string}: ${plot_conditional.plot_type} - svg"> | |
252 <discover_datasets pattern="__name_and_ext__" directory="plots/"/> | |
253 <filter>plot_conditional['format'] == 'svg'</filter> | |
201 </collection> | 254 </collection> |
202 </outputs> | 255 </outputs> |
203 <tests> | 256 <tests> |
204 <!-- test 1: dimred --> | 257 <!-- test 1: dimred --> |
205 <test expect_num_outputs="1"> | 258 <test expect_num_outputs="1"> |
206 <param name="non_commercial_use" value="True"/> | 259 <param name="non_commercial_use" value="True"/> |
207 <conditional name="plot_conditional"> | 260 <conditional name="plot_conditional"> |
208 <param name="plot_type" value="dimred"/> | 261 <param name="plot_type" value="dimred"/> |
209 <param name="embeddings" value="embeddings.tabular"/> | 262 <param name="embeddings" value="embeddings.tabular"/> |
210 <param name="label" value="6"/> | 263 <param name="color" value="6"/> |
211 <param name="method" value="pca"/> | 264 <param name="method" value="pca"/> |
212 <param name="labels" value="labels.tabular"/> | 265 <param name="labels" value="labels.tabular"/> |
213 <param name="format" value="jpg"/> | 266 <param name="format" value="jpg"/> |
214 <param name="dpi" value="300"/> | 267 <param name="dpi" value="300"/> |
215 </conditional> | 268 </conditional> |
216 <output name="plot_out"> | 269 <output_collection name="plot_out" type="list" count="1"> |
217 <assert_contents> | 270 <element name="embeddings_pca_predicted_label"> |
218 <has_image_center_of_mass center_of_mass="970,733" eps="50"/> | 271 <assert_contents> |
219 <has_image_channels channels="3"/> | 272 <has_image_center_of_mass center_of_mass="970,731" eps="20"/> |
220 <has_image_height height="1461" delta="50"/> | 273 <has_image_channels channels="3"/> |
221 <has_image_width width="1941" delta="50"/> | 274 <has_image_height height="1460" delta="20"/> |
222 </assert_contents> | 275 <has_image_width width="1940" delta="20"/> |
223 </output> | 276 </assert_contents> |
277 </element> | |
278 </output_collection> | |
224 </test> | 279 </test> |
225 <!-- test 2: scatter --> | 280 <!-- test 2: scatter --> |
226 <test expect_num_outputs="1"> | 281 <test expect_num_outputs="1"> |
227 <param name="non_commercial_use" value="True"/> | 282 <param name="non_commercial_use" value="True"/> |
228 <conditional name="plot_conditional"> | 283 <conditional name="plot_conditional"> |
229 <param name="plot_type" value="scatter"/> | 284 <param name="plot_type" value="scatter"/> |
230 <param name="labels" value="labels_scatter.tabular"/> | 285 <param name="labels" value="labels_scatter.tabular"/> |
231 <param name="true_label" value="5"/> | 286 <param name="format" value="jpg"/> |
232 <param name="predicted_label" value="6"/> | 287 <param name="dpi" value="300"/> |
233 <param name="format" value="jpg"/> | 288 </conditional> |
234 <param name="dpi" value="300"/> | 289 <output_collection name="plot_out" type="list" count="1"> |
235 </conditional> | 290 <element name="labels_scatter_CLAUDIN_SUBTYPE"> |
236 <output name="plot_out"> | 291 <assert_contents> |
237 <assert_contents> | 292 <has_image_center_of_mass center_of_mass="969,732" eps="20"/> |
238 <has_image_center_of_mass center_of_mass="970,733" eps="50"/> | 293 <has_image_channels channels="3"/> |
239 <has_image_channels channels="3"/> | 294 <has_image_height height="1460" delta="20"/> |
240 <has_image_height height="1461" delta="50"/> | 295 <has_image_width width="1941" delta="20"/> |
241 <has_image_width width="1941" delta="50"/> | 296 </assert_contents> |
242 </assert_contents> | 297 </element> |
243 </output> | 298 </output_collection> |
244 </test> | 299 </test> |
245 <!-- test 3: concordance_heatmap --> | 300 <!-- test 3: concordance_heatmap --> |
246 <test expect_num_outputs="1"> | 301 <test expect_num_outputs="1"> |
247 <param name="non_commercial_use" value="True"/> | 302 <param name="non_commercial_use" value="True"/> |
248 <conditional name="plot_conditional"> | 303 <conditional name="plot_conditional"> |
249 <param name="plot_type" value="concordance_heatmap"/> | 304 <param name="plot_type" value="concordance_heatmap"/> |
250 <param name="labels" value="labels.tabular"/> | 305 <param name="labels" value="labels.tabular"/> |
251 <param name="true_label" value="5"/> | 306 <param name="format" value="jpg"/> |
252 <param name="predicted_label" value="6"/> | 307 <param name="dpi" value="300"/> |
253 <param name="format" value="jpg"/> | 308 </conditional> |
254 <param name="dpi" value="300"/> | 309 <output_collection name="plot_out" type="list" count="1"> |
255 </conditional> | 310 <element name="labels_concordance_CLAUDIN_SUBTYPE"> |
256 <output name="plot_out"> | 311 <assert_contents> |
257 <assert_contents> | 312 <has_image_center_of_mass center_of_mass="1450,1306" eps="20"/> |
258 <has_image_center_of_mass center_of_mass="1450,1310" eps="50"/> | 313 <has_image_channels channels="3"/> |
259 <has_image_channels channels="3"/> | 314 <has_image_height height="2558" delta="20"/> |
260 <has_image_height height="2558" delta="50"/> | 315 <has_image_width width="2768" delta="20"/> |
261 <has_image_width width="2770" delta="50"/> | 316 </assert_contents> |
262 </assert_contents> | 317 </element> |
263 </output> | 318 </output_collection> |
264 </test> | 319 </test> |
265 <!-- test 4: pr_curve --> | 320 <!-- test 4: pr_curve --> |
266 <test expect_num_outputs="1"> | 321 <test expect_num_outputs="1"> |
267 <param name="non_commercial_use" value="True"/> | 322 <param name="non_commercial_use" value="True"/> |
268 <conditional name="plot_conditional"> | 323 <conditional name="plot_conditional"> |
269 <param name="plot_type" value="pr_curve"/> | 324 <param name="plot_type" value="pr_curve"/> |
270 <param name="labels" value="labels_pr.tabular"/> | 325 <param name="labels" value="labels_pr.tabular"/> |
271 <param name="format" value="jpg"/> | 326 <param name="format" value="jpg"/> |
272 <param name="dpi" value="300"/> | 327 <param name="dpi" value="300"/> |
273 </conditional> | 328 </conditional> |
274 <output name="plot_out"> | 329 <output_collection name="plot_out" type="list" count="1"> |
275 <assert_contents> | 330 <element name="labels_pr_curves_CLAUDIN_SUBTYPE"> |
276 <has_image_center_of_mass center_of_mass="970,733" eps="50"/> | 331 <assert_contents> |
277 <has_image_channels channels="3"/> | 332 <has_image_center_of_mass center_of_mass="965,733" eps="20"/> |
278 <has_image_height height="1461" delta="50"/> | 333 <has_image_channels channels="3"/> |
279 <has_image_width width="1941" delta="50"/> | 334 <has_image_height height="1461" delta="20"/> |
280 </assert_contents> | 335 <has_image_width width="1941" delta="20"/> |
281 </output> | 336 </assert_contents> |
337 </element> | |
338 </output_collection> | |
282 </test> | 339 </test> |
283 <!-- test 5: roc_curve --> | 340 <!-- test 5: roc_curve --> |
284 <test expect_num_outputs="1"> | 341 <test expect_num_outputs="1"> |
285 <param name="non_commercial_use" value="True"/> | 342 <param name="non_commercial_use" value="True"/> |
286 <conditional name="plot_conditional"> | 343 <conditional name="plot_conditional"> |
287 <param name="plot_type" value="roc_curve"/> | 344 <param name="plot_type" value="roc_curve"/> |
288 <param name="labels" value="labels_pr.tabular"/> | 345 <param name="labels" value="labels_pr.tabular"/> |
289 <param name="format" value="jpg"/> | 346 <param name="format" value="jpg"/> |
290 <param name="dpi" value="300"/> | 347 <param name="dpi" value="300"/> |
291 </conditional> | 348 </conditional> |
292 <output name="plot_out"> | 349 <output_collection name="plot_out" type="list" count="1"> |
293 <assert_contents> | 350 <element name="labels_roc_curves_CLAUDIN_SUBTYPE"> |
294 <has_image_center_of_mass center_of_mass="970,733" eps="50"/> | 351 <assert_contents> |
295 <has_image_channels channels="3"/> | 352 <has_image_center_of_mass center_of_mass="971,732" eps="20"/> |
296 <has_image_height height="1461" delta="50"/> | 353 <has_image_channels channels="3"/> |
297 <has_image_width width="1941" delta="50"/> | 354 <has_image_height height="1461" delta="20"/> |
298 </assert_contents> | 355 <has_image_width width="1941" delta="20"/> |
299 </output> | 356 </assert_contents> |
357 </element> | |
358 </output_collection> | |
300 </test> | 359 </test> |
301 <!-- test 6: box_plot --> | 360 <!-- test 6: box_plot --> |
302 <test expect_num_outputs="1"> | 361 <test expect_num_outputs="1"> |
303 <param name="non_commercial_use" value="True"/> | 362 <param name="non_commercial_use" value="True"/> |
304 <conditional name="plot_conditional"> | 363 <conditional name="plot_conditional"> |
305 <param name="plot_type" value="box_plot"/> | 364 <param name="plot_type" value="box_plot"/> |
306 <param name="labels" value="labels_pr.tabular"/> | 365 <param name="labels" value="labels_pr.tabular"/> |
307 <param name="format" value="jpg"/> | 366 <param name="format" value="jpg"/> |
308 <param name="dpi" value="300"/> | 367 <param name="dpi" value="300"/> |
309 </conditional> | 368 </conditional> |
310 <output_collection name="boxplot_out" type="list" count="7"> | 369 <output_collection name="plot_out" type="list" count="7"> |
311 <element name="box_plot_Basal"> | 370 <element name="labels_box_plot_CLAUDIN_SUBTYPE_Basal"> |
312 <assert_contents> | 371 <assert_contents> |
313 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | 372 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> |
314 <has_image_channels channels="3"/> | 373 <has_image_channels channels="3"/> |
315 <has_image_height height="1783" delta="20"/> | 374 <has_image_height height="1766" delta="20"/> |
316 <has_image_width width="2967" delta="20"/> | 375 <has_image_width width="2967" delta="20"/> |
317 </assert_contents> | 376 </assert_contents> |
318 </element> | 377 </element> |
319 <element name="box_plot_Her2"> | 378 <element name="labels_box_plot_CLAUDIN_SUBTYPE_Her2"> |
379 <assert_contents> | |
380 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | |
381 <has_image_channels channels="3"/> | |
382 <has_image_height height="1766" delta="20"/> | |
383 <has_image_width width="2967" delta="20"/> | |
384 </assert_contents> | |
385 </element> | |
386 <element name="labels_box_plot_CLAUDIN_SUBTYPE_LumA"> | |
387 <assert_contents> | |
388 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | |
389 <has_image_channels channels="3"/> | |
390 <has_image_height height="1766" delta="20"/> | |
391 <has_image_width width="2967" delta="20"/> | |
392 </assert_contents> | |
393 </element> | |
394 <element name="labels_box_plot_CLAUDIN_SUBTYPE_LumB"> | |
395 <assert_contents> | |
396 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | |
397 <has_image_channels channels="3"/> | |
398 <has_image_height height="1766" delta="20"/> | |
399 <has_image_width width="2967" delta="20"/> | |
400 </assert_contents> | |
401 </element> | |
402 <element name="labels_box_plot_CLAUDIN_SUBTYPE_NC"> | |
403 <assert_contents> | |
404 <has_image_center_of_mass center_of_mass="1485,875" eps="20"/> | |
405 <has_image_channels channels="3"/> | |
406 <has_image_height height="1766" delta="20"/> | |
407 <has_image_width width="2967" delta="20"/> | |
408 </assert_contents> | |
409 </element> | |
410 <element name="labels_box_plot_CLAUDIN_SUBTYPE_Normal"> | |
411 <assert_contents> | |
412 <has_image_center_of_mass center_of_mass="1485,878" eps="20"/> | |
413 <has_image_channels channels="3"/> | |
414 <has_image_height height="1766" delta="20"/> | |
415 <has_image_width width="2967" delta="20"/> | |
416 </assert_contents> | |
417 </element> | |
418 <element name="labels_box_plot_CLAUDIN_SUBTYPE_claudin-low"> | |
320 <assert_contents> | 419 <assert_contents> |
321 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | 420 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> |
322 <has_image_channels channels="3"/> | 421 <has_image_channels channels="3"/> |
323 <has_image_height height="1765" delta="20"/> | 422 <has_image_height height="1765" delta="20"/> |
324 <has_image_width width="2967" delta="20"/> | 423 <has_image_width width="2967" delta="20"/> |
325 </assert_contents> | 424 </assert_contents> |
326 </element> | 425 </element> |
327 <element name="box_plot_LumA"> | 426 </output_collection> |
328 <assert_contents> | 427 </test> |
329 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | 428 <!-- test 7: dimred png--> |
330 <has_image_channels channels="3"/> | 429 <test expect_num_outputs="1"> |
331 <has_image_height height="1783" delta="20"/> | 430 <param name="non_commercial_use" value="True"/> |
332 <has_image_width width="2967" delta="20"/> | 431 <conditional name="plot_conditional"> |
333 </assert_contents> | 432 <param name="plot_type" value="dimred"/> |
334 </element> | 433 <param name="embeddings" value="embeddings.tabular"/> |
335 <element name="box_plot_LumB"> | 434 <param name="color" value="6"/> |
336 <assert_contents> | 435 <param name="method" value="pca"/> |
337 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | 436 <param name="labels" value="labels.tabular"/> |
338 <has_image_channels channels="3"/> | 437 <param name="format" value="png"/> |
339 <has_image_height height="1783" delta="20"/> | 438 <param name="dpi" value="300"/> |
340 <has_image_width width="2967" delta="20"/> | 439 </conditional> |
341 </assert_contents> | 440 <output_collection name="plot_out" type="list" count="1"> |
342 </element> | 441 <element name="embeddings_pca_predicted_label"> |
343 <element name="box_plot_NC"> | 442 <assert_contents> |
344 <assert_contents> | 443 <has_image_center_of_mass center_of_mass="970,730" eps="20"/> |
345 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | 444 <has_image_channels channels="4"/> |
346 <has_image_channels channels="3"/> | 445 <has_image_height height="1461" delta="20"/> |
347 <has_image_height height="1783" delta="20"/> | 446 <has_image_width width="1941" delta="20"/> |
348 <has_image_width width="2967" delta="20"/> | 447 </assert_contents> |
349 </assert_contents> | 448 </element> |
350 </element> | 449 </output_collection> |
351 <element name="box_plot_Normal"> | 450 </test> |
352 <assert_contents> | 451 <!-- test 8: roc_curve svg--> |
353 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | 452 <test expect_num_outputs="1"> |
354 <has_image_channels channels="3"/> | 453 <param name="non_commercial_use" value="True"/> |
355 <has_image_height height="1783" delta="20"/> | 454 <conditional name="plot_conditional"> |
356 <has_image_width width="2967" delta="20"/> | 455 <param name="plot_type" value="roc_curve"/> |
357 </assert_contents> | 456 <param name="labels" value="labels_pr.tabular"/> |
358 </element> | 457 <param name="format" value="svg"/> |
359 <element name="box_plot_claudin-low"> | 458 <param name="dpi" value="300"/> |
360 <assert_contents> | 459 </conditional> |
361 <has_image_center_of_mass center_of_mass="1485,882" eps="20"/> | 460 <output_collection name="plot_out_svg" type="list" count="1"> |
362 <has_image_channels channels="3"/> | 461 <element name="labels_roc_curves_CLAUDIN_SUBTYPE"> |
363 <has_image_height height="1783" delta="20"/> | 462 <assert_contents> |
364 <has_image_width width="2967" delta="20"/> | 463 <has_text_matching expression="ROC Curve"/> |
464 <has_text_matching expression="True Positive Rate"/> | |
465 </assert_contents> | |
466 </element> | |
467 </output_collection> | |
468 </test> | |
469 <!-- test 9: km_plot --> | |
470 <test expect_num_outputs="1"> | |
471 <param name="non_commercial_use" value="True"/> | |
472 <conditional name="plot_conditional"> | |
473 <param name="plot_type" value="km_plot"/> | |
474 <param name="labels" value="labels_survival.tabular"/> | |
475 <param name="survival_data" value="test/clin"/> | |
476 <param name="surv_event_var" value="15"/> | |
477 <param name="surv_time_var" value="14"/> | |
478 <param name="format" value="jpg"/> | |
479 <param name="dpi" value="300"/> | |
480 </conditional> | |
481 <output_collection name="plot_out" type="list" count="1"> | |
482 <element name="survival_data_km_km_risk_subtypes"> | |
483 <assert_contents> | |
484 <has_image_center_of_mass center_of_mass="970,730" eps="20"/> | |
485 <has_image_channels channels="3"/> | |
486 <has_image_height height="1460" delta="20"/> | |
487 <has_image_width width="1940" delta="20"/> | |
488 </assert_contents> | |
489 </element> | |
490 </output_collection> | |
491 </test> | |
492 <!-- test 10: cox_plot --> | |
493 <test expect_num_outputs="1"> | |
494 <param name="non_commercial_use" value="True"/> | |
495 <conditional name="plot_conditional"> | |
496 <param name="plot_type" value="cox_plot"/> | |
497 <param name="important_features" value="feature_importance.tabular"/> | |
498 <param name="clinical_train" value="train/clin"/> | |
499 <param name="clinical_test" value="test/clin"/> | |
500 <param name="omics_train" value="train/gex"/> | |
501 <param name="omics_test" value="test/gex"/> | |
502 <param name="layer" value="gex"/> | |
503 <param name="surv_event_var" value="15"/> | |
504 <param name="surv_time_var" value="14"/> | |
505 <param name="clinical_variables" value="3,4"/> | |
506 <param name="top_features" value="10"/> | |
507 <param name="format" value="jpg"/> | |
508 <param name="dpi" value="300"/> | |
509 </conditional> | |
510 <output_collection name="plot_out" type="list" count="1"> | |
511 <element name="important_features_cox_hazard_ratios"> | |
512 <assert_contents> | |
513 <has_image_center_of_mass center_of_mass="970,730" eps="20"/> | |
514 <has_image_channels channels="3"/> | |
515 <has_image_height height="1460" delta="20"/> | |
516 <has_image_width width="1940" delta="20"/> | |
517 </assert_contents> | |
518 </element> | |
519 </output_collection> | |
520 </test> | |
521 <!-- test 11: km_plot should fail because of non numeric target --> | |
522 <test expect_failure="true"> | |
523 <param name="non_commercial_use" value="True"/> | |
524 <conditional name="plot_conditional"> | |
525 <param name="plot_type" value="km_plot"/> | |
526 <param name="labels" value="labels_survival.tabular"/> | |
527 <param name="survival_data" value="test/clin"/> | |
528 <param name="surv_event_var" value="16"/> | |
529 <param name="surv_time_var" value="14"/> | |
530 <param name="format" value="jpg"/> | |
531 <param name="dpi" value="300"/> | |
532 </conditional> | |
533 <assert_stderr> | |
534 <has_text_matching expression="Error: Non-numeric values found in column 'class': Unable to parse string "buz" at position 0"/> | |
535 </assert_stderr> | |
536 </test> | |
537 <!-- test 12: cox_plot should fail because of non numeric target --> | |
538 <test expect_failure="true"> | |
539 <param name="non_commercial_use" value="True"/> | |
540 <conditional name="plot_conditional"> | |
541 <param name="plot_type" value="cox_plot"/> | |
542 <param name="important_features" value="feature_importance.tabular"/> | |
543 <param name="clinical_train" value="train/clin"/> | |
544 <param name="clinical_test" value="test/clin"/> | |
545 <param name="omics_train" value="train/gex"/> | |
546 <param name="omics_test" value="test/gex"/> | |
547 <param name="layer" value="gex"/> | |
548 <param name="surv_event_var" value="15"/> | |
549 <param name="surv_time_var" value="14"/> | |
550 <param name="clinical_variables" value="3,4,16"/> | |
551 <param name="top_features" value="10"/> | |
552 <param name="format" value="jpg"/> | |
553 <param name="dpi" value="300"/> | |
554 </conditional> | |
555 <assert_stderr> | |
556 <has_text_matching expression="Error: Non-numeric values found in column 'class': Unable to parse string "buz" at position 0"/> | |
557 </assert_stderr> | |
558 </test> | |
559 <!-- test 13: scatter unsupervised --> | |
560 <test expect_num_outputs="1"> | |
561 <param name="non_commercial_use" value="True"/> | |
562 <conditional name="plot_conditional"> | |
563 <param name="plot_type" value="scatter"/> | |
564 <param name="labels" value="non_flexy_label.tabular"/> | |
565 <param name="true_label" value="11"/> | |
566 <param name="predicted_label" value="12"/> | |
567 <param name="format" value="jpg"/> | |
568 <param name="dpi" value="300"/> | |
569 </conditional> | |
570 <output_collection name="plot_out" type="list" count="1"> | |
571 <element name="labels_scatter"> | |
572 <assert_contents> | |
573 <has_image_center_of_mass center_of_mass="970,730" eps="20"/> | |
574 <has_image_channels channels="3"/> | |
575 <has_image_height height="1460" delta="20"/> | |
576 <has_image_width width="1941" delta="20"/> | |
577 </assert_contents> | |
578 </element> | |
579 </output_collection> | |
580 </test> | |
581 <!-- test 14: concordance_heatmap unsupervised --> | |
582 <test expect_num_outputs="1"> | |
583 <param name="non_commercial_use" value="True"/> | |
584 <conditional name="plot_conditional"> | |
585 <param name="plot_type" value="concordance_heatmap"/> | |
586 <param name="labels" value="non_flexy_label.tabular"/> | |
587 <param name="true_label" value="10"/> | |
588 <param name="predicted_label" value="12"/> | |
589 <param name="format" value="jpg"/> | |
590 <param name="dpi" value="300"/> | |
591 </conditional> | |
592 <output_collection name="plot_out" type="list" count="1"> | |
593 <element name="labels_concordance"> | |
594 <assert_contents> | |
595 <has_image_center_of_mass center_of_mass="1445,1306" eps="20"/> | |
596 <has_image_channels channels="3"/> | |
597 <has_image_height height="2558" delta="20"/> | |
598 <has_image_width width="3051" delta="20"/> | |
365 </assert_contents> | 599 </assert_contents> |
366 </element> | 600 </element> |
367 </output_collection> | 601 </output_collection> |
368 </test> | 602 </test> |
369 </tests> | 603 </tests> |