########################## ### 基本的な利用法 ########################## 1+1 100/3 uge <- 100 uge/3 age = 100 age/3 uge<-100 age=100 uge age age <- 36 uge - age hoge - age ########################## ### 基本的な利用法2 ########################## uge <- 100 log(uge) log(uge) # デフォルトの底は自然対数 uge log(uge, base=10) # 底を10にしたい場合 log(uge, base = 2)#底を2にしたい場合 log10(uge) # log10という関数も存在する log2(uge) # log2関数もある loge(uge) # 底がeの関数は存在しない... log(uge) # log関数のデフォルトがeだから log10(uge, base=2)# baseというオプションはない ########################## ### 基本的な利用法3 ########################## ?log10 # log10関数の使用法を調べる help(log10) # log10関数の使用法を調べる x <- c(3, 2, 9, 2)# 数値ベクトルxを作成 x # xの中身を表示 mean(x) # 平均値 (3+2+9+2)/4 # 平均値 average(x) # エクセルと違ってaverageはない median(x) # 中央値 log2(x) # ベクトルの要素ごとに計算 sort(x) sort(x, decreasing = FALSE) sort(x, decreasing=FALSE) sort(x, decreasing=F) sort(x, decreasing=TRUE) sort(x, decreasing=T) ########################## ### 基本的な利用法4 ########################## x <- c(3, 2, 9, 2)# 数値ベクトルxを作成 x > 2.5 # 2.5より大きいか否か x < 2.5 # 2.5より小さいか否か k <- c(-3, 2, 9, 2)# 数値ベクトルxを作成 k > -2.5 # -2.5より大きいか否か k < -2.5 # -2.5より小さいか否か obj <- k < -2.5 # -2.5より小さいか否かという論理値ベクトルをobjに格納 obj # objの中身を表示 obj <- (k < -2.5) # ()で囲って見やすくしてもよい obj # objの中身を表示 ########################## ### 基本的な利用法5 ########################## x <- c(3, 2, 9, 2)# 数値ベクトルxを作成 obj <- (x > 2.5) # 2.5より大きいか否かの結果をobjに格納 obj # objの中身を表示 x[obj] # objがTRUEとなる要素のみを表示 posi <- c(1,3) # 数値ベクトルposiを作成 posi # posiの中身を表示 x[posi] # posiで指定した要素番号を表示 posi <- 2:4 # 数値ベクトルposiを作成 posi # posiの中身を表示 x[posi] # posiで指定した要素番号を表示 ########################## ### 基本的な利用法6 ########################## x <- c(3, 2, 9, 2)# 数値ベクトルxを作成 length(x) # ベクトルxの要素数を表示 posi <- 1:3 # 数値ベクトルposiを作成 sort(x)[posi] # xを昇順にソートし、最初の3つを表示 sort(x, decreasing=T)[posi]# xを降順にソートし、最初の3つを表示 ########################## ### イントロ | 一般 | 任意のキーワードを含む行を抽出(基礎) ### 4列目でキーワード検索したいとき ########################## in_f1 <- "annotation.txt" #入力ファイル名を指定してin_f1に格納(アノテーションファイル) in_f2 <- "list.txt" #入力ファイル名を指定してin_f2に格納(リストファイル) out_f <- "hoge1.txt" #出力ファイル名を指定してout_fに格納 param <- 4 #アノテーションファイル中の検索したい列番号を指定 #入力ファイルの読み込み data <- read.table(in_f1, header=TRUE, sep="\t", quote="")#in_f1で指定したファイルの読み込み keywords <- readLines(in_f2) #in_f2で指定したファイルの読み込み dim(data) #オブジェクトdataの行数と列数を表示 #本番 obj <- is.element(as.character(data[,param]), keywords)#条件を満たすかどうかを判定した結果をobjに格納 out <- data[obj,] #objがTRUEとなる行のみ抽出した結果をoutに格納 dim(out) #オブジェクトoutの行数と列数を表示 #ファイルに保存 write.table(out, out_f, sep="\t", append=F, quote=F, row.names=F)#outの中身を指定したファイル名で保存 ########################## ### 論理値ベクトルを理解 ########################## keywords # keywordsの中身を表示 length(keywords) # ベクトルkeywordsの要素数を表示 keywords[3] # 3番目の要素を表示 keywords[4] # 4番目の要素は...ない hoge <- c("gene7", "gene9")# 2つの要素からなるベクトルhogeを生成 hoge # 確認してるだけです keywords == hoge # FALSE TRUE TRUEになることを期待したが... is.element(keywords, hoge)# hogeがkeywordsの要素に含まれる位置情報を返す keywords # keywordsの中身を表示 data[,param] # 確認してるだけです as.character(data[,param])# 文字列に変換すると型が揃うことが分かる is.element(as.character(data[,param]), keywords)#条件を満たすかどうかを判定 is.element(data[,param], keywords)# keywordsがdata[,param]の要素に含まれる位置情報を返す ########################## ### 論理値ベクトル ########################## x <- c("A", "B", "C", "d", "E")# dのみ小文字の文字列ベクトル y <- c("B", "d") # 2つの要素からなるベクトル is.element(x, y) # yがxの要素に含まれる位置情報を返す is.element(y, x) # xがyの要素に含まれる位置情報を返す x <- c("A", "B", "C", "d", "E") z <- c("A", "D", "F") is.element(x, z) # xがzの要素に含まれる位置情報を返す is.element(z, x) # zがxの要素に含まれる位置情報を返す ########################## ### 集合演算 ########################## x <- c("A", "B", "C", "d", "E")# dのみ小文字の文字列ベクトル y <- c("B", "d") # 2つの要素からなるベクトル union(x, y) # xとyの和集合(union)なので、xとyの位置は無関係 union(y, x) # yとxの和集合(union)なので、yとxの位置は無関係 intersect(x, y) # xとyの積集合(intersection) intersect(y, x) # yとxの積集合(intersection) setdiff(x, y) # xの中でyの要素には含まれないもの x <- c("A", "B", "C", "d", "E") z <- c("A", "D", "F") union(x, z) # xとzの和集合(union) intersect(x, z) # xとzの積集合(intersection) setdiff(x, z) # xの中でzの要素には含まれないもの ########################## ### Tips(その他) ########################## hoge <- c(x, z) # ベクトルxとzを結合。cは結合(concatenate)の意味 hoge # hogeの中身を表示 sorted <- sort(hoge) # アルファベット順にソート sorted # sortedの中身を表示 table(sorted) # 要素ごとの出現回数 table(hoge) # 要素ごとの出現回数 X <- c("C", "A", "B", "E", "D")# 全部大文字の文字列ベクトル y <- c("f", "b", "d")# 全部小文字からなるベクトル is.element(X, y) # yがXの要素に含まれる位置情報を返す Y <- toupper(y) # 大文字に変換(to upper) Y # Yの中身を表示 is.element(X, Y) # YがXの要素に含まれる位置情報を返す x <- tolower(X) # 小文字に変換(to lower) x # xの中身を表示 is.element(x, y) # yがxの要素に含まれる位置情報を返す ########################## ### 翻訳配列取得(Biostringsパッケージの読み込みなし) ########################## in_f <- "sample1.fasta" #入力ファイル名を指定してin_fに格納 out_f <- "hoge1.fasta" #出力ファイル名を指定してout_fに格納 #必要なパッケージをロード #library(Biostrings) #パッケージの読み込み #入力ファイルの読み込み fasta <- readDNAStringSet(in_f, format="fasta")#in_fで指定したファイルの読み込み #本番 hoge <- translate(fasta) #fastaをアミノ酸配列に翻訳した結果をhogeに格納 names(hoge) <- names(fasta) #現状では翻訳した結果のオブジェクトhogeのdescription行が消えてしまうようなので、description部分の情報に相当するnames(fasta)をnames(hoge)に格納している fasta <- hoge #hogeの中身をfastaに格納 fasta #確認してるだけです #ファイルに保存 writeXStringSet(fasta, file=out_f, format="fasta", width=50)#fastaの中身を指定したファイル名で保存 ########################## ### 作業スペース周辺 ########################## getwd() # スライド27 objects() # スライド27 getwd() # スライド28 objects() # スライド28 in_f # スライド28 out_f # スライド28 search() # スライド28 pre <- search() pre fasta fasta post <- search() post pre setdiff(post, pre) setdiff(pre, post) intersect(pre, post) ########################## ### source関数を利用 ########################## search() # スライド40 (うまくいく例) getwd() # スライド40 (うまくいく例) list.files() # スライド40 (うまくいく例) source("rcode_translate.txt")# スライド40 (うまくいく例) list.files() # スライド40 (うまくいく例) list.files() # スライド41 (うまくいかない例) source(”rcode_translate.txt”)# スライド41 (うまくいかない例) list.files() # スライド41 (うまくいかない例)