# HG changeset patch # User pavlo-lutsik # Date 1366199044 14400 # Node ID d1d0d07a8af4f3a43dc17539ab71748c95080020 First commit diff -r 000000000000 -r d1d0d07a8af4 RnBeadsGalaxy.R --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RnBeadsGalaxy.R Wed Apr 17 07:44:04 2013 -0400 @@ -0,0 +1,154 @@ +library(RnBeads) +library(getopt) + + + +#all.opts<-names(rnb.options()) +opt.class<-RnBeads:::OPTION.TYPES[-28] +all.opts<-names(opt.class) +#all.opts<-paste("--", all.opts, sep="") +#all.opts<-gsub("\\.([a-z])", "\\U\\1", all.opts, perl=TRUE) +all.opts<-gsub("\\.","-", all.opts) +#opt.class<-sapply(rnb.options(), class) + +rnb.opt.spec<-data.frame( + Long=all.opts, + Short=as.character(1:length(all.opts)), + Mask=c(1,2)[as.integer((opt.class=="logical"))+1], + Type=opt.class) + +### automated xml file preparation +#xml.strings<-apply(rnb.opt.spec,1, function(row){ +# +# opt.lab<-gsub("-", ".", row[1]) +# opt.def.val<-rnb.getOption(opt.lab) +# opt.name<-gsub("-([0-9a-z])", "\\U\\1", row[1], perl=TRUE) +# tf.opt<-"\t\t\t\n\t\t\t" +# opt.lab<-paste(opt.lab, gsub("\\."," ", row[4]), sep=", ") +# if(row[4]=="logical"){ +# opt.type<-'select' +# if(!is.null(opt.def.val) && opt.def.val) +# opt.def.val<-"1" else +# opt.def.val<-"0" +# string<-sprintf("\t\t\n%s\n\t\t\n", opt.name, opt.type, opt.lab, opt.def.val, tf.opt) +# }else{ +# opt.type<-'text' +# if(!is.null(opt.def.val) && opt.def.val!="") +# opt.def.val<-paste(opt.def.val, collapse=",") else +# opt.def.val<-"" +# string<-sprintf("\t\t\n", opt.name, opt.type, opt.lab, opt.def.val) +# } +# string +# }) +# +#cat(xml.strings, sep="", file="C:\\Users\\User\\workspace\\RnBeads\\Supplement\\galaxy\\automated.settings.xml.txt") +# +#opt.def.strings<-apply(rnb.opt.spec,1, function(row){ +# +# opt.name<-gsub("-([0-9a-z])", "\\U\\1", row[1], perl=TRUE) +# opt.long<-row[1] +# opt.short<-row[2] +# +# if(row[4]=="logical"){ +# def.string<-sprintf("#if str( $options.%s ) == \"True\"\n\t--%s\n#end if\n", opt.name, opt.long) +# }else{ +# def.string<-sprintf("#if str( $options.%s ) != \"\"\n\t--%s = \"$options.%s\" \n#end if\n", opt.name, opt.long, opt.name) +# } +# def.string +# +# }) +#cat(opt.def.strings, sep="", file="C:\\Users\\User\\workspace\\RnBeads\\Supplement\\galaxy\\automated.option.assignments.txt") + + +rnb.opt.spec$Type<-gsub("\\.vector", "", rnb.opt.spec$Type) +rnb.opt.spec$Type<-gsub("numeric", "double", rnb.opt.spec$Type) +rnb.opt.spec<-rbind(data.frame( + Long=c("data-type", "pheno", "idat-dir","idat-files","bed-files", "gs-report", "geo-series", "betas", "pvals","report-dir"), + Short=c("d","s","a","i","f","g","e","b","p","r"), + Mask=c(1,2,2,2,2,2,2,2,2,1), + Type=c("character","character","character","character","character","character","character","character","character","character")), + rnb.opt.spec) + +opts<-getopt(as.matrix(rnb.opt.spec)) +#opts<-getopt(as.matrix(rnb.opt.spec), opt=list("--data-type=idats","--report-dir=dir", "--idats=file1\tfile2")) +print(opts) + +if(opts[["data-type"]]=="idatDir"){ + + data.source<-list() + data.type<-"idat.dir" + data.source[["idat.dir"]]<-opts[["idat-dir"]] + data.source[["sample.sheet"]]<-opts[["pheno"]] + +}else if(opts[["data-type"]]=="idatFiles"){ + + data.type<-"idat.dir" + files<-strsplit(opts[["idat-files"]], "\t")[[1]] + idat.dir<-mkdir(file.path(opts[["report-dir"]], "idats")) + file.copy(as.list(files), idat.dir) + data.source<-list() + data.source[["idat.dir"]]<-idat.dir + data.source[["sample.sheet"]]<-opts[["pheno"]] + + +}else if(opts[["data-type"]]=="GS.report"){ + + data.type<-"GS.report" + data.source<-opts[["gs-report"]] + +}else if(opts[["data-type"]]=="GEO"){ + + data.type<-"GEO" + data.source<-opts[["geo-series"]] + + +}else if(opts[["data-type"]]=="data.files"){ + + data.type<-"GEO" + data.source<-opts[["geo-series"]] + +}else if(opts[["data-type"]]=="data.files"){ + + data.type<-"data.files" + data.source<-c(opts[["pheno"]], opts[["betas"]]) + if(!is.null(opts[["pvals"]])) + data.source<-c(data.source, opts[["pvals"]]) + +}else if(opts[["data-type"]]=="beds"){ + + data.type<-"idat.dir" + files<-strsplit(opts[["bed-files"]], "\t")[[1]] + bed.dir<-mkdir(file.path(opts[["report-dir"]], "beds")) + file.copy(as.list(files), bed.dir) + data.source<-list() + data.source[["bed.dir"]]<-bed.dir + data.source[["sample.sheet"]]<-opts[["pheno"]] + +} + +dump<-sapply(names(opt.class), function(on){ + getopname<-gsub("\\.","-",on) + if(getoptname %in% names(opts)){ + if(opt.class[on]=="logical"){ + rnb.options(on=TRUE) + }else if(opt.class %in% c("character","character.vector")){ + ov<-opts[[getoptname]] + ov<-gsub("\"", "", ov) + if(opt.class=="character.vector"){ + ov<-as.character(strsplit(ov,",")) + } + rnb.options(on=ov) + }else if(opt.class %in% c("integer","numeric","integer.vector","numeric.vector")){ + ov<-opts[[getoptname]] + ov<-gsub("\"", "", ov) + if(opt.class %in% c("integer.vector","numeric.vector")){ + ov<-as.character(strsplit(ov,",")) + } + rnb.options(on=ov) + } + } +}) + + +rnb.run.analysis(data.source=data.source, dir.report=opts[["report-dir"]], data.type=data.type) + diff -r 000000000000 -r d1d0d07a8af4 install.rnbeads.R --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/install.rnbeads.R Wed Apr 17 07:44:04 2013 -0400 @@ -0,0 +1,1 @@ +source("http://rnbeads.mpi-inf.mpg.de/install.R") \ No newline at end of file diff -r 000000000000 -r d1d0d07a8af4 rnbeads.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rnbeads.xml Wed Apr 17 07:44:04 2013 -0400 @@ -0,0 +1,495 @@ + + + Performs RnBeads analysis for the selected set of + + R_SCRIPTS_PATH + R + + rnbeads_galaxy_wrapper.sh + #if str( $inputDataSelector.dataType ) == "idat" + --data-type="idat.dir" + --pheno="$inputDataSelector.sampleAnnotations" + #if str( $idatSelector.idatSelector.idatSource ) == "history" + --idat-files ==" + #for $input_files in $inputDataSelector.input_series: + ${input_files.input_files}\t + #end for + " + #else: + --idat-files == "$idatRepo" + #end if + #end if + #if str( $inputDataSelector.dataType ) == "gsreport" + --data-type="GS.report" + --gs-report="$inputDataSelector.gsReportFile" + #end if + #if str( $inputDataSelector.dataType ) == "geo" + --data-type="GEO" + --geo-series=$inputDataSelector.geoSeries + #end if + #if str( $inputDataSelector.dataType ) == "tables" + --data-type="data.files" + --pheno="$inputDataSelector.sampleAnnotations" + #end if + #if str( $inputDataSelector.dataType ) == "tables" + --data-type="data.files" + --pheno="$inputDataSelector.sampleAnnotations" + --betas="$inputDataSelector.betaTable" + --pvals="$inputDataSelector.pvalTable" + #end if + #if str( $inputDataSelector.dataType ) == "bed" + --data-type="bed.dir" + --pheno="$inputDataSelector.sampleAnnotations" + --beds ==" + #for $input_files in $inputDataSelector.input_series: + ${input_files.input_files}\t + #end for + #end if + --report-dir="$html_file.files_path" + #if str( $options.optionSet ) == "full" + #if str( $options.analysisName ) != "" + --analysis-name = "$options.analysisName" + #end if + #if str( $options.logging ) == "True" + --logging + #end if + #if str( $options.email ) != "" + --email = "$options.email" + #end if + #if str( $options.assembly ) != "" + --assembly = "$options.assembly" + #end if + #if str( $options.analyzeSites ) == "True" + --analyze-sites + #end if + #if str( $options.regionTypes ) != "" + --region-types = "$options.regionTypes" + #end if + #if str( $options.identifiersColumn ) != "" + --identifiers-column = "$options.identifiersColumn" + #end if + #if str( $options.pointsCategory ) != "" + --points-category = "$options.pointsCategory" + #end if + #if str( $options.colorsCategory ) != "" + --colors-category = "$options.colorsCategory" + #end if + #if str( $options.colorsGradient ) != "" + --colors-gradient = "$options.colorsGradient" + #end if + #if str( $options.minGroupSize ) != "" + --min-group-size = "$options.minGroupSize" + #end if + #if str( $options.maxGroupCount ) != "" + --max-group-count = "$options.maxGroupCount" + #end if + #if str( $options.gzLargeFiles ) == "True" + --gz-large-files + #end if + #if str( $options.strandSpecific ) == "True" + --strand-specific + #end if + #if str( $options.replicateIdColumn ) != "" + --replicate-id-column = "$options.replicateIdColumn" + #end if + #if str( $options.loadingNormalization ) == "True" + --loading-normalization + #end if + #if str( $options.loadingDefaultDataType ) != "" + --loading-default-data-type = "$options.loadingDefaultDataType" + #end if + #if str( $options.loadingTableSeparator ) != "" + --loading-table-separator = "$options.loadingTableSeparator" + #end if + #if str( $options.loadingBedStyle ) != "" + --loading-bed-style = "$options.loadingBedStyle" + #end if + #if str( $options.loadingBedColumns ) != "" + --loading-bed-columns = "$options.loadingBedColumns" + #end if + #if str( $options.loadingBedFrameShift ) != "" + --loading-bed-frame-shift = "$options.loadingBedFrameShift" + #end if + #if str( $options.normalizationMethod ) != "" + --normalization-method = "$options.normalizationMethod" + #end if + #if str( $options.qc ) == "True" + --qc + #end if + #if str( $options.qcBoxplots ) == "True" + --qc-boxplots + #end if + #if str( $options.qcBarplots ) == "True" + --qc-barplots + #end if + #if str( $options.qcNegativeBoxplot ) == "True" + --qc-negative-boxplot + #end if + #if str( $options.qcSnpHeatmap ) == "True" + --qc-snp-heatmap + #end if + #if str( $options.qcSnpBoxplot ) == "True" + --qc-snp-boxplot + #end if + #if str( $options.qcSnpBarplot ) == "True" + --qc-snp-barplot + #end if + #if str( $options.qcSampleBatchSize ) != "" + --qc-sample-batch-size = "$options.qcSampleBatchSize" + #end if + #if str( $options.filteringContextRemoval ) != "" + --filtering-context-removal = "$options.filteringContextRemoval" + #end if + #if str( $options.filteringSnp ) == "True" + --filtering-snp + #end if + #if str( $options.filteringSnpFrequency ) != "" + --filtering-snp-frequency = "$options.filteringSnpFrequency" + #end if + #if str( $options.filteringSnpAccepted ) != "" + --filtering-snp-accepted = "$options.filteringSnpAccepted" + #end if + #if str( $options.filteringSexChromosomesRemoval ) == "True" + --filtering-sex-chromosomes-removal + #end if + #if str( $options.filteringMissingValueQuantile ) != "" + --filtering-missing-value-quantile = "$options.filteringMissingValueQuantile" + #end if + #if str( $options.filteringCoverageThreshold ) != "" + --filtering-coverage-threshold = "$options.filteringCoverageThreshold" + #end if + #if str( $options.filteringLowCoverageMasking ) == "True" + --filtering-low-coverage-masking + #end if + #if str( $options.filteringHighCoverageOutliers ) == "True" + --filtering-high-coverage-outliers + #end if + #if str( $options.filteringGreedycut ) == "True" + --filtering-greedycut + #end if + #if str( $options.filteringGreedycutPvalueThreshold ) != "" + --filtering-greedycut-pvalue-threshold = "$options.filteringGreedycutPvalueThreshold" + #end if + #if str( $options.filteringGreedycutRcTies ) != "" + --filtering-greedycut-rc-ties = "$options.filteringGreedycutRcTies" + #end if + #if str( $options.filteringDeviationThreshold ) != "" + --filtering-deviation-threshold = "$options.filteringDeviationThreshold" + #end if + #if str( $options.batch ) == "True" + --batch + #end if + #if str( $options.batchDreductionColumns ) != "" + --batch-dreduction-columns = "$options.batchDreductionColumns" + #end if + #if str( $options.batchPrincipalComponents ) != "" + --batch-principal-components = "$options.batchPrincipalComponents" + #end if + #if str( $options.batchCorrelationColumns ) != "" + --batch-correlation-columns = "$options.batchCorrelationColumns" + #end if + #if str( $options.batchCorrelationPvalueThreshold ) != "" + --batch-correlation-pvalue-threshold = "$options.batchCorrelationPvalueThreshold" + #end if + #if str( $options.batchCorrelationPermutations ) != "" + --batch-correlation-permutations = "$options.batchCorrelationPermutations" + #end if + #if str( $options.batchCorrelationQc ) == "True" + --batch-correlation-qc + #end if + #if str( $options.profiles ) == "True" + --profiles + #end if + #if str( $options.profilesBetaDistribution ) == "True" + --profiles-beta-distribution + #end if + #if str( $options.profilesIntersample ) == "True" + --profiles-intersample + #end if + #if str( $options.profilesDeviationPlots ) == "True" + --profiles-deviation-plots + #end if + #if str( $options.profilesColumns ) != "" + --profiles-columns = "$options.profilesColumns" + #end if + #if str( $options.profilesClustering ) == "True" + --profiles-clustering + #end if + #if str( $options.profilesClusteringTopProbes ) != "" + --profiles-clustering-top-probes = "$options.profilesClusteringTopProbes" + #end if + #if str( $options.regionProfilesTypes ) != "" + --region-profiles-types = "$options.regionProfilesTypes" + #end if + #if str( $options.differential ) == "True" + --differential + #end if + #if str( $options.differentialPermutations ) != "" + --differential-permutations = "$options.differentialPermutations" + #end if + #if str( $options.differentialComparisonColumns ) != "" + --differential-comparison-columns = "$options.differentialComparisonColumns" + #end if + #if str( $options.differentialEnrichment ) == "True" + --differential-enrichment + #end if + #if str( $options.exportToUcsc ) != "" + --export-to-ucsc = "$options.exportToUcsc" + #end if + #if str( $options.exportToBed ) == "True" + --export-to-bed + #end if + #if str( $options.exportToCsv ) == "True" + --export-to-csv + #end if + #if str( $options.exportTypes ) != "" + --export-types = "$options.exportTypes" + #end if + #if str( $options.colors3Gradient ) != "" + --colors-3-gradient = "$options.colors3Gradient" + #end if + #if str( $options.loggingMemory ) == "True" + --logging-memory + #end if + #if str( $options.usePstoimg ) == "True" + --use-pstoimg + #end if + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RnBeads is an R-package for comprehensive analysis of Illumina Infinium HumanMethylation450 BeadChip data. It extends previous approaches for this type of data analysis by high throughput capabilities, as well as presenting results in a comprehensive, highly interpretable fashion. + + + \ No newline at end of file diff -r 000000000000 -r d1d0d07a8af4 rnbeads_galaxy_wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rnbeads_galaxy_wrapper.sh Wed Apr 17 07:44:04 2013 -0400 @@ -0,0 +1,4 @@ +#!/bin/bash + +#Rscript --slave $(dirname $(readlink -f $0))/RnBeadsGalaxy.R $* +Rscript --slave \$R_SCRIPTS_PATH/RnBeadsGalaxy.R $* \ No newline at end of file diff -r 000000000000 -r d1d0d07a8af4 rnbeads_repos.txt.sample --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rnbeads_repos.txt.sample Wed Apr 17 07:44:04 2013 -0400 @@ -0,0 +1,1 @@ +repo1 Repository1 /data/iscan/idats \ No newline at end of file diff -r 000000000000 -r d1d0d07a8af4 tool_data_table_conf.xml.sample --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_data_table_conf.xml.sample Wed Apr 17 07:44:04 2013 -0400 @@ -0,0 +1,6 @@ + + + id, name, value + +
+
\ No newline at end of file diff -r 000000000000 -r d1d0d07a8af4 tool_dependencies.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_dependencies.xml Wed Apr 17 07:44:04 2013 -0400 @@ -0,0 +1,22 @@ + + + + $REPOSITORY_INSTALL_DIR + + + + + http://CRAN.R-project.org/src/base/R-3/R-3.0.0.tar.gz + ./configure --prefix=$INSTALL_DIR --with-x=no + make + + $INSTALL_DIR/bin + + R --no-save <<< "source('http://rnbeads.mpi-inf.mpg.de')" + + + + You need a FORTRAN compiler or perhaps f2c in addition to a C compiler to build R. + + + \ No newline at end of file