October 21, 2020

R:複数の文字列をgrep関数で探す

こちらのwebページを参考にした。
x <- c("1100", "0010", "1001", "1111")
pattern <- "001|100|000"

grep(pattern, x)
[1] 1 2 3

October 6, 2020

R:ヒートマップのレイアウト変更

 gplotsでヒートマップを描くとき、layout関数で幅などを変えることができる。

October 2, 2020

R:ヒートマップで遺伝子名を表示する

Rのヒートマップを描くときに、プローブIDではなくて遺伝子名を表示するコードのメモ。

門田先生のwebサイトを参考にした。

R:fRMAを行う

frozen RMA (fRMA)は正規化方法の一つで、サンプル数が少ない場合にRMAよりも優れるとの報告がある。
この計算も、Rのパッケージを用いて行うことができる。

以下は、遺伝子発現情報を抽出するまでのコードである。frmaのパッケージを読みこんでfrma関数を用いれば完了する。

1
2
3
4
5
6
library(affy)
library(frma)

cel_dat <- ReadAffy()
eset <- frma(cel_dat)
emat <- exprs(eset)

R:ヒートマップを作成する方法

ヒートマップを作成するコードの一つを、忘備録として記す。

いつもながら、working directoryの場所にご注意いただきたい。今回の場合は、CELファイルが置いてあるファイルに設定している。


R:計算が強制終了するときの対処法

 Rで高負荷な計算を行った際に、以下のようなエラーが出て計算が止まってしまった。

Error: vector memory exhausted (limit reached?)

この問題には、こちらのサイトを参考にして対処した。


具体的には、まずターミナルを開いて以下のコマンドを実行する。

cd ~
touch .Renviron
open .Renviron

そして、(自動的に)開かれた文書に

R_MAX_VSIZE=100Gb 

と入力して保存する。

以上の操作によって解決した。

July 29, 2020

R:記号を含む文字列を検索する際の注意点

Rで記号を含む文字列を扱う際には、正規表現に注意が必要だ。

例えば、以下の文字列strから、(12)の場所を探すことを考える。
str <- c("(12)", "(123)", "(132)")

grepやstr_matchで"(12)"を検索にかけると、"(123)"まで選ばれてしまう。
grep("(12)", str)
[1] 1 2

これは、rの正規表現(Regular expression)に則ると括弧が認識されないので、実質的に"12"で検索している状態となっていることが原因である。

ここで(12)だけを抽出するためには、
1. 括弧を"\\("または"\\)"で表現する または、
2. "\\b"で境界を作る と良い。
grep("\\(12\\)", str)
[1] 1
grep("\\b(12)\\b", str)
[1] 1

(追記)
fixed = TRUE を挿入すると、正規表現ではない文字として扱ってもらえる。
grep("(12)", str, fixed = TRUE)
[1] 1




July 22, 2020

R:Shiny serverのパッケージ設定

ubuntuでShiny serverを設定する際には、パッケージのインストールに気を付けなければならない。
/srv に置かれたプログラムを実行する際は、ローカルに置かれたパッケージ(例えば /home/{user}/R/x86_64-pc-linux-gnu-library/4.0)を参照することができない。
これは、以下の方法では解消できなかった (少なくとも自分の環境では)。

失敗試行1. chownコマンドを使って、上記のフォルダにshiny(ユーザー)がアクセスできるようにする
失敗試行2. /etc/shiny-server/shiny-server.conf にアクセスし、run_as をshinyではなく自分の名前に変更する

shinyが参照するライブラリの場所は /usr/lib/R/site-library または /usr/lib/R/library になる。ここはroot権限の場所になるため、以下のようにターミナルからRを経由して(RStudioは使わずに)パッケージをインストールする。

sudo su - -c "R -e \"install.packages('foo')\""


July 17, 2020

R:パッケージのアップデート

Rのパッケージをアップデートしたい場合は、Rのコンソールより

.libPaths()

でライブラリの場所を確認する。パッケージがの場所がおそらく複数表示される。
アップデートしたいパッケージが入っている場所を確認し、例えば1番最初の場所だったら

update.packages(.libPaths()[1])

とコマンドする。この操作によって、パッケージを簡単にまとめてアップデートできる。
パッケージごとにアップデートするかどうかを聞かれるのを防ぎたい場合は、以下のオプションを入れると良い。

update.packages(.libPaths()[1], ask = FALSE)

ちなみに、個別にパッケージをインストールする場合は、こちらのページが参考になる。

*****

また、今回Ubuntu18.04においてパッケージのアップデートを行ったところ、以下のようなエラーが出てインストールが止まった。

In install.packages(update[instlib == l, "Package"], l, contriburl = contriburl,  :   installation of package ‘plotly’ had non-zero exit status


この原因は、元のフォルダに古いパッケージが残っていることであった。
そこで、以下の手順で解消された。

1) パッケージが置かれている場所の権限を変える。
sudo usermod -a -G staff your_user_name
sudo chown -R your_user_name:staff /user/local/lib/R/site-library

2) 古いパッケージを消す

3) インストールし直す


July 10, 2020

R:異なるモード型の行列をまとめる

異なるモード型の行列があるとき (c1: character, c2: numeric)

c1 <- matrix(c("a","b","c"), nrow=3, ncol=1)
c2 <- matrix(c(1:3), nrow=3, ncol=1)

cbindで結合すると、数字のモード型が文字に変換されてしまう。

mat <- cbind(c1,c2)
mode(mat[2,2])
[1] "character"

この問題は、データフレームに収めることで解決する。

df <- data.frame(c1,c2)
mode(df[2,2])
[1] "numeric"

June 29, 2020

R:複数のCELファイルを読み込む

ワーキングディレクトリ内にある複数のCELファイルの名前を、以下のような文字列ベクトルに収めている際

cel_file <- c("a1.CEL", "a2.CEL", "a3.CEL")

AffyパッケージのReadAffy関数で読もうとすると失敗してしまう

cel_dat <- ReadAffy(cel_file)
→ Error : file names must be specified using a character vector, not a ‘list’

このエラーは、以下のようにして解決する

cel_dat <- ReadAffy(filenames = cel_file)

June 15, 2020

R:freadで読み込んだファイルに行名をつける

Rで大規模なデータを読む際は、data.tableパッケージのfread関数を使うと時間を短縮できて良い。

しかし、そのデータには行名を付けられないため、以下の様な作業が必要になる。


1
2
3
4
data <- fread("file.csv", stringsAsFactors = FALSE)
data <- as.data.frame(data)
row.names(data) <- as.matrix(data[,1])
data <- data[,-1]

June 2, 2020

GSEA解析 (データのフィルタリング; 半数が閾値より大きい)

GSEAでフィルタリングしたデータを用意するコードを作成したので共有する。
今回の条件は、「半数以上のサンプルにおける発現が閾値 (min.thrd)より大きい遺伝子を残す」というもの。

実行したら以下が生成される
・フィルタリング無しの発現ファイル(XX.txt)
・フィルタリング有りの発現ファイル(XX_HalfisLarger_(min.thrd).txt)
・表現型ファイルのひな型(XX.cls) ※要編集

このプログラムにおいても、Working directoryがCELファイルと同じ場所になっていることが前提になっている。
主な変更点に関する注釈をマゼンタ色で表示している。

June 1, 2020

GSEA解析 (データのフィルタリング; 全てが閾値より大きい)

GSEAでフィルタリングしたデータを用意するコードを作成したので共有する。
条件は、「すべてのサンプルにおける発現が閾値 (min.thrd)より大きい遺伝子を残す」というもの。

実行したら以下が生成される
・フィルタリング無しの発現ファイル(XX.txt)
・フィルタリング有りの発現ファイル(XX_filtered_(min.thrd).txt)
・表現型ファイルのひな型(XX.cls) ※要編集

このプログラムにおいても、Working directoryがCELファイルと同じ場所になっていることが前提になっている。
主な変更点に関する注釈をマゼンタ色で表示している。

May 19, 2020

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

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

May 14, 2020

GSEA解析 (データの準備方法)

Affymerix社のCELファイルを元にGSEA解析をする際のデータ準備方法について書く。

前提として

  • Rを使う
    ※ Rのインストールに関しては、門田先生のwebサイトに書かれている。その中で紹介されている、必要最小限のパッケージをインストールしておくと便利
    ※ エディタにはRstudioが便利
  • CELファイルは3' Expression Arrayで取得されたもの
    ※ 比較的新しい、HTAやGene STで取得されたデータに関しては、oligoというパッケージを用いてデータを抽出する

May 11, 2020

GSEA解析 (結果と解釈)

前の記事で紹介した通り、計算後にSuccessと表示される部分をクリックすると、ブラウザを使って解析結果を見ることができる。

GSEAの結果の一部 (下部に続きがある)

May 1, 2020

GSEA解析 (実行方法)

Gene Set Enrichment Analysis (GSEA)とは

GSEAは、発現変動している遺伝子(例: Normal vs Drug A treatment で動く遺伝子) と、既知の遺伝子セット(例: Hypoxiaで動く遺伝子の集まり)との一致度を判断する計算方法である。

GSEAの解析例

April 14, 2020

Chipsterを用いてマイクロアレイ解析 (正規化・QC)

Chipsterとは

ChipsterはフィンランドのCSC – IT Center for Science社によって開発された、NGSやマイクロアレイを解析するソフトウェア。

利用方法は大まかに二通りある;
  • Chipsterのサーバーをローカルにセットアップする。この場合は、サービスを無料で利用できる。
    • セットアップするPCの推奨スペック;
      • 16 GB RAM
      • 500 GB storage
      • 2 CPU cores
  • CSCのChipsterサーバー@フィンランドを利用する
    • 大学やNPO所属の場合、無料で三週間利用できるアカウントを取得できる
      また、長期間利用の場合は、1年間使えるアカウントを500ユーロで取得できる

April 6, 2020

Databases

データベース一覧

追加事項
(10/9/2021) 「4. 疫学関連」にcellosauruseを追加、「5.バイオインフォマティクス全般」の項を追加
(8/9/2021)   「4. 疫学関連」にDRIVE DATA PORTALを追加
(8/9/2021)   「CCLE」はDepMapに統合されたため、削除線を引きました
(10/7/2020) 「4. 疫学関連 」にサイト(Cell Model Passport)を追加
(22/5/2020) 「1. 塩基配列関連 > 遺伝子発現 」、「4. 疫学関連 > 生存率分析」にサイトを追加
(21/5/2020) 「2. タンパク質関連 > メタボローム関連」、「4. 疫学関連 > 生存率分析」の項を追加