Mercurial > repos > galaxyp > cardinal_classification
comparison classification.xml @ 2:bf0eb536e4e5 draft
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/cardinal commit f127be2141cf22e269c85282d226eb16fe14a9c1
author | galaxyp |
---|---|
date | Fri, 15 Feb 2019 10:07:59 -0500 |
parents | 33579f05d1f8 |
children | 60cf221846e5 |
comparison
equal
deleted
inserted
replaced
1:33579f05d1f8 | 2:bf0eb536e4e5 |
---|---|
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"> |
26 library(Cardinal) | 26 library(Cardinal) |
27 library(gridExtra) | 27 library(gridExtra) |
28 library(lattice) | 28 library(lattice) |
29 library(ggplot2) | 29 library(ggplot2) |
30 | 30 |
31 @READING_MSIDATA@ | 31 @READING_MSIDATA_INRAM@ |
32 | 32 |
33 ## create full matrix to make processed imzML files compatible with classification | 33 ## to make sure that processed files work as well: |
34 iData(msidata) <- iData(msidata)[] | 34 iData(msidata) = iData(msidata)[] |
35 | 35 |
36 @DATA_PROPERTIES@ | 36 @DATA_PROPERTIES_INRAM@ |
37 | |
37 | 38 |
38 ######################################## PDF ################################### | 39 ######################################## PDF ################################### |
39 ################################################################################ | 40 ################################################################################ |
40 ################################################################################ | 41 ################################################################################ |
41 | 42 |
58 | 59 |
59 ## table with values | 60 ## table with values |
60 grid.table(property_df, rows= NULL) | 61 grid.table(property_df, rows= NULL) |
61 | 62 |
62 | 63 |
63 if (npeaks > 0 && sum(is.na(spectra(msidata)))==0){ | 64 if (npeaks > 0 && sum(is.na(spectra(msidata)[]))==0){ |
64 | 65 |
65 opar <- par() | 66 opar <- par() |
66 | 67 |
67 ######################## II) Training ############################# | 68 ######################## II) Training ############################# |
68 ############################################################################# | 69 ############################################################################# |
138 components = c($type_cond.method_cond.analysis_cond.plscv_comp) | 139 components = c($type_cond.method_cond.analysis_cond.plscv_comp) |
139 number_groups = length(levels(y_vector)) | 140 number_groups = length(levels(y_vector)) |
140 | 141 |
141 ## PLS-cvApply: | 142 ## PLS-cvApply: |
142 msidata.cv.pls <- cvApply(msidata, .y = y_vector, .fold = fold_vector, .fun = "PLS", ncomp = components) | 143 msidata.cv.pls <- cvApply(msidata, .y = y_vector, .fold = fold_vector, .fun = "PLS", ncomp = components) |
144 | |
145 ## remove msidata to clean up RAM space | |
146 rm(msidata) | |
147 gc() | |
143 | 148 |
144 ## create table with summary | 149 ## create table with summary |
145 count = 1 | 150 count = 1 |
146 summary_plscv = list() | 151 summary_plscv = list() |
147 accuracy_vector = numeric() | 152 accuracy_vector = numeric() |
229 pixel_names = gsub(", y = ", "_", names(pixels(msidata))) | 234 pixel_names = gsub(", y = ", "_", names(pixels(msidata))) |
230 pixel_names = gsub(" = ", "y_", pixel_names) | 235 pixel_names = gsub(" = ", "y_", pixel_names) |
231 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] | 236 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] |
232 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] | 237 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] |
233 | 238 |
239 ## remove msidata to clean up RAM space | |
240 rm(msidata) | |
241 gc() | |
234 pls_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, pls_classes) | 242 pls_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, pls_classes) |
235 colnames(pls_classes2) = c("pixel names", "x", "y","predicted condition") | 243 colnames(pls_classes2) = c("pixel names", "x", "y","predicted condition") |
236 pls_toplabels = topLabels(msidata.pls, n=$type_cond.method_cond.analysis_cond.pls_toplabels) | 244 pls_toplabels = topLabels(msidata.pls, n=$type_cond.method_cond.analysis_cond.pls_toplabels) |
245 pls_toplabels[,4:6] <-round(pls_toplabels[,4:6],6) | |
237 write.table(pls_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 246 write.table(pls_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
238 write.table(pls_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 247 write.table(pls_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
239 | 248 |
240 ## image with predicted classes | 249 ## image with predicted classes |
241 prediction_df = cbind(coord(msidata.pls)[,1:2], pls_classes) | 250 prediction_df = cbind(coord(msidata.pls)[,1:2], pls_classes) |
272 components = c($type_cond.method_cond.opls_analysis_cond.opls_cvcomp) | 281 components = c($type_cond.method_cond.opls_analysis_cond.opls_cvcomp) |
273 number_groups = length(levels(y_vector)) | 282 number_groups = length(levels(y_vector)) |
274 | 283 |
275 ## OPLS-cvApply: | 284 ## OPLS-cvApply: |
276 msidata.cv.opls <- cvApply(msidata, .y = y_vector, .fold = fold_vector, .fun = "OPLS", ncomp = components, keep.Xnew = $type_cond.method_cond.opls_analysis_cond.xnew_cv) | 285 msidata.cv.opls <- cvApply(msidata, .y = y_vector, .fold = fold_vector, .fun = "OPLS", ncomp = components, keep.Xnew = $type_cond.method_cond.opls_analysis_cond.xnew_cv) |
286 | |
287 ## remove msidata to clean up RAM space | |
288 rm(msidata) | |
289 gc() | |
277 | 290 |
278 ## create table with summary | 291 ## create table with summary |
279 count = 1 | 292 count = 1 |
280 summary_oplscv = list() | 293 summary_oplscv = list() |
281 accuracy_vector = numeric() | 294 accuracy_vector = numeric() |
367 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] | 380 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] |
368 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] | 381 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] |
369 opls_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, opls_classes) | 382 opls_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, opls_classes) |
370 colnames(opls_classes2) = c("pixel names", "x", "y","predicted condition") | 383 colnames(opls_classes2) = c("pixel names", "x", "y","predicted condition") |
371 | 384 |
385 ## remove msidata to clean up RAM space | |
386 rm(msidata) | |
387 gc() | |
388 | |
372 opls_toplabels = topLabels(msidata.opls, n=$type_cond.method_cond.opls_analysis_cond.opls_toplabels) | 389 opls_toplabels = topLabels(msidata.opls, n=$type_cond.method_cond.opls_analysis_cond.opls_toplabels) |
390 opls_toplabels[,4:6] <-round(opls_toplabels[,4:6],6) | |
373 write.table(opls_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 391 write.table(opls_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
374 write.table(opls_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 392 write.table(opls_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
375 | 393 |
376 ## image with predicted classes | 394 ## image with predicted classes |
377 prediction_df = cbind(coord(msidata.opls)[,1:2], opls_classes) | 395 prediction_df = cbind(coord(msidata.opls)[,1:2], opls_classes) |
407 ## set variables for components and number of response groups | 425 ## set variables for components and number of response groups |
408 number_groups = length(levels(y_vector)) | 426 number_groups = length(levels(y_vector)) |
409 | 427 |
410 ## SSC-cvApply: | 428 ## SSC-cvApply: |
411 msidata.cv.ssc <- cvApply(msidata, .y = y_vector,.fold = fold_vector,.fun = "spatialShrunkenCentroids", r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s), method = "$type_cond.method_cond.ssc_kernel_method") | 429 msidata.cv.ssc <- cvApply(msidata, .y = y_vector,.fold = fold_vector,.fun = "spatialShrunkenCentroids", r = c($type_cond.method_cond.ssc_r), s = c($type_cond.method_cond.ssc_s), method = "$type_cond.method_cond.ssc_kernel_method") |
430 | |
431 ## remove msidata to clean up RAM space | |
432 rm(msidata) | |
433 gc() | |
412 | 434 |
413 ## create table with summary | 435 ## create table with summary |
414 count = 1 | 436 count = 1 |
415 summary_ssccv = list() | 437 summary_ssccv = list() |
416 accuracy_vector = numeric() | 438 accuracy_vector = numeric() |
500 ssc_classes = data.frame(msidata.ssc\$classes[[1]]) | 522 ssc_classes = data.frame(msidata.ssc\$classes[[1]]) |
501 pixel_names = gsub(", y = ", "_", names(pixels(msidata))) | 523 pixel_names = gsub(", y = ", "_", names(pixels(msidata))) |
502 pixel_names = gsub(" = ", "y_", pixel_names) | 524 pixel_names = gsub(" = ", "y_", pixel_names) |
503 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] | 525 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] |
504 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] | 526 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] |
527 | |
528 ## remove msidata to clean up RAM space | |
529 rm(msidata) | |
530 gc() | |
531 | |
505 ssc_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, ssc_classes) | 532 ssc_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, ssc_classes) |
506 colnames(ssc_classes2) = c("pixel names", "x", "y","predicted condition") | 533 colnames(ssc_classes2) = c("pixel names", "x", "y","predicted condition") |
507 ssc_toplabels = topLabels(msidata.ssc, n=$type_cond.method_cond.ssc_analysis_cond.ssc_toplabels) | 534 ssc_toplabels = topLabels(msidata.ssc, n=$type_cond.method_cond.ssc_analysis_cond.ssc_toplabels) |
535 ssc_toplabels[,6:9] <-round(ssc_toplabels[,6:9],6) | |
508 write.table(ssc_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 536 write.table(ssc_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
509 write.table(ssc_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 537 write.table(ssc_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
510 | 538 |
511 ## image with predicted classes | 539 ## image with predicted classes |
512 prediction_df = cbind(coord(msidata.ssc)[,1:2], ssc_classes) | 540 prediction_df = cbind(coord(msidata.ssc)[,1:2], ssc_classes) |
569 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] | 597 x_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,2] |
570 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] | 598 y_coordinates = matrix(unlist(strsplit(pixel_names, "_")), ncol=3, byrow=TRUE)[,3] |
571 predicted_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, predicted_classes) | 599 predicted_classes2 = data.frame(pixel_names, x_coordinates, y_coordinates, predicted_classes) |
572 colnames(predicted_classes2) = c("pixel names", "x", "y","predicted condition") | 600 colnames(predicted_classes2) = c("pixel names", "x", "y","predicted condition") |
573 predicted_toplabels = topLabels(prediction, n=$type_cond.predicted_toplabels) | 601 predicted_toplabels = topLabels(prediction, n=$type_cond.predicted_toplabels) |
602 if (colnames(predicted_toplabels)[4] == "coefficients"){ | |
603 predicted_toplabels[,4:6] <-round(predicted_toplabels[,4:6],5) | |
604 | |
605 }else{ | |
606 predicted_toplabels[,6:9] <-round(predicted_toplabels[,6:9],5)} | |
574 write.table(predicted_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 607 write.table(predicted_toplabels, file="$mzfeatures", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
575 write.table(predicted_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") | 608 write.table(predicted_classes2, file="$pixeloutput", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t") |
576 | 609 |
577 ## image with predicted classes | 610 ## image with predicted classes |
578 | 611 |
743 </when> | 776 </when> |
744 </conditional> | 777 </conditional> |
745 <param name="output_rdata" type="boolean" label="Results as .RData output" help="Can be used to generate a classification prediction on new data"/> | 778 <param name="output_rdata" type="boolean" label="Results as .RData output" help="Can be used to generate a classification prediction on new data"/> |
746 </inputs> | 779 </inputs> |
747 <outputs> | 780 <outputs> |
748 <data format="pdf" name="classification_images" from_work_dir="classificationpdf.pdf" label = "${tool.name} on ${on_string}"/> | 781 <data format="pdf" name="classification_images" from_work_dir="classificationpdf.pdf" label = "${tool.name} on ${on_string}: results"/> |
749 <data format="tabular" name="mzfeatures" label="${tool.name} on ${on_string}: features"/> | 782 <data format="tabular" name="mzfeatures" label="${tool.name} on ${on_string}: features"/> |
750 <data format="tabular" name="pixeloutput" label="${tool.name} on ${on_string}: pixels"/> | 783 <data format="tabular" name="pixeloutput" label="${tool.name} on ${on_string}: pixels"/> |
751 <data format="rdata" name="classification_rdata" label="${tool.name} on ${on_string}: results.RData"> | 784 <data format="rdata" name="classification_rdata" label="${tool.name} on ${on_string}: results.RData"> |
752 <filter>output_rdata</filter> | 785 <filter>output_rdata</filter> |
753 </data> | 786 </data> |