SPADEという細胞分化の分岐図を描く手法を教えてもらったのでやってみる。
FCMから得られたデータを使う。
デフォルトだと出力が pdf にしかならなくてイラッ☆としたのでノードのサイズを取得して igraph でゴリ押しした。
library(spade) library(flowViz) data_file_path = system.file(file.path("extdata","SimulatedRawData.fcs"), package = "spade") output_dir <- tempdir() transforms <- c(`marker1`=flowCore::arcsinhTransform(a=0, b=0.2), `marker2`=flowCore::arcsinhTransform(a=0, b=0.2)) SPADE.driver(data_file_path, out_dir=output_dir, transforms=transforms, cluster_cols=c("marker1","marker2")) grep("^libloc",dir(output_dir),invert=TRUE,value=TRUE) mst_graph <- igraph0:::read.graph(paste(output_dir,"mst.gml",sep=.Platform$file.sep),format="gml") clust <- read.table(paste(output_dir, "/clusters.table", sep=""), sep=" ", header=TRUE) lay0 <- read.table(paste(output_dir,"layout.table",sep=.Platform$file.sep)) library(gplots) par(mfrow=c(1, 2), mar=c(0, 0, 3, 0)) for(m in seq(ncol(clust))){ cut0 <- seq(min(clust[,m]), max(clust[,m]), length=99) # ノードの色付け g0 <- mst_graph V(g0)$label <- NA V(g0)$size <- clust[,m] V(g0)$frame.color <- "black" V(g0)$color <- bluered(100)[cut(clust[,m], cut0, include.lowest=TRUE)] plot(g0, layout=as.matrix(lay0), main=colnames(clust)[m]) }