Mercurial > repos > iuc > iwtomics_testandplot
comparison testandplot.R @ 0:800c7e974e3b draft
planemo upload for repository https://github.com/fabio-cumbo/IWTomics4Galaxy commit 90c984bb9f803e1531fe4cb670e876809d48d205
| author | iuc |
|---|---|
| date | Fri, 04 Aug 2017 17:51:00 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:800c7e974e3b |
|---|---|
| 1 if (require("IWTomics",character.only = TRUE,quietly = FALSE)) { | |
| 2 args=commandArgs(TRUE) | |
| 3 | |
| 4 # get args names and values | |
| 5 args_values=strsplit(args,'=') | |
| 6 args_names=unlist(lapply(args_values,function(arg) arg[1])) | |
| 7 names(args_values)=args_names | |
| 8 args_values=lapply(args_values,function(arg) arg[2]) | |
| 9 # read filenames | |
| 10 adjustedpvaluematrix=args_values$adjustedpvaluematrix | |
| 11 iwtomicsrespdf=args_values$iwtomicsrespdf | |
| 12 iwtomicssumpdf=args_values$iwtomicssumpdf | |
| 13 regionids=args_values$regionids | |
| 14 featureids=args_values$featureids | |
| 15 rdatafile=args_values$rdatafile | |
| 16 iwtomicsrdata=args_values$iwtomicsrdata | |
| 17 iwtomicstests=args_values$iwtomicstests | |
| 18 iwtomicsselectedfeatures=args_values$iwtomicsselectedfeatures | |
| 19 # read parameters (from region1 on) | |
| 20 i_region1=which(args_names=='region1') | |
| 21 for(i in i_region1:length(args)){ | |
| 22 eval(parse(text=args[[i]])) | |
| 23 } | |
| 24 | |
| 25 # load RData | |
| 26 load(rdatafile) | |
| 27 # read regionids and featureids | |
| 28 regionids=as.character(read.delim(regionids,header=FALSE,sep='\t',stringsAsFactors=FALSE)) | |
| 29 featureids=as.character(read.delim(featureids,header=FALSE,sep='\t',stringsAsFactors=FALSE)) | |
| 30 # retrieve region1, region2 and features_subset ids and check they are in the RData | |
| 31 id_region1=regionids[region1] | |
| 32 id_region2=regionids[region2] | |
| 33 id_features_subset=featureids[features_subset] | |
| 34 if(length(setdiff(c(id_region1,id_region2),idRegions(regionsFeatures)))!=0){ | |
| 35 write("Wrong region ids.", stderr()) | |
| 36 quit(save="no", status=10) | |
| 37 } | |
| 38 if(length(setdiff(id_features_subset,idFeatures(regionsFeatures)))!=0){ | |
| 39 write("Wrong feature ids.", stderr()) | |
| 40 quit(save="no", status=20) | |
| 41 } | |
| 42 if(sum(duplicated(paste0(id_region1,id_region2)))){ | |
| 43 write("Same test repeated multiple times.", stderr()) | |
| 44 quit(save="no", status=30) | |
| 45 } | |
| 46 | |
| 47 # perform test | |
| 48 tryCatch({ | |
| 49 # fix repeated probs | |
| 50 if(statistics=='quantile'){ | |
| 51 # fix repeated probs | |
| 52 testprobs=sort(unique(testprobs)) | |
| 53 }else{ | |
| 54 testprobs=0.5 | |
| 55 } | |
| 56 regionsFeatures_test=IWTomicsTest(regionsFeatures,id_region1,id_region2,id_features_subset, | |
| 57 statistics=statistics,probs=testprobs,B=B) | |
| 58 # create adjustedvaluematrix output | |
| 59 for(test in seq_along(id_region1)){ | |
| 60 for(id_feature in id_features_subset){ | |
| 61 write(paste0('Test: ',id_region1[test],' vs ',id_region2[test],', on feature ',id_feature), | |
| 62 file=adjustedpvaluematrix,append=TRUE,sep='\t') | |
| 63 pval=regionsFeatures_test@test$result[[test]][[id_feature]]$adjusted_pval_matrix | |
| 64 row.names(pval)=paste('Scale',rev(seq_len(nrow(pval)))) | |
| 65 write.table(pval,file=adjustedpvaluematrix,append=TRUE,sep='\t',quote=FALSE,row.names=TRUE,col.names=FALSE) | |
| 66 write('',file=adjustedpvaluematrix,append=TRUE,sep='\t') | |
| 67 } | |
| 68 } | |
| 69 }, error = function(err) { | |
| 70 write("Testing error.", stderr()) | |
| 71 quit(save="no", status=40) #error testing | |
| 72 }) | |
| 73 | |
| 74 # plot test results | |
| 75 pdf(iwtomicsrespdf,width=5,height=7) | |
| 76 if(plottype=='boxplot'){ | |
| 77 # fix repeated probs | |
| 78 probs=sort(unique(probs)) | |
| 79 }else{ | |
| 80 probs=c(0.25,0.5,0.75) | |
| 81 } | |
| 82 plotTest(regionsFeatures_test,alpha=testalpha,type=plottype,probs=probs,average=average,size=size,ask=FALSE) | |
| 83 dev.off() | |
| 84 | |
| 85 # plot summary results | |
| 86 if(groupby!='none'){ | |
| 87 pdf(iwtomicssumpdf,width=15,height=10) | |
| 88 plotSummary(regionsFeatures_test,alpha=summaryalpha,only_significant=only_significant,groupby=groupby,ask=FALSE,append=TRUE) | |
| 89 dev.off() | |
| 90 } | |
| 91 | |
| 92 # create output | |
| 93 write.table(as.data.frame(t(paste(id_region1,'vs',id_region2))),file=iwtomicstests,quote=FALSE,sep='\t',row.names=FALSE,col.names=FALSE) | |
| 94 write.table(as.data.frame(t(idFeatures(regionsFeatures_test))),file=iwtomicsselectedfeatures,quote=FALSE,sep='\t',row.names=FALSE,col.names=FALSE) | |
| 95 save(regionsFeatures_test,file=iwtomicsrdata) | |
| 96 }else{ | |
| 97 write("Missing IWTomics package. Please be sure to have it installed before using this tool.", stderr()) | |
| 98 quit(save="no", status=255) | |
| 99 } |
