function Methylation() -> (CSV betaTable) { beta002raw = INPUT(path=dataDir+"/methylation/DNA_Methylation/JHU_USC__IlluminaDNAMethylation_OMA002_CPI/Level_2/jhu-usc.edu__IlluminaDNAMethylation_OMA002_CPI__beta-value") beta003raw= INPUT(path=dataDir+"/methylation/DNA_Methylation/JHU_USC__IlluminaDNAMethylation_OMA003_CPI/Level_2/jhu-usc.edu__IlluminaDNAMethylation_OMA003_CPI__beta-value") annotation002 = INPUT(path=dataDir+"/methylation/OMA-002-annotation.csv") annotation003 = INPUT(path=dataDir+"/methylation/OMA-003-annotation-geneids.csv") results002 = MethylationAnalysis(beta002raw, annotation002) results003 = MethylationAnalysis(beta003raw, annotation003) combined = CSVJoin(results002.beta, results003.beta, intersection=false) return combined.csv } function MethylationAnalysis(CSV betaRaw, CSV annotation) -> (CSV beta) { GENE_COMBINE_METHOD = "median" betaFilt1 = CSVFilter(force betaRaw, regexp="Hybridization REF=CompositeElement REF", includeColumns="", negate=true) betaFilt = SearchReplace(betaFilt1, key00="N/A", value00="NA") groups = SampleGroupCreator(betaFilt.file, pattern1="(TCGA-[0-9]+-[0-9]+)-01.*", definition1="$1,median") beta = SampleCombiner(betaFilt, groups) betaNames = CSVTransformer(beta.expr, transform1="sapply(strsplit(csv1[,1], '_', fixed=TRUE), function(x) x[1])", transform2="csv1[,2:ncol(csv1)]", columnNames="c('GeneName', colnames(csv1)[2:ncol(csv1)])") betaUnique = IDConvert(betaNames.transformed, annotation, conversionColumn="GeneID", sourceColumn="GeneName", unique=true, collapseNumeric=GENE_COMBINE_METHOD) betaResults = CSVTransformer(betaUnique.csv, transform1="csv1[,1]", transform2="sapply(1:nrow(matrix1), function(i) median(matrix1[i,], na.rm=TRUE))", transform3="sapply(1:nrow(matrix1), function(i) sd(matrix1[i,], na.rm=TRUE))", columnNames="c('GeneID', 'Beta', 'BetaSD')") return betaResults.transformed }