832 lines (831 with data), 128.9 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"## Perform clinical annotation-based comparison \n",
"## INPUTS:\n",
"# factorizations = already computed factirizations\n",
"# clinical = clinical information associated with samples\n",
"# col = columns in clinical data on which the analysis will be performed\n",
"## OUPUTS: a list containing output values\n",
"# selectivity = Selectivity (fraction of significant annotations per all significant factors)\n",
"# nonZeroFacs = Number of unique factors that were significant at least once\n",
"# total_pathways = Number of clinical annotations with at least one significant factor component\n",
"##执行基于临床注释的比较\n",
"##输入:\n",
"#factorizations=已计算的因式分解\n",
"#clinical=与样本相关的临床信息\n",
"#col=将对其执行分析的临床数据列\n",
"##输出:包含输出值的列表\n",
"#selectivity=选择性(每个重要因素的重要注释分数)\n",
"#nonZeroFacs=至少一次显著的唯一因素的数量\n",
"#total_pathways=至少有一个显著因子成分的临床注释数\n",
"clinical_comparison <- function(factorizations, clinical, col){\n",
"\n",
" # Empty containers\n",
" line <- numeric(0)\n",
" line2 <- numeric(0)\n",
" line3 <- numeric(0)\n",
"\n",
" # For each factorization\n",
" for(i in 1:length(factorizations)){\n",
"\n",
" # Extract sample association\n",
" factors <- factorizations[[i]][[1]]\n",
" if(is.null(names(factors))) { names(factors) <- 1:ncol(factors) }\n",
" if(is.null(colnames(factors))) { colnames(factors) <- 1:ncol(factors) }\n",
"\n",
" # Patient names in factorisation results\n",
" patient.names <- rownames(factors)\n",
" # Patient names in original data\n",
" patient.names.in.file <- as.character(clinical[, 1])\n",
" patient.names.in.file <- toupper(gsub('-', '\\\\.', patient.names.in.file))\n",
" # Remove non-matching patient names\n",
" is_in_file <- patient.names %in% patient.names.in.file\n",
" if(length(patient.names)!=sum(is_in_file)) {\n",
" factors <- factors[is_in_file, ]\n",
" patient.names <- patient.names[is_in_file]\n",
" rownames(factors)<-patient.names\n",
" }\n",
" # Match indices of patient names\n",
" indices <- match(patient.names, patient.names.in.file)\n",
" # Use indices to extract coresponding survival information\n",
" ordered.clinical.data <- clinical[indices,] \n",
" \n",
" # Only use column names that are really present in the data\n",
" col_new <- col[col %in% colnames(ordered.clinical.data)]\n",
"\n",
" # Stor all p-values\n",
" pvalues <- numeric(0)\n",
" # Store number of significant annotations\n",
" clin_erich <- 0 \n",
" \n",
" # Test significance association with clinical annotations\n",
" for(j in col_new){\n",
" \n",
" # Perform the analysis if there is more than one possible value in current column\n",
" table_values <- table(ordered.clinical.data[,j])\n",
" if(sum(table_values>0)>1){\n",
"\n",
" if(j == \"age_at_initial_pathologic_diagnosis\" ){\n",
" pvalues_col <- apply(factors, MARGIN=2, \n",
" function(x) kruskal.test(x~cut(as.numeric(ordered.clinical.data[,j]),\n",
" 5, include.lowest=TRUE))$p.value)\n",
" pvalues <- c(pvalues, pvalues_col)\n",
" if(min(pvalues_col)<0.05){\n",
" clin_erich <- clin_erich+1\n",
" }\n",
" }else if(j == \"days_to_new_tumor_event_after_initial_treatment\"){\n",
" pvalues_col <- apply(factors,MARGIN=2, \n",
" function(x) kruskal.test(x~cut(as.numeric(ordered.clinical.data[,j]), \n",
" 3, include.lowest=TRUE))$p.value)\n",
" pvalues <- c(pvalues, pvalues_col)\n",
" if(min(pvalues_col)<0.05){\n",
" clin_erich <- clin_erich+1\n",
" }\n",
" }else if(j == \"gender\" || j == \"history_of_neoadjuvant_treatment\"){\n",
" pvalues_col <- apply(factors, MARGIN=2, \n",
" function(x) wilcox.test(x~ordered.clinical.data[,j])$p.value)\n",
" pvalues <- c(pvalues, pvalues_col)\n",
" if(min(pvalues_col)<0.05){\n",
" clin_erich <- clin_erich+1\n",
" }\n",
" }\n",
" }\n",
" }\n",
" \n",
" # Number of clinical annotations with at least one significant p-value\n",
" line3 <- rbind(line3, clin_erich)\n",
"\n",
" # Total number of significant factors in all tested columns\n",
" column <- names(pvalues)[pvalues<0.05]\n",
" # Number of unique factors that were significant at least once\n",
" line2<-rbind(line2, length(unique(column)))\n",
"\n",
" # Number of times a p-value was found significant\n",
" signif <- length(column)\n",
" f<-length(unique(column)) \n",
" # Selectivity \n",
" if(signif!=0){\n",
" line <- rbind(line,((clin_erich/signif)+(f/signif))/2)\n",
" }else{\n",
" line <- rbind(line,0)\n",
" }\n",
"\n",
" }\n",
" \n",
" # Store and return results\n",
" out <- data.frame(selectivity=line, nonZeroFacs=line2, total_pathways=line3)\n",
"# print(out)\n",
" return(out)\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"library('survival')\n",
"\n",
"## Perform survival annotation-based comparison \n",
"## INPUTS:\n",
"# factorizations = already computed factirizations\n",
"# method = methods used for factorization\n",
"# survival = survival data associated to the cancer\n",
"# out.folder = folder where results will be written\n",
"# cancer = name of currently analysed cancer\n",
"## OUPUTS: a list containing output values\n",
"\n",
"##执行基于注释的比较\n",
"##输入:\n",
"#factorizations=已计算的因式分解\n",
"#method=用于因子分解的方法\n",
"#survival=与癌症相关的生存数据\n",
"# out.folder文件夹=将写入结果的文件夹\n",
"#cancer=当前分析癌症的名称\n",
"##输出:包含输出值的列表\n",
"survival_comparison <- function(factorizations, method, survival, out.folder, cancer){\n",
" \n",
" # Initialize result containers\n",
" factors_cancer <- numeric(0)\n",
" surv_final <- numeric(0)\n",
" \n",
" # Adjust sample names for breast survival dataset\n",
" if(cancer==\"breast\"){survival[,1] <- paste0(survival[,1],\"-01\")}\n",
" if(cancer==\"gbm\"){survival[,1] <- paste0(survival[,1],\"-01\")}\n",
" if(cancer==\"lung\"){survival[,1] <- paste0(survival[,1],\"-01\")}\n",
" \n",
" \n",
" # For each computed factorisation\n",
" for(i in 1:length(factorizations)){\n",
"\n",
" # Extract sample factors \n",
" factors <- factorizations[[i]][[1]]\n",
"\n",
" # Patient names in factorisation results\n",
" patient.names <- rownames(factors)\n",
" # Patient names in original data\n",
" patient.names.in.file <- as.character(survival[, 1])\n",
" patient.names.in.file <- toupper(gsub('-', '\\\\.', patient.names.in.file))\n",
" # Remove non-matching patient names\n",
" is_in_file <- patient.names %in% patient.names.in.file\n",
" if(length(patient.names)!=sum(is_in_file)) {\n",
" factors <- factors[is_in_file, ]\n",
" patient.names <- patient.names[is_in_file]\n",
" rownames(factors)<-patient.names\n",
" }\n",
" # Match indices of patient names\n",
" indices <- match(patient.names, patient.names.in.file)\n",
" # Use indices to extract coresponding survival information\n",
" ordered.survival.data <- survival[indices,]\n",
" # Clean data (assign 0 to NAs)\n",
" ordered.survival.data$Survival[is.na(ordered.survival.data$Survival)] <- 0\n",
" ordered.survival.data$Death[is.na(ordered.survival.data$Death)] <- 0\n",
"\n",
" # Calculate coxph\n",
" coxph_obj <- coxph(Surv(ordered.survival.data$Survival, ordered.survival.data$Death) ~ factors)\n",
" # P-values (corrected by the number of methods)\n",
" pvalues <- length(factorizations)*as.matrix(coef(summary(coxph_obj))[,5])\n",
"\n",
" # How many significant? \n",
" factors_cancer <- c(factors_cancer, sum(pvalues<0.05))\n",
" # Store p-values\n",
" surv_final <- cbind(surv_final, pvalues) \n",
" }\n",
" # Keep -log10 of p-values\n",
" surv_final<-(-log10(surv_final))\n",
" print(surv_final)\n",
" write.table(surv_final, paste0(cancer, \"surv_final.txt\"), sep=\"\\t\", \n",
" row.names=FALSE,col.names=c(\"AE_FAETC\",\"AE_FCTAE\",\"DAE_FAETC\",\"DAE_FCTAE\",\"VAE_FCTAE\",\"SVAE\",\"MMDVAE\"))\n",
" # Plot survival pvalues for each cancer type separately\n",
" png(file=paste0(out.folder, \"survival_\", cancer, \".png\"), width = 15, height = 15, units = 'in', res = 200)\n",
" matplot(1:length(method), t(surv_final), \n",
" col=\"black\", pch=18, xlab=\"Method\", ylab=\"Pvalues survival\", xaxt=\"none\", cex=1.5)\n",
" abline(h = (-log10(0.05)), v=0, col=\"black\", lty=3, lwd=3)\n",
" #axis(1, at=1:length(method), labels=colnames(surv_final)) \n",
" axis(1, at=1:length(method), labels=c(\"AE_FAETC\",\"AE_FCTAE\",\"DAE_FAETC\",\"DAE_FCTAE\",\"VAE_FCTAE\",\"SVAE\",\"MMDVAE\")) \n",
" \n",
" dev.off()\n",
"\n",
"# print(factors_cancer)\n",
" return(factors_cancer)\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"library(\"fgsea\", quietly = TRUE)\n",
"\n",
"## Perform biological annotation-based comparison \n",
"## INPUTS:\n",
"# factorizations = already computed factirizations\n",
"# path.database = path to a GMT annotation file\n",
"# pval.thr = p-value threshold (default to 0.05)\n",
"## OUPUTS: a list containing output values\n",
"# selectivity = Selectivity (fraction of significant annotations per all significant factors)\n",
"# nonZeroFacs = Number of unique factors that were significant at least once\n",
"# total_pathways = Number of clinical annotations with at least one significant factor component\n",
"biological_comparison <- function(factorizations, path.database, pval.thr=0.05){\n",
" \n",
" # Load annotation database\n",
" pathways <- gmtPathways(path.database)\n",
" \n",
" # Containers to report results\n",
" report_number <- numeric(0)\n",
" report_nnzero <- numeric(0)\n",
" report_select <- numeric(0)\n",
" \n",
" # For each factorization method\n",
" for(i in 1:length(factorizations)){\n",
" \n",
" # Extract metagenes found by factorization method\n",
" metagenes<-factorizations[[i]][[2]][[1]]\n",
" # Number of factors\n",
" num.factors <- ncol(metagenes)\n",
" # Rename columns\n",
" colnames(metagenes)<-1:num.factors\n",
" # Rename rows to remove \"|\" characters and keep only the gene name before\n",
" rownames(metagenes)<-gsub(\"\\\\|\",\".\",rownames(metagenes))\n",
" rownames(metagenes)<-gsub(\"\\\\..*\",\"\",rownames(metagenes))\n",
" # Remove duplicated gene names that could confuse fgsea\n",
" duplicated_names <- unique(rownames(metagenes)[duplicated(rownames(metagenes))])\n",
" metagenes <- metagenes[!(rownames(metagenes) %in% duplicated_names), ]\n",
"\n",
" # Variables\n",
" min_pval <- numeric(0)\n",
" path <- numeric(0)\n",
" n <- 0\n",
" \n",
" # Calculate biological annotation enrichment.\n",
" # For each factor,\n",
" for(j in 1:num.factors){\n",
" # Assign gene names\n",
" rnk <- setNames(as.matrix(metagenes[,j]), rownames(metagenes))\n",
" # Compute fgsea\n",
" fgseaRes <- fgsea(pathways, rnk, minSize=15, maxSize=500, nperm=1000)\n",
" # If at least one pathway is significant\n",
" if(sum(fgseaRes$padj < pval.thr)!=0){\n",
" # Count this factor\n",
" n <- n+1\n",
" # Keep min adjusted p-value\n",
" min_pval <- rbind(min_pval, min(fgseaRes$padj))\n",
" # Keep names of significant pathways\n",
" path <- c(path, fgseaRes[fgseaRes$padj<pval.thr, \"pathway\"])\n",
" } else {\n",
" min_pval <- rbind(min_pval, NA)\n",
" }\n",
" }\n",
"\n",
" # Report number of unique significant pathways \n",
" if(length(path)==0){\n",
" report_number <- rbind(report_number, 0)\n",
" }else{\n",
" report_number <- rbind(report_number, length(unique(path)))\n",
" }\n",
" # Report selectivity \n",
" if(length(unique(path))==0){\n",
" report_select <- rbind(report_select, NA)\n",
" }else{\n",
" al<-length(unique(path))/length(path)\n",
" fl<-length(which(!is.na(min_pval)))/length(path)\n",
" report_select <- rbind(report_select, (al+fl)/2)\n",
" }\n",
" # Report number of factors associated with at least one significant pathway\n",
" report_nnzero<-rbind(report_nnzero, n) \n",
" \n",
" }\n",
" \n",
" out <- data.frame(selectivity=report_select, nonZeroFacs=report_nnzero, total_pathways=report_number)\n",
"# print(out)\n",
" return(out)\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"# Load the function running the factorization, plus a support function\n",
"source(\"runfactorization.R\")\n",
"source(\"log2matrix.R\")\n",
"\n",
"# List downloaded cancer data.\n",
"# Folder structure should be organized as discussed above.\n",
"# Exclude first result as it's the parent folder\n",
"# cancers <- list.dirs(path = \"../data/cancertest\", full.names = TRUE, recursive = TRUE)[-1]\n",
"# cancer_names <- list.dirs(path = \"../data/cancertest\", full.names = FALSE, recursive = TRUE)[-1]\n",
"\n",
"cancers <- list.dirs(path = \"../data/cancer5\", full.names = TRUE, recursive = TRUE)[-1]\n",
"cancer_names <- list.dirs(path = \"../data/cancer5\", full.names = FALSE, recursive = TRUE)[-1]\n",
"\n",
"# Annotation databases used for biological enrichment\n",
"path.database <- \"../data/bio_annotations/c2.cp.reactome.v6.2.symbols.gmt\" #REACTOME\n",
"#path.database <- \"../data/bio_annotations/h.all.v6.2.symbols.gmt\" #Hallmarks\n",
"#path.database <- \"../data/bio_annotations/c5.all.v6.2.symbols.gmt\" #GO\n",
"\n",
"# Label to identify current run\n",
"tag <- format(Sys.time(), \"%Y%m%d%H%M%S\")\n",
"# Folder for comparison results\n",
"results_folder <- paste0(\"../results\", tag, \"/\")\n",
"# Create output folder\n",
"dir.create(results_folder, showWarnings = FALSE)\n",
"\n",
"# Number of factors used in the paper\n",
"num.factors <- 10\n",
"\n",
"# Initialize result containers\n",
"clinical_analysis <- data.frame(\n",
" matrix(data = NA, ncol=5, nrow=0, \n",
" dimnames = list(c(), c(\"methods\", \"cancer\", \"selectivity\", \"nonZeroFacs\", \"total_pathways\"))\n",
" ),\n",
" stringsAsFactors = FALSE)\n",
"\n",
"biological_analysis <- data.frame(\n",
" matrix(data = NA, ncol=5, nrow=0, \n",
" dimnames = list(c(), c(\"methods\", \"cancer\", \"selectivity\", \"nonZeroFacs\", \"total_pathways\"))\n",
" ),\n",
" stringsAsFactors = FALSE)\n",
"cancer.list <- list()\n",
"\n",
"# Clinical categories to be used for clinical tests\n",
"col <- c(\"age_at_initial_pathologic_diagnosis\",\n",
" \"gender\",\n",
" \"days_to_new_tumor_event_after_initial_treatment\",\n",
" \"history_of_neoadjuvant_treatment\")"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1] \"Now analysing ../data/cancer5/aml\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5]\n",
"factorsV2 2.07415379 0.79279661 0.0417448 -0.43700639 -0.10262513\n",
"factorsV3 0.39358219 0.82951580 1.1489822 -0.65944760 -0.45934044\n",
"factorsV4 -0.09997327 -0.26537701 -0.7796774 0.15999157 -0.36715021\n",
"factorsV5 -0.41526760 0.23630097 3.5142276 0.71388514 -0.02161513\n",
"factorsV6 -0.56851555 -0.11433316 1.4352343 -0.57072749 -0.49906561\n",
"factorsV7 2.97272505 0.04674502 1.8000534 -0.82443289 -0.39011011\n",
"factorsV8 -0.56931441 0.08575136 -0.7063138 -0.77030007 -0.21555783\n",
"factorsV9 0.58494791 -0.39733310 -0.4688892 0.02147179 0.61596539\n",
"factorsV10 -0.09942243 -0.47290360 0.1044918 -0.41896952 -0.69434901\n",
"factorsV11 -0.37546037 -0.14496463 -0.2629164 0.77986079 0.23325056\n",
" [,6] [,7]\n",
"factorsV2 -0.80406656 -0.40745923\n",
"factorsV3 -0.56160589 -0.20456116\n",
"factorsV4 -0.57324782 -0.83133126\n",
"factorsV5 0.67669733 0.51662627\n",
"factorsV6 -0.16514118 -0.01610052\n",
"factorsV7 -0.78701774 -0.15068518\n",
"factorsV8 -0.77113017 -0.68134703\n",
"factorsV9 -0.05125761 -0.72644952\n",
"factorsV10 -0.09339010 -0.33560682\n",
"factorsV11 -0.32890951 -0.67199262\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/breast\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5]\n",
"factorsV2 0.66560085 -0.51789756 0.03201490 0.4766800 -0.71372149\n",
"factorsV3 0.02799408 -0.68273517 0.43886843 -0.2197699 -0.02953674\n",
"factorsV4 -0.77261574 -0.52763431 2.36068134 2.7379169 -0.33932267\n",
"factorsV5 0.27898297 0.12223008 -0.38153223 0.5283980 1.04789828\n",
"factorsV6 0.13691326 -0.47993069 -0.03372618 -0.5933865 -0.74058384\n",
"factorsV7 0.71878725 -0.78352273 0.23465159 -0.4406606 -0.50613833\n",
"factorsV8 0.38689325 -0.19125369 -0.13403005 0.9929764 -0.72769610\n",
"factorsV9 -0.75751330 0.07151928 -0.76126791 -0.8345859 -0.69279540\n",
"factorsV10 -0.02491963 -0.35210255 -0.01680886 1.2581182 0.02051894\n",
"factorsV11 -0.11442224 -0.79562887 -0.73514358 1.6181599 0.15017599\n",
" [,6] [,7]\n",
"factorsV2 -0.27469337 0.675183097\n",
"factorsV3 -0.29493291 0.455431169\n",
"factorsV4 -0.19738858 -0.440902799\n",
"factorsV5 -0.40218170 0.003811115\n",
"factorsV6 1.48873339 0.004737978\n",
"factorsV7 0.07343058 -0.453008554\n",
"factorsV8 0.45290998 0.882187572\n",
"factorsV9 -0.72742976 -0.647253279\n",
"factorsV10 -0.68520984 0.356354058\n",
"factorsV11 -0.06196020 -0.143371133\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/colon\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5] [,6]\n",
"factorsV2 -0.7654268 -0.80822609 -0.4957389 1.1218060 -0.07197848 -0.2434691\n",
"factorsV3 -0.5577510 -0.08780987 1.2786418 1.1485558 -0.79770570 -0.2380784\n",
"factorsV4 -0.6138418 -0.83029085 -0.7503345 0.9224015 -0.44939299 -0.7926235\n",
"factorsV5 0.7833339 0.59212551 -0.6303660 1.1949041 0.38047624 -0.7908210\n",
"factorsV6 -0.5163685 -0.19914539 -0.7683478 0.3579091 -0.59768763 -0.5428590\n",
"factorsV7 -0.2313599 -0.23181774 -0.3674552 -0.6910289 -0.83349388 -0.6424440\n",
"factorsV8 -0.2854944 -0.65539587 -0.1882232 1.5233312 -0.82021831 -0.7415047\n",
"factorsV9 -0.1825213 -0.63537131 -0.6751336 2.4804054 0.18873569 -0.4338290\n",
"factorsV10 -0.8012385 -0.40043801 -0.7594073 1.4619809 0.38372945 -0.5685792\n",
"factorsV11 -0.6028310 -0.55653792 -0.6983735 0.8952334 -0.49323275 -0.8032699\n",
" [,7]\n",
"factorsV2 -0.480452898\n",
"factorsV3 0.066949538\n",
"factorsV4 0.001356898\n",
"factorsV5 0.223678219\n",
"factorsV6 -0.602316212\n",
"factorsV7 -0.249400533\n",
"factorsV8 -0.275062348\n",
"factorsV9 -0.625204787\n",
"factorsV10 -0.037342498\n",
"factorsV11 -0.741364944\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/gbm\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5]\n",
"factorsV2 -0.54581926 1.44943870 -0.61917803 -0.5914467 -0.7916972\n",
"factorsV3 -0.24658444 -0.77503827 -0.64802971 -0.5041470 0.2787899\n",
"factorsV4 -0.82915331 0.82025458 -0.53599973 1.9005092 -0.8405437\n",
"factorsV5 -0.12837849 -0.60625441 -0.74315525 -0.6883728 -0.7827517\n",
"factorsV6 -0.00569138 0.01150173 -0.10421891 0.7918553 -0.7053348\n",
"factorsV7 -0.21161695 0.49001072 -0.01581364 -0.7828410 -0.3615005\n",
"factorsV8 0.14260162 -0.38562373 1.29898920 -0.6333213 -0.7743150\n",
"factorsV9 -0.56019161 1.61983246 0.57058235 0.3236096 -0.8425106\n",
"factorsV10 0.37027906 -0.59448753 0.65079051 0.2679126 -0.8358210\n",
"factorsV11 3.58103360 -0.11329196 0.98447945 1.3954803 -0.8361144\n",
" [,6] [,7]\n",
"factorsV2 -0.35721216 -0.82890169\n",
"factorsV3 -0.46879670 -0.74386805\n",
"factorsV4 -0.65529821 -0.68779031\n",
"factorsV5 -0.55545638 0.51641150\n",
"factorsV6 -0.56933349 -0.81585224\n",
"factorsV7 -0.84289123 -0.58215524\n",
"factorsV8 -0.77500907 -0.33756871\n",
"factorsV9 0.87009307 0.63463407\n",
"factorsV10 -0.37101267 -0.08976714\n",
"factorsV11 0.09022413 -0.18442144\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/kidney\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5]\n",
"factorsV2 -0.6805087 -0.5965146 0.745392981 -0.77935014 2.50968126\n",
"factorsV3 1.0901346 -0.5627385 -0.662563428 -0.63627011 -0.84394121\n",
"factorsV4 -0.8090072 0.7537543 -0.006740666 -0.08681860 -0.31842557\n",
"factorsV5 0.3657372 -0.4451448 0.422701814 1.33208633 -0.75913045\n",
"factorsV6 -0.6248571 -0.6849199 -0.221727022 -0.04321220 0.19268246\n",
"factorsV7 -0.7954575 0.3542109 -0.317400044 -0.18680322 -0.30834786\n",
"factorsV8 -0.4938157 -0.6902669 -0.647175809 -0.61555209 1.09240154\n",
"factorsV9 -0.4543876 -0.8239491 -0.680524925 0.07966246 -0.78387325\n",
"factorsV10 -0.4082426 -0.8081546 -0.723702817 -0.19874538 -0.03003682\n",
"factorsV11 -0.4801326 -0.6718247 0.248119353 -0.31750910 -0.71857669\n",
" [,6] [,7]\n",
"factorsV2 0.002726058 1.72407082\n",
"factorsV3 -0.392018968 -0.79022967\n",
"factorsV4 -0.508391869 -0.82580305\n",
"factorsV5 0.146063259 -0.73359795\n",
"factorsV6 -0.499794392 0.02574496\n",
"factorsV7 -0.333740687 -0.69611061\n",
"factorsV8 -0.707708397 0.16607945\n",
"factorsV9 -0.462864833 1.33079445\n",
"factorsV10 -0.833238757 -0.61778994\n",
"factorsV11 0.565342204 -0.77393232\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/liver\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5]\n",
"factorsV2 0.60416596 -0.4464425 -0.5852010 -0.209759124 -0.64988315\n",
"factorsV3 -0.47202472 0.5012383 0.5625436 -0.679789951 -0.67150919\n",
"factorsV4 -0.50756616 -0.7585250 0.3747354 -0.001628617 -0.76001187\n",
"factorsV5 -0.82801100 -0.6860601 -0.3517364 -0.103286482 -0.45603040\n",
"factorsV6 -0.83894949 -0.7377160 -0.6704209 1.597112326 -0.08834328\n",
"factorsV7 0.06593083 0.2238739 0.1394403 -0.838075348 -0.80957383\n",
"factorsV8 0.08712235 -0.2687026 1.2717842 -0.826327080 0.17858907\n",
"factorsV9 -0.55703116 -0.2586322 -0.8199397 -0.023613273 -0.20233221\n",
"factorsV10 -0.74732907 -0.8218959 -0.5486823 -0.150148629 -0.44518984\n",
"factorsV11 -0.48300732 0.6503079 -0.5995017 0.484798958 -0.30988535\n",
" [,6] [,7]\n",
"factorsV2 -0.8347032 -0.62481605\n",
"factorsV3 -0.5189734 0.05558876\n",
"factorsV4 -0.6671867 -0.56849983\n",
"factorsV5 -0.6392570 -0.19237661\n",
"factorsV6 -0.1614121 -0.72104416\n",
"factorsV7 -0.3617796 -0.59169902\n",
"factorsV8 -0.8434864 -0.54212827\n",
"factorsV9 -0.2507186 0.23066624\n",
"factorsV10 0.9822474 -0.42234951\n",
"factorsV11 -0.1959909 0.24824753\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/lung\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5]\n",
"factorsV2 0.54800063 0.51661965 -0.38306633 -0.67224148 -0.6722631\n",
"factorsV3 -0.02025023 -0.34564759 -0.63244034 -0.24530785 -0.1130491\n",
"factorsV4 -0.58896919 0.07827657 0.30146144 0.47816928 -0.7959646\n",
"factorsV5 0.85187933 0.67497679 0.59876538 -0.08496333 -0.6186889\n",
"factorsV6 -0.74081786 -0.69898058 0.04724436 -0.49472381 -0.5426561\n",
"factorsV7 0.76378524 0.69591114 -0.82807050 -0.52965740 -0.8202631\n",
"factorsV8 -0.64660028 0.15141560 -0.44122391 0.64121652 -0.1252390\n",
"factorsV9 0.12062411 -0.27205845 -0.12970927 -0.31978184 -0.6211390\n",
"factorsV10 -0.55335615 0.05886311 -0.50549292 -0.66593329 -0.2434686\n",
"factorsV11 -0.51940845 -0.39906338 -0.82741570 -0.36519751 -0.8270672\n",
" [,6] [,7]\n",
"factorsV2 0.5997603 0.02361632\n",
"factorsV3 -0.1168063 -0.16319533\n",
"factorsV4 1.9001004 -0.69976858\n",
"factorsV5 -0.3619672 -0.40950563\n",
"factorsV6 0.7363585 -0.37093487\n",
"factorsV7 -0.5704376 -0.72585106\n",
"factorsV8 -0.7661515 -0.72583234\n",
"factorsV9 -0.8130152 -0.24176106\n",
"factorsV10 0.5133322 -0.65083831\n",
"factorsV11 -0.1351243 -0.30894696\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/melanoma\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5]\n",
"factorsV2 2.6004896 -0.4440848 2.2424576 -0.65706338 0.145106526\n",
"factorsV3 3.9394689 -0.6876805 -0.4898079 1.25357933 -0.549049683\n",
"factorsV4 -0.8096940 0.5319011 2.3039264 -0.64345885 -0.603693025\n",
"factorsV5 -0.2676250 1.1649568 1.0476623 -0.58391503 0.313205494\n",
"factorsV6 -0.8025290 0.3587448 -0.5672567 0.05821573 -0.824271969\n",
"factorsV7 -0.8432373 1.8827442 -0.3539497 0.93562510 -0.007555708\n",
"factorsV8 -0.4349669 -0.2279715 -0.3909336 1.35951725 -0.522939474\n",
"factorsV9 -0.6478937 -0.7359861 -0.6749410 -0.18515255 -0.125783088\n",
"factorsV10 -0.4643766 -0.1732821 -0.8176899 -0.77881102 -0.700194402\n",
"factorsV11 -0.5386413 -0.7383651 -0.5236683 -0.55943367 -0.794999764\n",
" [,6] [,7]\n",
"factorsV2 -0.54485830 0.7844775\n",
"factorsV3 -0.51895016 -0.8051990\n",
"factorsV4 0.30780942 -0.2740477\n",
"factorsV5 1.01274505 -0.1779675\n",
"factorsV6 -0.52021771 1.0401744\n",
"factorsV7 -0.24901104 0.6279954\n",
"factorsV8 -0.47279899 -0.6069080\n",
"factorsV9 0.49395262 -0.4664246\n",
"factorsV10 -0.05524918 0.1443280\n",
"factorsV11 1.03565383 -0.8387682\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/ovarian\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5] [,6]\n",
"factorsV2 1.816454177 -0.5573011 -0.14226048 -0.5540718 -0.7522259 -0.8233932\n",
"factorsV3 -0.456437754 -0.5116103 -0.75361648 -0.5642583 -0.2653917 -0.6114633\n",
"factorsV4 -0.837464456 -0.5610971 -0.37548479 -0.3078286 -0.6691978 0.2037918\n",
"factorsV5 0.153916255 -0.7887294 -0.67863266 -0.6490540 -0.3125373 -0.6372043\n",
"factorsV6 0.004870535 0.3995412 -0.75638295 0.4859225 -0.7686347 0.5993004\n",
"factorsV7 -0.756526289 -0.7702526 -0.77713930 -0.6905625 -0.6690361 -0.7201645\n",
"factorsV8 -0.648987890 -0.5319369 -0.14060783 -0.7133728 -0.7408661 1.0467980\n",
"factorsV9 -0.522642066 -0.3530830 0.55295402 -0.5316352 -0.6935046 -0.6748335\n",
"factorsV10 1.973452428 -0.3480608 -0.47033565 -0.3154366 -0.7887744 0.1233407\n",
"factorsV11 -0.142393140 0.2007754 -0.07547032 -0.5484887 -0.4475099 0.8598037\n",
" [,7]\n",
"factorsV2 -0.67494812\n",
"factorsV3 -0.37992812\n",
"factorsV4 -0.04936028\n",
"factorsV5 -0.74195639\n",
"factorsV6 -0.15661948\n",
"factorsV7 -0.71118853\n",
"factorsV8 -0.58694888\n",
"factorsV9 -0.57504785\n",
"factorsV10 -0.32735944\n",
"factorsV11 0.82797158\n",
"[1] \"Running clinical analysis...\"\n",
"[1] \"Now analysing ../data/cancer5/sarcoma\"\n",
"[1] \"Running survival analysis...\"\n",
" [,1] [,2] [,3] [,4] [,5] [,6]\n",
"factorsV2 -0.6462580 -0.5217105 -0.75622626 -0.5300726 -0.4249063 -0.7501663\n",
"factorsV3 -0.5911727 -0.3854843 -0.82535923 -0.1630826 0.2292979 -0.6209461\n",
"factorsV4 -0.1152201 -0.5519500 -0.59926643 -0.7042861 0.3372775 -0.2972697\n",
"factorsV5 -0.5950525 -0.1740434 -0.40873427 0.3774222 -0.8157505 -0.8312389\n",
"factorsV6 1.9828241 -0.7975667 1.34550235 -0.8238418 -0.6947320 -0.7115133\n",
"factorsV7 0.3220847 -0.6710326 0.02104472 0.9476067 0.1332030 -0.7959981\n",
"factorsV8 -0.2887074 -0.8188838 -0.65620449 -0.3298043 0.3045588 -0.1493814\n",
"factorsV9 -0.5336952 -0.4789034 -0.01624789 -0.4802294 -0.4198307 2.0363535\n",
"factorsV10 -0.6246225 -0.7577595 0.54191638 -0.7591134 -0.5112647 0.3809081\n",
"factorsV11 -0.4044349 0.2442799 0.10425205 -0.7656119 -0.5263210 0.5958284\n",
" [,7]\n",
"factorsV2 -0.08198509\n",
"factorsV3 -0.71056980\n",
"factorsV4 -0.31921574\n",
"factorsV5 -0.13704157\n",
"factorsV6 -0.70730488\n",
"factorsV7 -0.58443736\n",
"factorsV8 -0.55272821\n",
"factorsV9 -0.03106494\n",
"factorsV10 -0.23433349\n",
"factorsV11 -0.06740815\n",
"[1] \"Running clinical analysis...\"\n"
]
}
],
"source": [
"# For each cancer dataset\n",
"for(i in cancers){\n",
"\n",
" print(paste0(\"Now analysing \", i))\n",
" method<-c(\"AE_FAETC\",\"AE_FCTAE\",\"DAE_FAETC\",\"DAE_FCTAE\",\"VAE_FCTAE\",\"SVAE\",\"MMDVAE\")\n",
" #omicstemp<-as.matrix(read.table(paste(i,\"/log_exp\",sep=\"\"), sep=\" \",row.names=1, header=T))\n",
" \n",
" factorizations<-list()\n",
" factorization=as.matrix(read.table(paste(i,\"/AE_FAETC_EM_add_name.txt\",sep=\"\"), sep=\" \",\n",
" row.names=1,\n",
" header=FALSE))\n",
" factorizations[[1]]<-list(factorization)\n",
" \n",
" factorization=as.matrix(read.table(paste(i,\"/AE_FCTAE_EM_add_name.txt\",sep=\"\"), sep=\" \",\n",
" row.names=1,\n",
" header=FALSE))\n",
" factorizations[[2]]<-list(factorization)\n",
" \n",
" factorization=as.matrix(read.table(paste(i,\"/DAE_FAETC_EM_add_name.txt\",sep=\"\"), sep=\" \",\n",
" row.names=1,\n",
" header=FALSE))\n",
" factorizations[[3]]<-list(factorization)\n",
" \n",
" factorization=as.matrix(read.table(paste(i,\"/DAE_FCTAE_EM_add_name.txt\",sep=\"\"), sep=\" \",\n",
" row.names=1,\n",
" header=FALSE))\n",
" factorizations[[4]]<-list(factorization)\n",
" \n",
" factorization=as.matrix(read.table(paste(i,\"/VAE_FCTAE_EM_add_name.txt\",sep=\"\"), sep=\" \",\n",
" row.names=1,\n",
" header=FALSE))\n",
" factorizations[[5]]<-list(factorization)\n",
" \n",
" factorization=as.matrix(read.table(paste(i,\"/SVAE_FCTAE_EM_add_name.txt\",sep=\"\"), sep=\" \",\n",
" row.names=1,\n",
" header=FALSE))\n",
" factorizations[[6]]<-list(factorization)\n",
" \n",
" factorization=as.matrix(read.table(paste(i,\"/MMDVAE_EM_add_name.txt\",sep=\"\"), sep=\" \",\n",
" row.names=1,\n",
" header=FALSE))\n",
" factorizations[[7]]<-list(factorization)\n",
" #print(factorizations)\n",
"\n",
"\n",
"\n",
" # Name of current cancer\n",
" current_cancer <- basename(i)\n",
"\n",
" # If the expression and miRNA data are not log2-transformed as for those provided by XX et al.\n",
" #log2matrix(i,\"exp\")\n",
" #log2matrix(i,\"mirna\")\n",
"\n",
" # Perform factorisation\n",
" #print(\"Running factorisation...\")\n",
" #out <- runfactorization(i, c(\"log_exp\",\"methy\",\"log_mirna\"), num.factors, sep=\" \", filtering=\"sd\")\n",
" \n",
" # Survival analysis\n",
" print(\"Running survival analysis...\")\n",
" survival <- read.table(paste0(i, \"/survival\"), sep=\"\\t\", header=TRUE, stringsAsFactors=FALSE)\n",
" out_survival <- survival_comparison(factorizations, method, survival, \n",
" results_folder, current_cancer)\n",
" \n",
" # Clinical analysis\n",
" print(\"Running clinical analysis...\")\n",
" clinical <- read.table(paste0(\"../data/clinical/\", current_cancer), sep=\"\\t\", header=TRUE)\n",
" out_clinical <- clinical_comparison(factorizations, clinical, col) \n",
" clinical_analysis <- rbind(clinical_analysis,\n",
" data.frame(methods=method, cancer=current_cancer, out_clinical)) \n",
"\n",
" # Biological analysis\n",
"# print(\"Running biological analysis...\")\n",
"# out_bio <- biological_comparison(factorizations, path.database, pval.thr=0.05)\n",
"# biological_analysis <- rbind(biological_analysis,\n",
"# data.frame(methods=method, cancer=current_cancer, out_bio)) \n",
"}\n",
"rownames(clinical_analysis) <- c()\n",
"rownames(biological_analysis) <- c()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"# Export results into separated tables\n",
"write.table(biological_analysis, paste0(results_folder, \"results_biological_analysis.txt\"), \n",
" sep=\"\\t\", row.names=FALSE)\n",
"\n",
"write.table(clinical_analysis, paste0(results_folder, \"results_clinical_analysis.txt\"), \n",
" sep=\"\\t\", row.names=FALSE)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"library(ggplot2)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Saving 6.67 x 6.67 in image\n",
"\n",
"Saving 6.67 x 6.67 in image\n",
"\n"
]
},
{
"data": {
"image/png": "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\n9evXn3rqqR07dnShZAAAgHaxLdglJSXFxMQwyxs2bPjpp5+sGmzYsOHq1asur4vi4+OZhX37\n9rW3B+ijjz5ijirOnDnzww8/vO+++7hcx39A3TuaY0aOHMksHDx4UKfTmdcXFBSYl82XQYhE\nImZBpVJZDmLXhrQ3SLdU6JjRo0d/8cUXlZWVw4YNY9Z89dVXXRkQAACgPWwLdlwu980332SW\nVSpVcnLy2rVry8vLGxsb9+3bN3Xq1KeeemrSpEnMzhgfHx9zx+rqaqcWlpOTwyw0NDRkZ2cz\n4dJkMu3evXvTpk3MW0ePHmUWzMcHa2pq3n///daj2VK57aM5z7PPPstcc3rlypXnn3+eeSJI\nRUXF4sWLmQZDhgxJTk5mls0Xop4+fdpyv6ZdG9LeIN1SoV3OnDmTm5t74cIF5mVYWNjQoUOZ\nZWYWAACA7ufuqzec4plnnul4q9955x2TydTS0sIcICMiqVS6YcMGkz2XyppMphMnTpjXm+86\n217jadOmmddzOJwBAwb4+fkRkbe3N3Opx6xZs8wNYmNjk5OTmbPvzZhm7VVuxfbRumXr2mxs\n9bPw9vbu37+/+fYiAoHg+PHj5pb79+83twwICBg3btzQoUPt2pAOBumgctsrtH3bm5qaYmNj\nmRFGjRo1e/bshx56yHy/m48//rj1zwsAAKDr2BnsjEbj66+/3uYp7Vwud/HixeYbZDz++OPm\nt5544gmTM4NdXV3dlClTWpckEok+//xzk8l04cIFy1vvMmbOnNmjR4/WCaZ15VZsH82pwU6p\nVM6cObP1VgcHB2/bts2q5vHjx1s1O3funF0fS3uDdFC57RXavu1XrlxhHjvWWk5OjuX9WQAA\nALoR2w7FMjgczvLly8vKyhYtWhQfHy+VSsVicf/+/Z9++umjR4+uXr3avEvmvffemzlzZq9e\nvUQikcPPY7VRQEDAtm3btm/f/sgjj8TGxnp7e997771z584tKytj7nLXr1+/o0ePTpkypWfP\nnj179szJyfnmm2/+9a9/DR48uPVonVZu12jOI5FI/vWvf+3fv3/q1KnR0dFSqXTMmDEvvPBC\nWVlZ65i7e/fuZcuWDRs2TCKR9OjRY+zYsSqVyt4NaXOQ7qrQRuHh4du3bz948ODUqVMjIiK8\nvLyioqIyMjJkMtmXX37Z5uPRAAAAuo5jcs7N3gAAAADAxdi5xw4AAADgLoRgBwAAAMASCHYA\nAAAALIFgBwAAAMASCHYAAAAALIFgBwAAAMASCHYAAAAALIFgBwAAAMASCHYAAAAALIFgBwAA\nAMASCHYAAAAALIFgBwAAAMASCHYAAAAALIFgBwAAAMASfHcX0G3mz59fXl7u7ioAAABcbd68\neY888oi7qwCPwJ5g98svv3C53MjISJPJxOd73HYZjUaj0cjj8TgcjrtruY3JZDIYDFwul8v1\nuN23er2ew+HweDx3F2LNYDDga2YXfM0cgK+ZvTz5a+Y8LS0tFy9ePHPmjLsLAU/hcb8yuqJP\nnz7r16/X6/XBwcHursWaUqlUq9V+fn4CgcDdtdxGp9MpFAqJRCKRSNxdi7Wamho+n+/v7+/u\nQqwpFAqdThcUFORpf9hUKpVKpZJKpUKh0N213Eav1zc0NIjFYm9vb3fXYq22tpbH43ng16yx\nsVGr1QYGBnpaTFGr1Uql0tfX18vLy9213MZgMNTX14tEIh8fH3fX4jqVlZVTpkxxdxXgQTzr\n9wUAAAAAOAzBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALB\nDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwA\nAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAA\nAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAA\nWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAl\nEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALB\nDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwA\nAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAA\nAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAA\nWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAl\nEOwAAAAAWALBDgAAAIAlEOwAAAAAWALBDgAAAIAlEOwAAADA1SorKzdt2vTbb79145gmk2nT\npk1FRUXdOOYdB8EOAAAArP36668cDkcoFNbW1lq9dfz4cQ6Hw+FwlEqlw+MfPXr0ySefLC0t\n7VqZtzEajU8++eT777/fjWPecfjuLoANSkpKOni3paWlsbHRaDQajUYej8fhcMxv9ezZs71e\n4eHhvXr16s4qAQAA7KTT6b788sv58+dbrvzss8/sHWfu3Lnh4eHLly/vtsqgHQh2Tmc0Grlc\nro+Pj8FgEAgEXO7/9pIOGjSozS5Xr15taWlxVYEAAABtS0hI2Lx5s2WwMxqNX3zxxYgRI44e\nPWr7ON9//31CQoITCgRrOBTrChwORyAQ8Pl8we182iEQCNxdMgAAAE2aNOnHH3+8ePGiec23\n3357/fr1CRMm2DVOXV1dd5fWBstjYnctBDsAAABo2/Dhw8PCwiyPvX722Wfjxo3z8fGxaqnX\n6996661hw4b5+vomJCR89NFHzPqVK1dKJJJbt25t3ryZOTPvP//5j7mXUCgsKCh46KGHAgIC\nhg4dun37dssxjUbjP/7xj5EjR0ql0mHDhv3lL3/R6XRWk77xxhtDhw4NCAjIyMg4duyYRCIx\nv6vT6f7v//4vJibGx8dnxIgRK1asUKvV3fXJeCwEOwAAAGibSqV69NFH//3vfzMvNRqNTCZ7\n7LHHGhsbLZsZDIa0tLS//OUvDzzwQH5+fkJCwjPPPPP6668T0YMPPrh+/XoiGjNmzObNmzdv\n3mx5TPb999/Pzc0NCAiYPXv2lStXsrOzL126xLxlNBoffPDBvLy88PDwZcuWDRo06PXXX//D\nH/6g1WqZBiaTacKECcuXLw8PD1+8eHFkZGRKSopGozEP/sorr7z66qujR49+5513UlJS1qxZ\nU1xc7MxPyyPgHDsAAABoW0tLy+OPP56fn3/kyJGRI0d+/fXXLS0tOTk5f/nLXyybvf322z/8\n8MOhQ4fGjBlDRLNnz+7du/ebb7753HPP3XPPPbGxsbNmzerXr19ubq7V+LW1tSdOnIiIiCCi\npKSkhx9++Msvv1y6dCkRvffeewUFBStWrHj55ZeZxmlpabNmzfrrX//KXITxySefFBYWLlmy\nZNWqVUyDJUuWREdHmwfftm1bQkLCJ598wrx88803RSJR939GHgZ77AAAAKBdw4YNi4uLY47G\nfv7555MnT5ZKpVZtNm/enJKSwqQ6xuTJkzUazcmTJzsefMmSJUyqI6KkpCQiqqqqYl5u3Lgx\nODh40aJF5sYzZ84cNGiQOaht3LjR39+f2S/I6Nevn+XgAwcOLC8v/+abb5iXd0OqIwQ7AAAA\n6NiMGTO++uqrpqamvXv3zpgxw+rdlpaWs2fP7tu3j2Nh8ODBRHTz5k3bZ2HyokqlIiKDwXDm\nzJmhQ4cKhULLNsOHD6+srFQoFER05syZIUOGWJ5UZ+Wf//xnQkLChAkTYmNjP/zwQ8ujtCzG\nqkOxzL3iiMjFPzyDwdDBu0aj0WQyMYUxy+a32qtTp9NxOBzXbAVTvF6v98xvvNFo9MDCzF8z\nT7sCS6/XE5FWq2Uq9BxMPR77NTOZTB5YGPOhtbS0eNrXjDl7XafTWf428wTMJ2YwGDzwp+k8\nrrk3Vm5u7ssvv/ziiy/6+vqmp6dbvSsUCkUiUWJi4urVq63eGjBggO2zWH7Vmb+bljcIYzBr\nDAaDyWRqamrq+CYSvXv3LiwsPHr06Ntvv/3ss8++/vrru3fvHj58uO0l3YlYFezMXPzrpuPp\nTCaTuYFVy/Y6MutdsxXt1eY5UJjtPPan6bGFMSz/kXoOV/4ecIBnfmjkwYU5iWs2NiIiYty4\nce+9996f/vQnPt86OXA4nEGDBl24cOG+++5rHcXM7PoPJ5/Pj4uLO336tF6vt5zxxIkTvXv3\nDgwMJKJ+/fpVVFS0mf8sjRgxYuvWrWfOnElKSlq8ePHBgwdtL+NOxKpgx+VyuVyu0WgUi8Wu\nnLf1t9wSj8czF8Ysm99qr06hUMjhcFyzFTqdTqPR8Pl8F39otlAqlVwu1wML02q1BoNBLBZ7\n2q4Uk8mk0+mEQqHVwQu30+v1arXaM79mKpXKM79mOp3OYDCIRKKO/2i5hVarFQqFXl5e7i7k\nNgaDQaVSeebXzHlcdt7YjBkzDh482Po4LOOpp5566qmn/v73vy9evNi80mAw8Hg8IvLy8vL1\n9T1z5oy9M+bl5a1duzYvL49Z88UXX5w8efKll15iXmZkZLzzzjufffbZ448/zqzZvXu35QjH\njh0z758bNGhQaGhoTU2NXTXciVgV7AAAAMAZcnNzMzMzQ0ND23x3zpw527dvX7JkSWlpaXp6\nuk6nO3jwoFqt3rNnD9MgNTV1x44dr7zySq9evYYPHz5q1KhOZ/zTn/709ddfv/DCC0eOHElM\n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\nK1euvHnzZmRkZEec3MUg2AEAAIBFLMltDplLwTBYo/o3CHYAAADQOssTW7tkuzfeeEMqlX77\n7bdElJmZyTCMVqs17y0oKJg+fbq/v3/fvn3Xrl0rlf7xmODMzMy4uLjq6uply5b17t07KCho\n+fLlDW/UlpSUzJkzR6lUhoaGpqamqtVqvmYvLy+dTmdu9tNPPzEMc/jw4ba/F3tCsAMAAIBW\nWJvV2pjtPv300xUrVmzZsmXEiBH37i0qKho8ePCZM2dWr169YsWKb7/99n//+1/DBoWFhcOG\nDauoqMjIyBg1atTrr7++a9cufldJSUlcXNytW7c2b9781ltv5efnT5o0iS9Yo9EcOnTIfJL9\n+/f7+vpOmDChLW/E/kSOLgAAAACcmm0pLS0tbfPmzTYceOXKlTlz5jz77LOPPPJIkw0yMjJM\nJtN3332nVCqJ6NFHHx09erTBYDA3UKvVW7duTU5OJqLHHnssNzf3yJEjCxYsIKL09HSlUnn0\n6FGJREJEQ4cO7d27d05OTlJSUnx8/I4dO2bNmsWfZP/+/TNmzBCLxTa8BQdCjx0AAAC0xLZ8\nZttRKpVq6tSpERERa9euba7Np59+OmvWLD7V8RreiuVNnDiR/0IkEkVERNy6dYuIOI47fPjw\n9OnTq6urKysrKysr3dzcQkJCzp07R0SLFy/+7LPPysrKiOjatWvnzp2bM2eODW/BsRDsAAAA\noBXWpjTbUh0RpaSkVFRUnD179uLFi002qKioqKqqCg8Pt/ycEomEH2NXUlJSXV390ksv+Tdw\n/fr1qqoqIpo7d65MJtu9ezcR7d+/Pzg4ePTo0ba9CwdCsAMAAIDWWZ7VbE51RHTx4sX8/Pzh\nw4enpqayLHtvAy8vL5FIVFpaasPJAwMDJRLJK6+8wt1t9erVROTu7j537tydO3cS0UcffTRr\n1iyBoPPFpM5XMQAAADiEJYmtLamOiA4ePNizZ89NmzadOnVq48aN9zYQi8WxsbH79+83P6Oi\nvr6ev3/aKrFYPHLkyO3bt9fV1TXZYPHixT/88MP3339/4sSJzngflhDsAAAAwHIt57Y2pjoi\nio2NJaKYmJinn376+eefv3Hjxr1t1qxZU1RUlJSUtGvXrnffffe+++4rKiqy8PxZWVlFRUUj\nR47Mzs7Oy8vbunXr/PnzzYuhxMfHx8fHL1q0KCwsbOjQoW18Lw6BYAcAAABWaC69tT3VNfTi\n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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
},
"text/plain": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"#tiff(\"BioEnr_go_fig1.tiff\", units=\"in\", width=8.95, height=6.05, res=300)\n",
"min_nonZero = min(clinical_analysis[, \"nonZeroFacs\"]) \n",
"max_nonZero = max(clinical_analysis[, \"nonZeroFacs\"]) \n",
"g <- ggplot(clinical_analysis, \n",
" aes(x=nonZeroFacs, y=selectivity)) + \n",
" geom_point(aes(colour = methods, shape = cancer), size=5, alpha=.6, position=position_jitter(h=0, w=0.15))+ \n",
" theme_bw() + \n",
" scale_shape_manual(values=c(15,17,16,17,18,19,20,21,22,23)) + \n",
" scale_color_manual(values=c('#FF00FF', '#FF6E28', '#C8961E', '#FF0000', '#0000FF', '#A0A0A0', '#48D1CC', '#00FF00')) +\n",
" ylim(floor(min((clinical_analysis[,\"selectivity\"]*10)-.4)) / 10,\n",
" ceiling(max((clinical_analysis[,\"selectivity\"]*10)+.2)) / 10) +\n",
" labs(title=\"Clinical annotations\", \n",
" x=\"# metagenes (factors) enriched in at least one annotation\") +\n",
" theme(plot.title = element_text(size=14,face=\"bold\"),\n",
" axis.text = element_text(size=11),\n",
" axis.title = element_text(size=13),\n",
" legend.text=element_text(size=10)) +\n",
" ylab(\"Selectivity\") + \n",
" labs(colour = \"Methods\",shape=\"Cancer\") +\n",
" guides(color = guide_legend(order = 1),shape = guide_legend(order = 2),size = guide_legend(order = 3)) + \n",
" #scale_x_discrete() + scale_x_discrete(limits=min_nonZero:max_nonZero) + \n",
" scale_x_discrete(limits=min_nonZero:max_nonZero, labels = c(min_nonZero:max_nonZero));\n",
"g\n",
"#dev.off()\n",
"\n",
"ggsave(paste0(results_folder, \"clinical_annotations.pdf\"),dpi=300)\n",
"ggsave(paste0(results_folder, \"clinical_annotations.png\"),dpi=300) "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}