演習問題(Medium) - yoshida1983/protc2026 GitHub Wiki

ここでは、予備実験データ(pre1〜pre5)を加えて、同じ解析をもう一度行います。

  • pre1〜pre5 は、A1〜D8 のいずれかと同じラインに由来します
  • どれがどれに対応するかを、実習で使った手法だけで突き止めてください
  • 新しい手法は出てきません。同じ手法を、別の問いに使う演習です
  • 1つの手法で決めきれなくても構いません。複数の結果を突き合わせて判断してください

→ 条件を変えて試す演習は 演習問題(Easy)、別の実験データを使う演習は 発展演習(Hard) にあります

準備:13サンプルをまとめて読み込む

実習用スクリプトの read_mascot() を使うので、同じプロジェクト、同じRの画面で続けてください。 pre1〜pre5 の csv を、同じフォルダにコピーしてから実行します。

# A1〜D8 と pre1〜pre5 を、明示的に指定して読み込む
files_all <- c(list.files(pattern = "^[A-D][0-9]+\\.csv$"),
               list.files(pattern = "^pre[0-9]+\\.csv$"))
files_all                                   # 13ファイルが表示されればOK

names_all <- tools::file_path_sans_ext(files_all)

dfs_all <- lapply(seq_along(files_all), function(i) {
  x <- read_mascot(files_all[i])
  colnames(x) <- c("Accession", names_all[i])
  x
})

merged_all <- purrr::reduce(dfs_all, full_join, by = "Accession")
merged_all[is.na(merged_all)] <- 0

# GFP(ベイト)を除く
is_gfp <- str_detect(merged_all$Accession, regex("GFP", ignore_case = TRUE))
merged_all <- merged_all[!is_gfp, ]
dim(merged_all)                             # タンパク質数 × 14
  • ファイル名を明示的に指定しているので、実習で保存した merged_proteome.csv が混ざる心配はありません
  • これ以降は、実習用スクリプトの merged を merged_all、sample_names を names_all に読み替えて使えます
  • GO解析まで進んだあとの画面では、reduce() が Bioconductor のパッケージのものに置き換わっています。そのため purrr::reduce() と明示して呼びます
  • ただし sample_group と sample_no は 使いません。A1〜D8 の命名を前提にしているため、pre1 を入れると A1 と番号が衝突します

演習1「検出されたタンパク質の重なりを数える」

目的: もっとも単純な方法で、サンプル間の近さを測る。 課題:

  • 各 pre サンプルと、A1〜D8 の各サンプルとで、共通して検出されたタンパク質の数を数える。
  • 5 × 8 の表にまとめ、pre ごとに最も重なりが大きいサンプルを探す。
    • ヒント:実習で使った detected() と同じ考え方です。
detected_all <- function(s) merged_all$Accession[merged_all[s](/yoshida1983/protc2026/wiki/s) > 0]

sapply(names_all, function(s) length(detected_all(s)))   # サンプルごとの検出数
length(intersect(detected_all("pre1"), detected_all("A1")))

考察:

  • 検出数そのものがサンプルごとに違います。数の大小だけで判断してよいでしょうか。
  • 重なりの「割合」で見ると、順位は変わりますか。

演習2「Venn図で見る」

目的: 重なりを図で確認する。 課題:

  • 演習1で当たりをつけた組み合わせについて、pre と対応候補のサンプルで Venn図を描く。
  • 対応しないと思われる組み合わせでも描き、見え方がどう違うかを比べる。
    • ヒント:実習用スクリプト「Venn図でサンプル間比較」の節をそのまま使えます。

演習3「13サンプルまとめてクラスタリング」

目的: 全体の中での位置関係から、対応を判断する。 課題:

  • 13サンプルすべてで階層的クラスタリングを行い、デンドログラムで隣り合うサンプルを確認する。
  • ヒートマップにして、まとまり方を見る。
    • ヒント:実習用スクリプト「階層的クラスタリング」の節を使えます。
  • 距離尺度とクラスタリング手法を変えて、同じ対応関係が出るかを確かめる。

考察:

  • どの手法でも同じ組み合わせになりましたか。変わった場合、どちらを信じますか。

演習4「PCAで見る」

目的: 別の見方でも同じ結論になるかを確認する。 課題:

  • 13サンプルで PCA を行い、スコアプロット上で pre がどこに位置するかを見る。
    • ヒント:実習用スクリプト「PCA解析」の節を使えます。
  • 演習3のクラスタリングと、同じ対応関係になるかを確認する。

考察:

  • PC1 と PC2 は、それぞれ何の違いを反映していそうですか。

演習5「GO解析で見る」

目的: 機能の特徴からも、対応を確かめる。 課題:

  • pre1〜pre5 それぞれで GO 濃縮解析を行う。
    • 背景(universe)の指定を忘れずに。13サンプルで検出された全タンパク質を背景にします。
  • A1〜D8 の結果と見比べて、エンリッチした GO term が似ているサンプルを探す。
  • ont を "CC" にすると、どう見えますか。

まとめの課題

pre1〜pre5 は、それぞれどのサンプルと同じラインに由来するか。

  • 演習1〜5 のどの結果を根拠にしたかを、あわせて記録してください。
  • 1つだけ、他とは事情が違うものがあります。 気づきましたか。
  • 手法によって答えが違った場合は、その理由も考えてください。