comparison classification.xml @ 15:f28ad96b76dc draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/cardinal commit d0dc9303d449c63a6ffe8fbfe195951d5db9cb89-dirty"
author galaxyp
date Mon, 21 Jun 2021 07:35:58 +0000
parents ece627528a78
children eddc2ae2db80
comparison
equal deleted inserted replaced
14:ece627528a78 15:f28ad96b76dc
1 <tool id="cardinal_classification" name="MSI classification" version="@VERSION@.1"> 1 <tool id="cardinal_classification" name="MSI classification" version="@VERSION@.2">
2 <description>spatial classification of mass spectrometry imaging data</description> 2 <description>spatial classification of mass spectrometry imaging data</description>
3 <macros> 3 <macros>
4 <import>macros.xml</import> 4 <import>macros.xml</import>
5 </macros> 5 </macros>
6 <expand macro="requirements"> 6 <expand macro="requirements">
90 merged_response = merge(msidata_coordinates, y_input, by=c("x", "y"), all.x=TRUE) 90 merged_response = merge(msidata_coordinates, y_input, by=c("x", "y"), all.x=TRUE)
91 merged_response[is.na(merged_response)] = "NA" 91 merged_response[is.na(merged_response)] = "NA"
92 merged_response = merged_response[order(merged_response\$pixel_index),] 92 merged_response = merged_response[order(merged_response\$pixel_index),]
93 conditions = as.factor(merged_response[,4]) 93 conditions = as.factor(merged_response[,4])
94 y_vector = conditions 94 y_vector = conditions
95
96 ## colours selection:
97
98 #if str($colour_conditional.colour_type) == "manual_colour"
99 #set $color_string = ','.join(['"%s"' % $color.annotation_color for $color in $colour_conditional.colours])
100 colourvector = c($color_string)
101
102 #elif str($colour_conditional.colour_type) == "colourpalette"
103 number_levels = (length(levels(conditions)))
104 colourvector = noquote($colour_conditional.palettes)(number_levels)
105
106 #end if
95 107
96 ## plot of y vector 108 ## plot of y vector
97 109
98 position_df = cbind(coord(msidata)[,1:2], conditions) 110 position_df = cbind(coord(msidata)[,1:2], conditions)
99 y_plot = ggplot(position_df, aes(x=x, y=y, fill=conditions))+ 111 y_plot = ggplot(position_df, aes(x=x, y=y, fill=conditions))+
105 plot.background = element_blank(), 117 plot.background = element_blank(),
106 panel.grid.major = element_blank(), 118 panel.grid.major = element_blank(),
107 panel.grid.minor = element_blank())+ 119 panel.grid.minor = element_blank())+
108 theme(text=element_text(family="ArialMT", face="bold", size=15))+ 120 theme(text=element_text(family="ArialMT", face="bold", size=15))+
109 theme(legend.position="bottom",legend.direction="vertical")+ 121 theme(legend.position="bottom",legend.direction="vertical")+
110 guides(fill=guide_legend(ncol=4,byrow=TRUE)) 122 guides(fill=guide_legend(ncol=4,byrow=TRUE))+
123 scale_discrete_manual(aesthetics = c("colour", "fill"), values = colourvector)
111 coord_labels = aggregate(cbind(x,y)~conditions, data=position_df, mean, na.rm=TRUE, na.action="na.pass") 124 coord_labels = aggregate(cbind(x,y)~conditions, data=position_df, mean, na.rm=TRUE, na.action="na.pass")
112 coord_labels\$file_number = gsub( "_.*$", "", coord_labels\$conditions) 125 coord_labels\$file_number = gsub( "_.*$", "", coord_labels\$conditions)
113 print(y_plot) 126 print(y_plot)
114 127
115 128
181 plot(components, accuracy_vector, ylab = "mean accuracy",type="o", main="Mean accuracy of PLS classification") 194 plot(components, accuracy_vector, ylab = "mean accuracy",type="o", main="Mean accuracy of PLS classification")
182 ncomp_max = components[which.max(accuracy_vector)] ## find ncomp with max. accuracy 195 ncomp_max = components[which.max(accuracy_vector)] ## find ncomp with max. accuracy
183 ## one image for each sample/fold, 4 images per page 196 ## one image for each sample/fold, 4 images per page
184 minimumy = min(coord(msidata.cv.pls)[,2]) 197 minimumy = min(coord(msidata.cv.pls)[,2])
185 maximumy = max(coord(msidata.cv.pls)[,2]) 198 maximumy = max(coord(msidata.cv.pls)[,2])
186 image(msidata.cv.pls, model = list(ncomp = ncomp_max),ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),layout = c(1, 1)) 199 image(msidata.cv.pls, model = list(ncomp = ncomp_max),ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),layout = c(1, 1), col=colourvector)
187 200
188 ## print table with summary in pdf 201 ## print table with summary in pdf
189 par(opar) 202 par(opar)
190 plot(0,type='n',axes=FALSE,ann=FALSE) 203 plot(0,type='n',axes=FALSE,ann=FALSE)
191 title(main="Summary for the different components\n", adj=0.5) 204 title(main="Summary for the different components\n", adj=0.5)
238 } 251 }
239 ) 252 )
240 253
241 ### pls analysis and coefficients plot 254 ### pls analysis and coefficients plot
242 msidata.pls <- PLS(msidata, y = y_vector, ncomp = component, scale=$type_cond.method_cond.analysis_cond.pls_scale) 255 msidata.pls <- PLS(msidata, y = y_vector, ncomp = component, scale=$type_cond.method_cond.analysis_cond.pls_scale)
243 plot(msidata.pls, main="PLS coefficients per m/z") 256 plot(msidata.pls, main="PLS coefficients per m/z", col=colourvector)
244 257
245 ### summary table of PLS 258 ### summary table of PLS
246 summary_table = summary(msidata.pls)\$accuracy[[paste0("ncomp = ",component)]] 259 summary_table = summary(msidata.pls)\$accuracy[[paste0("ncomp = ",component)]]
247 summary_table2 = round(as.numeric(summary_table), digits=2) 260 summary_table2 = round(as.numeric(summary_table), digits=2)
248 summary_matrix = matrix(summary_table2, nrow=4, ncol=number_groups) 261 summary_matrix = matrix(summary_table2, nrow=4, ncol=number_groups)
290 plot.background = element_blank(), 303 plot.background = element_blank(),
291 panel.grid.major = element_blank(), 304 panel.grid.major = element_blank(),
292 panel.grid.minor = element_blank())+ 305 panel.grid.minor = element_blank())+
293 theme(text=element_text(family="ArialMT", face="bold", size=15))+ 306 theme(text=element_text(family="ArialMT", face="bold", size=15))+
294 theme(legend.position="bottom",legend.direction="vertical")+ 307 theme(legend.position="bottom",legend.direction="vertical")+
295 guides(fill=guide_legend(ncol=4,byrow=TRUE)) 308 guides(fill=guide_legend(ncol=4,byrow=TRUE))+
309 scale_discrete_manual(aesthetics = c("colour", "fill"), values = colourvector)
296 coord_labels = aggregate(cbind(x,y)~predicted_classes, data=prediction_df, mean, na.rm=TRUE, na.action="na.pass") 310 coord_labels = aggregate(cbind(x,y)~predicted_classes, data=prediction_df, mean, na.rm=TRUE, na.action="na.pass")
297 coord_labels\$file_number = gsub( "_.*$", "", coord_labels\$predicted_classes) 311 coord_labels\$file_number = gsub( "_.*$", "", coord_labels\$predicted_classes)
298 print(prediction_plot) 312 print(prediction_plot)
299 313
300 ### optional output as .RData 314 ### optional output as .RData
349 plot(components, accuracy_vector, ylab = "mean accuracy", type="o", main="Mean accuracy of OPLS classification") 363 plot(components, accuracy_vector, ylab = "mean accuracy", type="o", main="Mean accuracy of OPLS classification")
350 ncomp_max = components[which.max(accuracy_vector)] ## find ncomp with max. accuracy 364 ncomp_max = components[which.max(accuracy_vector)] ## find ncomp with max. accuracy
351 ## one image for each sample/fold, 4 images per page 365 ## one image for each sample/fold, 4 images per page
352 minimumy = min(coord(msidata.cv.opls)[,2]) 366 minimumy = min(coord(msidata.cv.opls)[,2])
353 maximumy = max(coord(msidata.cv.opls)[,2]) 367 maximumy = max(coord(msidata.cv.opls)[,2])
354 image(msidata.cv.opls, model = list(ncomp = ncomp_max),ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),layout = c(1, 1)) 368 image(msidata.cv.opls, model = list(ncomp = ncomp_max),ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),layout = c(1, 1), col=colourvector)
355 369
356 ## print table with summary in pdf 370 ## print table with summary in pdf
357 par(opar) 371 par(opar)
358 plot(0,type='n',axes=FALSE,ann=FALSE) 372 plot(0,type='n',axes=FALSE,ann=FALSE)
359 title(main="Summary for the different components\n", adj=0.5) 373 title(main="Summary for the different components\n", adj=0.5)
407 ) 421 )
408 422
409 ### opls analysis and coefficients plot 423 ### opls analysis and coefficients plot
410 msidata.opls <- PLS(msidata, y = y_vector, ncomp = component, scale=$type_cond.method_cond.opls_analysis_cond.opls_scale) 424 msidata.opls <- PLS(msidata, y = y_vector, ncomp = component, scale=$type_cond.method_cond.opls_analysis_cond.opls_scale)
411 ## to reduce msidata: keep.Xnew = $type_cond.method_cond.opls_analysis_cond.xnew 425 ## to reduce msidata: keep.Xnew = $type_cond.method_cond.opls_analysis_cond.xnew
412 plot(msidata.opls, main="OPLS coefficients per m/z") 426 plot(msidata.opls, main="OPLS coefficients per m/z", col=colourvector)
413 427
414 428
415 ### summary table of OPLS 429 ### summary table of OPLS
416 summary_table = summary(msidata.opls)\$accuracy[[paste0("ncomp = ",component)]] 430 summary_table = summary(msidata.opls)\$accuracy[[paste0("ncomp = ",component)]]
417 summary_table2 = round(as.numeric(summary_table), digits=2) 431 summary_table2 = round(as.numeric(summary_table), digits=2)
461 plot.background = element_blank(), 475 plot.background = element_blank(),
462 panel.grid.major = element_blank(), 476 panel.grid.major = element_blank(),
463 panel.grid.minor = element_blank())+ 477 panel.grid.minor = element_blank())+
464 theme(text=element_text(family="ArialMT", face="bold", size=15))+ 478 theme(text=element_text(family="ArialMT", face="bold", size=15))+
465 theme(legend.position="bottom",legend.direction="vertical")+ 479 theme(legend.position="bottom",legend.direction="vertical")+
466 guides(fill=guide_legend(ncol=4,byrow=TRUE)) 480 guides(fill=guide_legend(ncol=4,byrow=TRUE))+
481 scale_discrete_manual(aesthetics = c("colour", "fill"), values = colourvector)
467 coord_labels = aggregate(cbind(x,y)~predicted_classes, data=prediction_df, mean, na.rm=TRUE, na.action="na.pass") 482 coord_labels = aggregate(cbind(x,y)~predicted_classes, data=prediction_df, mean, na.rm=TRUE, na.action="na.pass")
468 coord_labels\$file_number = gsub( "_.*$", "", coord_labels\$predicted_classes) 483 coord_labels\$file_number = gsub( "_.*$", "", coord_labels\$predicted_classes)
469 print(prediction_plot) 484 print(prediction_plot)
470 485
471 ## optional output as .RData 486 ## optional output as .RData
520 best_params = names(msidata.cv.ssc@resultData[[1]][,1])[which.max(accuracy_vector)] ## find parameters with max. accuracy 535 best_params = names(msidata.cv.ssc@resultData[[1]][,1])[which.max(accuracy_vector)] ## find parameters with max. accuracy
521 r_value = as.numeric(substring(unlist(strsplit(best_params, ","))[1], 4)) 536 r_value = as.numeric(substring(unlist(strsplit(best_params, ","))[1], 4))
522 s_value = as.numeric(substring(unlist(strsplit(best_params, ","))[3], 5)) ## remove space 537 s_value = as.numeric(substring(unlist(strsplit(best_params, ","))[3], 5)) ## remove space
523 minimumy = min(coord(msidata.cv.ssc)[,2]) 538 minimumy = min(coord(msidata.cv.ssc)[,2])
524 maximumy = max(coord(msidata.cv.ssc)[,2]) 539 maximumy = max(coord(msidata.cv.ssc)[,2])
525 image(msidata.cv.ssc, model = list( r = r_value, s = s_value ), ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),layout=c(1,1)) 540 image(msidata.cv.ssc, model = list( r = r_value, s = s_value ), ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),layout=c(1,1), col=colourvector)
526 541
527 #if $type_cond.method_cond.ssc_analysis_cond.write_best_params: 542 #if $type_cond.method_cond.ssc_analysis_cond.write_best_params:
528 write.table(r_value, file="$best_r", quote = FALSE, row.names = FALSE, col.names=FALSE, sep = "\t") 543 write.table(r_value, file="$best_r", quote = FALSE, row.names = FALSE, col.names=FALSE, sep = "\t")
529 write.table(s_value, file="$best_s", quote = FALSE, row.names = FALSE, col.names=FALSE, sep = "\t") 544 write.table(s_value, file="$best_s", quote = FALSE, row.names = FALSE, col.names=FALSE, sep = "\t")
530 #end if 545 #end if
565 580
566 ## SSC analysis and plot 581 ## SSC analysis and plot
567 msidata.ssc <- spatialShrunkenCentroids(msidata, y = y_vector, 582 msidata.ssc <- spatialShrunkenCentroids(msidata, y = y_vector,
568 r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s), method = "$type_cond.method_cond.ssc_kernel_method") 583 r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s), method = "$type_cond.method_cond.ssc_kernel_method")
569 plot(msidata.ssc, mode = "tstatistics", model = list("r" = c($type_cond.method_cond.ssc_r), "s" = c($type_cond.method_cond.ssc_s)), 584 plot(msidata.ssc, mode = "tstatistics", model = list("r" = c($type_cond.method_cond.ssc_r), "s" = c($type_cond.method_cond.ssc_s)),
570 col=hue_pal()(length(levels(msidata.ssc\$classes[[1]]))), lwd=2) 585 col=colourvector, lwd=2)
571
572
573 586
574 ### summary table SSC 587 ### summary table SSC
575 ##############summary_table = summary(msidata.ssc) 588 ##############summary_table = summary(msidata.ssc)
576 589
577 ### stop if multiple values for r and s were used as input 590 ### stop if multiple values for r and s were used as input
627 ssc_toplabels = topFeatures(msidata.ssc, n=Inf) 640 ssc_toplabels = topFeatures(msidata.ssc, n=Inf)
628 ssc_toplabels[,6:9] <-round(ssc_toplabels[,6:9],6) 641 ssc_toplabels[,6:9] <-round(ssc_toplabels[,6:9],6)
629 write.table(ssc_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") 642 write.table(ssc_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t")
630 write.table(ssc_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") 643 write.table(ssc_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t")
631 644
632 image(msidata.ssc, model=list(r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s)), 645 image(msidata.ssc, model=list(r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s)), ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),
633 col=hue_pal()(length(levels(msidata.ssc\$classes[[1]]))), mode="classes", layout=c(1,1), main="Class Prediction") 646 col=colourvector, mode="classes", layout=c(1,1), main="Class Prediction")
634 image(msidata.ssc, model=list(r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s)), 647 image(msidata.ssc, model=list(r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s)), ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy),
635 col=hue_pal()(length(levels(msidata.ssc\$classes[[1]]))), mode="probabilities", layout=c(1,1), main="Class probabilities") 648 col=colourvector, mode="probabilities", layout=c(1,1), main="Class probabilities")
636 649
637 650
638 ## image with right and wrong classes: 651 ## image with right and wrong classes:
639 prediction_df = cbind(coord(msidata.ssc)[,1:2], ssc_classes) 652 prediction_df = cbind(coord(msidata.ssc)[,1:2], ssc_classes)
640 colnames(prediction_df) = c("x", "y", "predicted_classes") 653 colnames(prediction_df) = c("x", "y", "predicted_classes")
690 merged_response[is.na(merged_response)] = "NA" 703 merged_response[is.na(merged_response)] = "NA"
691 merged_response = merged_response[order(merged_response\$pixel_index),] 704 merged_response = merged_response[order(merged_response\$pixel_index),]
692 new_y_vector = as.factor(merged_response[,4]) 705 new_y_vector = as.factor(merged_response[,4])
693 prediction = predict(training_data,msidata, newy = new_y_vector) 706 prediction = predict(training_data,msidata, newy = new_y_vector)
694 707
708 ##numbers of levels for colour selection
709 number_levels = length(levels(new_y_vector))
710
695 ## Summary table prediction 711 ## Summary table prediction
696 summary_table = summary(prediction)\$accuracy[[names(prediction@resultData)]] 712 summary_table = summary(prediction)\$accuracy[[names(prediction@resultData)]]
697 summary_table2 = round(as.numeric(summary_table), digits=2) 713 summary_table2 = round(as.numeric(summary_table), digits=2)
698 summary_matrix = matrix(summary_table2, nrow=4, ncol=ncol(summary_table)) 714 summary_matrix = matrix(summary_table2, nrow=4, ncol=ncol(summary_table))
699 summary_table3 = cbind(rownames(summary_table), summary_matrix) ## include rownames in table 715 summary_table3 = cbind(rownames(summary_table), summary_matrix) ## include rownames in table
702 plot(0,type='n',axes=FALSE,ann=FALSE) 718 plot(0,type='n',axes=FALSE,ann=FALSE)
703 grid.table(summary_table5, rows= NULL) 719 grid.table(summary_table5, rows= NULL)
704 720
705 #else 721 #else
706 prediction = predict(training_data,msidata) 722 prediction = predict(training_data,msidata)
723 number_levels = length(levels(training_data\$y[[1]]))
707 #end if 724 #end if
725
726 ## colours selection:
727
728 #if str($colour_conditional.colour_type) == "manual_colour"
729 #set $color_string = ','.join(['"%s"' % $color.annotation_color for $color in $colour_conditional.colours])
730 colourvector = c($color_string)
731
732 #elif str($colour_conditional.colour_type) == "colourpalette"
733 colourvector = noquote($colour_conditional.palettes)(number_levels)
734
735 #end if
708 736
709 ## m/z and pixel information output 737 ## m/z and pixel information output
710 predicted_classes = data.frame(prediction\$classes[[1]]) 738 predicted_classes = data.frame(prediction\$classes[[1]])
711 pixel_names = gsub(", y = ", "_", names(pixels(msidata))) 739 pixel_names = gsub(", y = ", "_", names(pixels(msidata)))
712 pixel_names = gsub(" = ", "y_", pixel_names) 740 pixel_names = gsub(" = ", "y_", pixel_names)
728 ## this seems to work only for SSC, therefore overwrite tables 756 ## this seems to work only for SSC, therefore overwrite tables
729 predicted_probabilities = data.frame(prediction\$probabilities[[1]]) 757 predicted_probabilities = data.frame(prediction\$probabilities[[1]])
730 predicted_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, predicted_classes, predicted_probabilities) 758 predicted_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, predicted_classes, predicted_probabilities)
731 colnames(predicted_classes2) = c("pixel names", "x", "y","predicted condition", levels(prediction\$classes[[1]])) 759 colnames(predicted_classes2) = c("pixel names", "x", "y","predicted condition", levels(prediction\$classes[[1]]))
732 ## also image modes are specific to SSC 760 ## also image modes are specific to SSC
733 image(prediction, mode="classes", layout=c(1,1), main="Class", col=hue_pal()(length(unique(prediction\$classes[[1]])))) 761 image(prediction, mode="classes", layout=c(1,1), main="Class", ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy), col=colourvector)
734 image(prediction, mode="probabilities", layout=c(1,1), main="Class probabilities", col=hue_pal()(length(unique(prediction\$classes[[1]])))) 762 image(prediction, mode="probabilities", layout=c(1,1), main="Class probabilities",ylim= c(maximumy+0.2*maximumy,minimumy-0.2*minimumy), col=colourvector)
735 763
736 #else 764 #else
737 765
738 prediction_plot = ggplot(prediction_df, aes(x=x, y=y, fill=predicted_classes))+ 766 prediction_plot = ggplot(prediction_df, aes(x=x, y=y, fill=predicted_classes))+
739 geom_tile()+ 767 geom_tile()+
744 plot.background = element_blank(), 772 plot.background = element_blank(),
745 panel.grid.major = element_blank(), 773 panel.grid.major = element_blank(),
746 panel.grid.minor = element_blank())+ 774 panel.grid.minor = element_blank())+
747 theme(text=element_text(family="ArialMT", face="bold", size=15))+ 775 theme(text=element_text(family="ArialMT", face="bold", size=15))+
748 theme(legend.position="bottom", legend.direction="vertical")+ 776 theme(legend.position="bottom", legend.direction="vertical")+
749 guides(fill=guide_legend(ncol=4, byrow=TRUE)) 777 guides(fill=guide_legend(ncol=4, byrow=TRUE))+
778 scale_discrete_manual(aesthetics = c("colour", "fill"), values = colourvector)
750 coord_labels = aggregate(cbind(x,y)~predicted_classes, data=prediction_df, mean, na.rm=TRUE, na.action="na.pass") 779 coord_labels = aggregate(cbind(x,y)~predicted_classes, data=prediction_df, mean, na.rm=TRUE, na.action="na.pass")
751 coord_labels\$file_number = gsub( "_.*§", "", coord_labels\$predicted_classes) 780 coord_labels\$file_number = gsub( "_.*§", "", coord_labels\$predicted_classes)
752 print(prediction_plot) 781 print(prediction_plot)
753 #end if 782 #end if
754 783
921 <param name="column_new_response" data_ref="new_response_file" label="Column with new response values" type="data_column"/> 950 <param name="column_new_response" data_ref="new_response_file" label="Column with new response values" type="data_column"/>
922 <param name="new_tabular_header" type="boolean" label="Tabular files contain a header line" truevalue="TRUE" falsevalue="FALSE"/> 951 <param name="new_tabular_header" type="boolean" label="Tabular files contain a header line" truevalue="TRUE" falsevalue="FALSE"/>
923 </when> 952 </when>
924 </conditional> 953 </conditional>
925 </when> 954 </when>
955 </conditional>
956 <conditional name="colour_conditional">
957 <param name="colour_type" type="select" label="Choose a colour scheme">
958 <option value="colourpalette" selected="True" >Colour palette</option>
959 <option value="manual_colour">Manual selection</option>
960 </param>
961 <when value="manual_colour">
962 <repeat name="colours" title="Colours for the plots" min="1" max="50">
963 <param name="annotation_color" type="color" label="Colours" value="#ff00ff" help="Numbers of colours should be the same as number of components">
964 <sanitizer>
965 <valid initial="string.letters,string.digits">
966 <add value="#" />
967 </valid>
968 </sanitizer>
969 </param>
970 </repeat>
971 </when>
972 <when value="colourpalette">
973 <param name="palettes" type="select" display="radio" label="Select a colourpalette">
974 <option value="hue_pal()" selected="True">hue</option>
975 <option value="rainbow">rainbow</option>
976 <option value="heat.colors">heat colors</option>
977 <option value="terrain.colors">terrain colors</option>
978 <option value="topo.colors">topo colors</option>
979 <option value="cm.colors">cm colors</option>
980 </param>
981 </when>
926 </conditional> 982 </conditional>
927 <param name="output_rdata" type="boolean" label="Results as .RData output" help="Can be used to generate a classification prediction on new data"/> 983 <param name="output_rdata" type="boolean" label="Results as .RData output" help="Can be used to generate a classification prediction on new data"/>
928 </inputs> 984 </inputs>
929 <outputs> 985 <outputs>
930 <data format="pdf" name="classification_images" from_work_dir="classificationpdf.pdf" label = "${tool.name} on ${on_string}: results"/> 986 <data format="pdf" name="classification_images" from_work_dir="classificationpdf.pdf" label = "${tool.name} on ${on_string}: results"/>