ラベル R の投稿を表示しています。 すべての投稿を表示
ラベル R の投稿を表示しています。 すべての投稿を表示

2015年2月12日木曜日

Rで変数を使いたくてハマったのでメモ

そこそこ数のあるファイルを読み込んだりする際に、read.tableするだけでも冗長になる
ES1 <- read.table("./ES1/quant_bias_corrected.sf")
ES2 <- read.table("./ES2/quant_bias_corrected.sf")
ES3 <- read.table("./ES3/quant_bias_corrected.sf")
PE1 <- read.table("./PE1/quant_bias_corrected.sf")
PE2 <- read.table("./PE2/quant_bias_corrected.sf")
PE3 <- read.table("./PE3/quant_bias_corrected.sf")
$とかつけて変数として扱ってfor文でまわせたら楽なのにとかおもって
sample <- c("ES1", "ES2", "ES3", "PE1", "PE2", "PE3")
for (i in sample) {
        i <- read.table("./(i)/quant_bias_corrected.sf")
}
とかしても当然ダメですハイ。
それぞれのオブジェクトを別々に作ってもいいけど、どうせその後の処理が一緒ならapply関数使えるようにlistに格納する方が無難。一度pathをリストに格納して読み込んだ表を別のリストに順に格納する。こうすればevalを使わなくてもなんとかなる。
num = 3
filename <- as.list(rep(NA, num))
cell <- as.list(rep(NA, num))

for(i in seq(num)){
    filename[[i]] <- paste("./ES", i, "/quant_bias_corrected.sf", sep="")
    cell[[i]] <- read.table(filename[[i]], sep="\t")
}

for(i in seq(num)){
    filename[[i+num]] <- paste("./PE", i, "/quant_bias_corrected.sf", sep="")
    cell[[i+num]] <- read.table(filename[[i+num]], sep="\t")
}
names(cell) <- c("ES1", "ES2", "ES3", "PE1", "PE2", "PE3")

2014年5月18日日曜日

ChIPpeakAnnoのTSSデータを追加する

ChIPpeakAnnoはデフォルトでいくつかのTSSデータが入っている (R-version/library/ChIPpeakAnno/data)
今回はデフォルトにはない、酵母のTSSの情報を得るのが目的

既にbiomaRtがインストールされている前提で、R上で以下のコマンドを入力
mart1 = useMart(biomart="ensembl")
listDatasets(mart1)
とするとリストがでてくる。
13番目にscerevisiae_gene_ensemblがある。

sacCer3= useMart(biomart="ensembl", datset="scerevisiae_gene_ensembl")
TSS.scerevisiae.sacCer3 = getAnnotation(mart=sacCer3, featureType="TSS")
として、
ls()とすると
mart1
TSS.mouse.sacCer3
sacCer3
となるので
rm('mart1')
rm('sacCer3')
として、TSS.mouse.sacCer3のみの状態にしてから
save(list=ls(), file = "./TSS.scerevisiae.sacCer3.rda")
Rを終了させて、カレントディレクトリでlsするとTSS.scerevisiae.sacCer3.rdaがあるのでこれを
/PATH/TO/R-version/library/data/
以下にコピーすれば、デフォルトに入っているマウスやヒトのデータを扱うのと同じように扱えるようになる。