## ---- eval = FALSE--------------------------------------------------------- # if (!requireNamespace("BiocManager", quietly=TRUE)) # install.packages("BiocManager") # bioLite("TCGAbiolinksGUI.data") ## ---- eval = FALSE--------------------------------------------------------- # devtools::install_github(repo = "BioinformaticsFMRP/TCGAbiolinksGUI.data") ## ---- eval = TRUE---------------------------------------------------------- library(TCGAbiolinksGUI.data) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # # Defining parameters # getGDCdisease <- function(){ # projects <- TCGAbiolinks:::getGDCprojects() # projects <- projects[projects$id != "FM-AD",] # disease <- projects$project_id # idx <- grep("disease_type",colnames(projects)) # names(disease) <- paste0(projects[[idx]], " (",disease,")") # disease <- disease[sort(names(disease))] # return(disease) # } ## -------------------------------------------------------------------------- data(GDCdisease) DT::datatable(as.data.frame(GDCdisease)) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # getMafTumors <- function(){ # root <- "https://gdc-api.nci.nih.gov/data/" # maf <- fread("https://gdc-docs.nci.nih.gov/Data/Release_Notes/Manifests/GDC_open_MAFs_manifest.txt", # data.table = FALSE, verbose = FALSE, showProgress = FALSE) # tumor <- unlist(lapply(maf$filename, function(x){unlist(str_split(x,"\\."))[2]})) # proj <- TCGAbiolinks:::getGDCprojects() # # disease <- gsub("TCGA-","",proj$project_id) # idx <- grep("disease_type",colnames(proj)) # names(disease) <- paste0(proj[[idx]], " (",proj$project_id,")") # disease <- sort(disease) # ret <- disease[disease %in% tumor] # return(ret) # } ## -------------------------------------------------------------------------- data(maf.tumor) DT::datatable(as.data.frame(maf.tumor)) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # library(readr) # library(readxl) # library(dplyr) # library(caret) # library(randomForest) # library(doMC) # library(e1071) # # # Control random number generation # set.seed(210) # set a seed to RNG # # # register number of cores to be used for parallel evaluation # registerDoMC(cores = parallel::detectCores()) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # file <- "https://tcga-data.nci.nih.gov/docs/publications/lgggbm_2016/LGG.GBM.meth.txt" # if(!file.exists(basename(file))) downloader::download(file,basename(file)) # LGG.GBM <- as.data.frame(readr::read_tsv(basename(file))) # rownames(LGG.GBM) <- LGG.GBM$Composite.Element.REF # idx <- grep("TCGA",colnames(LGG.GBM)) # colnames(LGG.GBM)[idx] <- substr(colnames(LGG.GBM)[idx], 1, 12) # reduce complete barcode to sample identifier (first 12 characters) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # file <- "http://www.cell.com/cms/attachment/2045372863/2056783242/mmc2.xlsx" # if(!file.exists(basename(file))) downloader::download(file,basename(file)) # metadata <- readxl::read_excel(basename(file), sheet = "S1A. TCGA discovery dataset", skip = 1) # DT::datatable(metadata[,c("Case", # "Pan-Glioma DNA Methylation Cluster", # "Supervised DNA Methylation Cluster", # "IDH-specific DNA Methylation Cluster")]) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # file <- "http://zwdzwd.io/InfiniumAnnotation/current/EPIC/EPIC.manifest.hg38.rda" # if(!file.exists(basename(file))) downloader::download(file,basename(file)) # load(basename(file)) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # file <- "https://tcga-data.nci.nih.gov/docs/publications/lgggbm_2015/PanGlioma_MethylationSignatures.xlsx" # if(!file.exists(basename(file))) downloader::download(file,basename(file)) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # sheet <- "1,300 pan-glioma tumor specific" # trainingset <- grep("mut|wt",unique(metadata$`Pan-Glioma DNA Methylation Cluster`),value = T) # trainingcol <- c("Pan-Glioma DNA Methylation Cluster") ## ---- eval=FALSE, include=TRUE--------------------------------------------- # plat <- "EPIC" # signature.probes <- read_excel("PanGlioma_MethylationSignatures.xlsx", sheet = sheet) %>% pull(1) # samples <- dplyr::filter(metadata, `IDH-specific DNA Methylation Cluster` %in% trainingset) # RFtrain <- LGG.GBM[signature.probes, colnames(LGG.GBM) %in% as.character(samples$Case)] %>% na.omit ## ---- eval=FALSE, include=TRUE--------------------------------------------- # RFtrain <- RFtrain[!EPIC.manifest.hg38[rownames(RFtrain)]$MASK.general,] ## ---- eval=FALSE, include=TRUE--------------------------------------------- # trainingdata <- t(RFtrain) # trainingdata <- merge(trainingdata, metadata[,c("Case", trainingcol[model])], by.x=0,by.y="Case", all.x=T) # rownames(trainingdata) <- as.character(trainingdata$Row.names) # trainingdata$Row.names <- NULL ## ---- eval=FALSE, include=TRUE--------------------------------------------- # nfeat <- ncol(trainingdata) # trainingdata[,trainingcol] <- factor(trainingdata[,trainingcol]) # mtryVals <- floor(sqrt(nfeat)) # for(i in floor(seq(sqrt(nfeat), nfeat/2, by = 2 * sqrt(nfeat)))) { # print(i) # x <- as.data.frame(tuneRF(trainingdata[,-grep(trainingcol[model],colnames(trainingdata))], # trainingdata[,trainingcol[model]], # stepFactor=2, # plot= FALSE, # mtryStart = i)) # mtryVals <- unique(c(mtryVals, x$mtry[which (x$OOBError == min(x$OOBError))])) # } # mtryGrid <- data.frame(.mtry=mtryVals) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # fitControl <- trainControl(method = "repeatedcv", # number = 10, # verboseIter = TRUE, # repeats = 10) ## ---- eval=FALSE, include=TRUE--------------------------------------------- # glioma.idh.model <- train(y = trainingdata[,trainingcol], # variable to be trained on # x = trainingdata[,-grep(trainingcol,colnames(trainingdata))], # Daat labels # data = trainingdata, # Data we are using # method = "rf", # Method we are using # trControl = fitControl, # How we validate # ntree = 5000, # number of trees # importance = TRUE, # tuneGrid = mtryGrid, # set mtrys, the value that procuded a better model is used # ) ## -------------------------------------------------------------------------- data(glioma.idh.model) glioma.idh.model ## ---- eval=FALSE, include=TRUE--------------------------------------------- # sheet <- "1,308 IDHmutant tumor specific " # trainingset <- grep("mut",unique(metadata$`IDH-specific DNA Methylation Cluster`),value = T) # trainingcol <- "IDH-specific DNA Methylation Cluster" ## -------------------------------------------------------------------------- data(glioma.idhmut.model) glioma.idhmut.model ## ---- eval=FALSE, include=TRUE--------------------------------------------- # sheet <- "163 probes that define each TC" # trainingset <- c("IDHmut-K1","IDHmut-K2") # trainingcol <- "Supervised DNA Methylation Cluster" ## -------------------------------------------------------------------------- data("glioma.gcimp.model") glioma.gcimp.model ## ---- eval=FALSE, include=TRUE--------------------------------------------- # sheet <- "914 IDHwildtype tumor specific " # trainingset <- grep("wt",unique(metadata$`IDH-specific DNA Methylation Cluster`),value = T)) # trainingcol <- "IDH-specific DNA Methylation Cluster" ## -------------------------------------------------------------------------- data("glioma.idhwt.model") glioma.idhwt.model ## -------------------------------------------------------------------------- data("probes2rm") head(probes2rm) ## ----sessionInfo----------------------------------------------------------- sessionInfo()