May 19, 2020

GSEA解析 (データの準備方法 gctファイル編)

GSEA用のデータ解析について、前回の記事では発現データをtxt形式で出力していた。
gctファイルで出力する場合は、以下のコードをご参考いただきたい。

gct & cls ファイル出力用コード

※前提として、Working directoryをCELファイルと同じフォルダに設定することが必要。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# !!!設定項目!!!
output_gct_filename <- "HGU133plus2_XXX.gct"
output_cls_filename <- "HGU133plus2_XXX.cls"
cls_name <- c("WT", "MUT")
# ***終わり***

# ライブラリの確認
require(affy) || stop("Library affy is NOT available")
require(stringr) || stop("Library stringr is NOT available")

# RMAで正規化し、logスケール化されているのを戻す
rma_data <- justRMA()
exprs(rma_data) <- 2 ^ exprs(rma_data)
rma_mat <- exprs(rma_data)

# サンプル名に.CELが含まれていると動作不良になるため外す
colnames(rma_mat) <- str_sub(colnames(rma_mat), end = -5)
gct_file <- rma_mat

# gctファイルの整形
# descriptionは"na"だとなぜか動作不良
name_col <- matrix(data = rownames(gct_file), nrow = nrow(gct_file), ncol = 1)
colnames(name_col) <- "NAME"
dcrp_col <- matrix(data = 1, nrow = nrow(gct_file), ncol = 1)
colnames(dcrp_col) <- "Description"
gct_file <- cbind(name_col, dcrp_col, gct_file)

head_row <- matrix(nrow = 3, ncol = ncol(gct_file))
head_row[1,1] <- "#1.2"
head_row[2,c(1,2)] <- dim(rma_mat)
head_row[3,] <- colnames(gct_file)
gct_file <- rbind(head_row, gct_file)

# gctファイルを出力
write.table(gct_file, file = as.character(output_gct_filename),
           col.names = FALSE, row.names = FALSE, sep = "¥t", na = "")

# clsファイルを作成
cls_file <- matrix(nrow = 3, ncol = ncol(rma_mat))
cls_file[1,1] <- paste(as.character(ncol(rma_mat)), 
                       as.character(length(cls_name)), "1", sep = " ")
cls_file[2,1] <- paste("#", paste(cls_name, collapse = " "), sep = " ")
cls_file[3,] <- colnames(rma_mat)

# clsファイルの出力
write.table(cls_file, file = as.character(output_cls_filename),
            col.names = FALSE, row.names = FALSE, sep = "\t", na = "")

その後の、clsファイルの編集方法は前回と同様である。もし動作しなかったらご一報ください。

No comments:

Post a Comment