---
# System prepended metadata

title: 08_02： NCBI GEO解析　HeatMap作成 2
tags: [解析, NCBI GEO, R, ノート]

---

###### tags: `ノート` `解析` `NCBI GEO` `R`

# 08_02： NCBI GEO解析　HeatMap作成 2

#### 2020/7/30 (月)  , 在宅勤務

#### 【 作業場所＆保存場所 】
 • //osc-fs_home/scratch/t-suzuki/disease_meth
 • /home/s-maeda/osc-fs/08_NCBI_GEO_search
<br>

#### 再解析分も含めて、あらためてヒートマップ作成
 きしまさん分のデータを `//osc-fs_home/scratch/t-suzuki/disease_meth`
に置いてもらったので、
きしまさん分のデータと、自分のデータのpeak.IQR.ratioをそれぞれで抽出し、結合してからヒートマップ作成した。

---

### 1：peak.IQR.ratioの抽出_1
まず自分の分から、
/home/s-maeda/osc-fs/08_NCBI_GEO_search に移動し確認。


・EPICディレクトリの数確認
`find ~/osc-fs/08_NCBI_GEO_search/GSE* -name EPIC | wc -l`
　98

・*mot_analysis_result.txtの数確認
`find ~/osc-fs/08_NCBI_GEO_search/GSE*/EPIC -name *mot_analysis_result.txt | wc -l`
　98
 
 ディレクトリとtxtの数があっているので抽出
 ```
 #_抽出
for f in /home/s-maeda/osc-fs/08_NCBI_GEO_search/GSE*/EPIC/*mot_analysis_result.txt ; do
 awk '{print $14}' $f > $f.IQR
done

#_各列まとめる
paste /home/s-maeda/osc-fs/08_NCBI_GEO_search/GSE*/EPIC/*.IQR >> peak.IQR.ratio_pre.txt

#_max.peakヘッダー抽出
DIR="~/osc-fs/08_NCBI_GEO_search/GSE*/EPIC"
str=`echo ${DIR} | awk -F "/" '{ print $4 }'`
echo ${str} > peak.IQR.ratio_head.txt
sed -E 's/ +/\t/g' peak.IQR.ratio_head.txt > peak.IQR.ratio_head2.txt

#_ヘッダーと各peak.IQR.ratioあわせる
sed -i -e '1d' peak.IQR.ratio_pre.txt
cat peak.IQR.ratio_head.txt peak.IQR.ratio_pre.txt > peak.IQR.ratio_sm.txt
```

### 2：peak.IQR.ratioの抽出_2
次にきしまさんの分、
//osc-fs_home/scratch/t-suzuki/disease_meth に移動し確認。

・EPICディレクトリの数確認
`find //osc-fs_home/scratch/t-suzuki/disease_meth/GSE* -name EPIC | wc -l`
　34

・*mot_analysis_result.txtの数確認
`//osc-fs_home/scratch/t-suzuki/disease_meth/GSE*/EPIC -name *mot_analysis_result.txt | wc -l`
　528
 
 *mot_analysis_result.txt の数が多い。
 EPIC/ 以下のディレクトリにマージ前のサンプルがたくさんあるようだ。
 こちらで消そうとしても、パーミッションの問題でできない。
 
 とりあえず、自分のディレクトリにコピーして消した。
 
 /home/s-maeda/osc-fs/08_NCBI_GEO_search/disease_meth へ移動し確認。
 
 ・EPICディレクトリの数確認
`find ~/osc-fs/08_NCBI_GEO_search/disease_meth/GSE* -name EPIC | wc -l`
　34

・*mot_analysis_result.txtの数確認
`find ~/osc-fs/08_NCBI_GEO_search/disease_meth/GSE*/EPIC -name *mot_analysis_result.txt | wc -l`
　34
 
 たぶんOK。抽出。
 ```
 #_抽出
for f in /home/s-maeda/osc-fs/08_NCBI_GEO_search/disease_meth/GSE*/EPIC/*mot_analysis_result.txt ; do
 awk '{print $14}' $f > $f.IQR
done

#_各列まとめる
paste /home/s-maeda/osc-fs/08_NCBI_GEO_search/disease_meth/GSE*/EPIC/*.IQR >> peak.IQR.ratio_pre.txt

#_max.peakヘッダー抽出
DIR="~/osc-fs/08_NCBI_GEO_search/disease_meth/GSE*/EPIC"
str=`echo ${DIR} | awk -F "/" '{ print $5 }'`
echo ${str} > peak.IQR.ratio_head.txt
sed -E 's/ +/\t/g' peak.IQR.ratio_head.txt > peak.IQR.ratio_head2.txt

#_ヘッダーと各peak.IQR.ratioあわせる
sed -i -e '1d' peak.IQR.ratio_pre.txt
cat peak.IQR.ratio_head2.txt peak.IQR.ratio_pre.txt > peak.IQR.ratio_mk.txt
```
 
 
このディレクトリに、
`peak.IQR.ratio_sm.txt` と`motif_ID.txt` も移動した。確認もした。

---


### 3：ヒートマップの作成

#### ここからR

```
#データ読み込み
mk <- read.table("peak.IQR.ratio_mk.txt", header=TRUE, stringsAsFactors=TRUE)
sm <- read.table("peak.IQR.ratio_sm.txt", header=TRUE, stringsAsFactors=TRUE)
mo <- read.table("motif_ID.txt", sep = "\t", header = T)

#データ結合
mksm <- cbind(mk, sm)
data <- cbind(mo, mksm)

＃いちおう結合データをtxtにしておく
write.table (data, "peak.IQR.ratio_all.txt", sep ="\t", row.names=F, col.names=T, quote = F)


#パッケージ読み込み
library("ComplexHeatmap")    # ヒートマップを描く
library("circlize")　　　　# カラーパレットの色を細かく分ける
library("RColorBrewer")    # カラーパレット

#モチーフ名つける
rownames(data) <- unlist(strsplit(as.character(unlist(data["motif_ID"])), ".motif"))

#NAの行を削除
data_wona <- data[apply(data[,-1], 1, function(x){ !all(is.na(x))}),]

#色の設定
breaks1 <- seq(-2,2, length=500)

#breaks1に基づいて色を作製
mycols1 <- colorRamp2(breaks1,colorRampPalette(brewer.pal(9, "Blues"))(500))

#matrix変換
matrix1 <- as.matrix(data_wona)
matrix1 <- apply(matrix1,c(1,2), as.numeric)

#クラスタリング
df1 <- matrix1[,-1]
hc.rows <- hclust(dist(replace((df1), is.na(df1), 0)))
hc.cols <- hclust(dist(replace((t(df1)), is.na(t(df1)), 0)))

#ヒートマップ作成
ht1 <- Heatmap(df1,
                width = unit(6, "cm"),
                name = "peak/IQR",
                column_title = "Enriched motifs",
                column_title_gp = gpar(fontsize = 3),
                row_title = NA,
                row_names_gp = gpar(fontsize = 0.5),
                column_names_gp = gpar(fontsize = 0.5),
                col = mycols1,
                cluster_rows = hc.rows,
                cluster_columns = hc.cols,
                row_dend_width = unit(2, "cm"),
                na_col = "grey100",
                cell_fun = function(j, i, x, y, width, height, fill){
                    grid.rect(x = x, y = y, width = width, height = height, gp = gpar(col = "black", fill = NA, lty = 1, lwd = 0.2))
                }
 )

pdf("heatmap_20200730.pdf")
draw(ht1)

dev.off()
```
![](https://i.imgur.com/LQuPLO9.png)




 
 
 