Download presentation
Presentation is loading. Please wait.
1
2016年度 植物バイオサイエンス情報処理演習 第9回 情報処理(5) データを集計する
2016年度 植物バイオサイエンス情報処理演習 第9回 情報処理(5) データを集計する 2016年6月10日 機能ゲノム科学 尾形 善之 Wikipedia
2
前回のフォロー 「-perc_identity」について 近縁種では95%くらいが適当 ただし、今回の場合は90%くらいか……
低いとヒット数は増えるが、ノイズも増える -perc_identity DRR013381 % DRR013386 全配列数 763,641 560,040 100% 53,185 7.0 23,940 4.3 95% 536,881 70.3 290,632 51.9 90% 637,586 83.5 353,662 63.1 85% 647,456 84.8 360,488 64.4 80% 648,580 84.9 361,364 64.5
3
実習の大きな流れ RNAクエリーデータ入手~加工する 遺伝子データベースデータを入手する BLAST解析(マッピング)する
遺伝子発現データを得る ストレスで特異的に発現する遺伝子を探す 特異的遺伝子の機能・特徴を調べる
4
実習の材料 RNA-Seq解析(遺伝子マッピング) 植物: Arabidopsis kamchatica 試料:RNAサンプル
実験区:低温ストレス処理(DRR013386) 対象区:無処理(DRR013381) RNA配列の数が遺伝子の発現量に相当する BLASTN解析で遺伝子ごとのヒット数を調べる
5
本日の実習 BLASTNの結果を遺伝子ごとに纏める BLAST解析はクエリー配列ごとの結果 遺伝子ごとに、いくつヒットがあったかを数える
数えるためのPerlスクリプトを作る
6
第6回のおさらい Perlスクリプトの基本 前置き:「use」コマンド 変数の宣言:「my」コマンド ファイルの入出力:「open」コマンド
テキスト処理:正規表現 後書き:「exit」コマンド
7
Perlスクリプトの発展・1 複数の変数を纏める変数 変数ひとつならば「$hensu」 いくつか変数を纏めて覚えておくと便利
リストとハッシュ
8
リストとハッシュ リストは、お菓子の箱 ハッシュは、サンタさんの袋 複数の変数を番号を付けて覚える 整然と並んでいるお菓子の箱と似ている
複数の変数を宛名と中身で覚える 雑然と入っているがきちんと見分けられるサンタさんの袋と似ている
9
リスト タブで区切られたデータを分ける BLASTの結果はタブで区切られている エクセルに貼り付ければ、自動で区切ってくれる
Perlスクリプトでは自分で分ける /\t/,$line;」
10
@list=split /\t/,$line;
「=」は代入、右の内容を左に代入する 「split」:文字列を何かの文字で分ける 例えば、「一行の変数をタブで分ける」 「/\t/」:正規表現、「\t」はタブを表す 「$line」:コンマの後が「分けられる文字列」
11
@list=split /\t/,$line;
結果 リストの中のひとつの変数を表すときは「$」に戻る 大かっこ「[ ]」の中は変数の順番、最初が「0」
12
@list=split /\t/,$line;
今回の場合 2列目が遺伝子名 2番目の変数が必要
13
リストの纏め リストは複数の変数を纏める変数 「@list」と書く n番目の変数は「$list[n-1]」で呼び出せる
それぞれの変数を添え字([ ])で区別する 「list」の部分は何でもよい n番目の変数は「$list[n-1]」で呼び出せる
14
ハッシュ 「宛名」と「プレゼントの中身」 宣言するときは、「my %hash=();」
「キー」と「バリュー」と言います 宝箱のイメージです、「カギ」と「おたから」 宣言するときは、「my %hash=();」 覚えるときは、「$hash{$key}=$value;」 使うときは、「$hash{$key}」
15
ハッシュの使い方 例えば、苗字から名前を調べるとき 「$hash{“Ogata”}=“Yoshiyuki”;」で登録する
「$name=$hash{“Ogata”};」とすると、 $nameに「Yoshiyuki」が入る
16
今回のハッシュの使い方 キーを遺伝子名にする バリューをヒット数にする 正確には遺伝子座 出てきた回数
「AT0G00000」の形が遺伝子座(locus) 「AT0G 」の形は遺伝子モデル バリューをヒット数にする 出てきた回数 ただし、同じクエリー配列に対しては、一回だけカウントする(後で説明します!)
17
$hash{$locus}++; 「%hash」に登録するときは「$hash」となる ハッシュのキーを「$locus」とする 「++」
ここはリストと同様 ハッシュのキーを「$locus」とする 実習では正規表現を使うので「$1」を使う 「++」 登録されているキーに対するバリューの数字をひとつ増やす 最初の登録では勝手に「0」から「1」になる
18
チェックポイント・I リストとハッシュの違いは? 一行の変数($line)をコンマで区切ってリスト(@list)に入れる書き方は?
自分の苗字のローマ字をキーにして、名前のローマ字をバリューにして、ハッシュ(%hash)に登録する書き方は?
19
Perlスクリプトの発展・2 ループ構文 すでに「while」構文は出てきています 他に「for」構文があります 「~している間」
Wikipedia
20
「for」構文 「for($i=1;$i<=10;$i++){ }」 丸かっこの中身、セミコロン「;」で区切っている
「$i++」:$iの増やし方、「++」はひとつずつ増やす $iが「1, 2, 3, 4, 5, 6, 7, 8, 9, 10」までループする 中かっこの中にコマンドを書く 「while」構文と同様
21
数字の増やし方 ひとつずつ増やす ふたつずつ増やす 「$number=$number+1;」 「$number+=1;」
22
今回の実習での「for」構文 ハッシュで遺伝子のヒット数を数える ハッシュのキーはばらばら ハッシュのキーを集めてリストを作る
集める必要がある ハッシュのキーを集めてリストを作る リストの添え字を「for」構文でループさせる
23
実際の「for」構文 「for($i=0;$i<=$#list;$i++){ }」 「$i」はリストの添え字
リストの添え字は「0」から始まる 「$i<=$#list」 「$#list」はリストの添え字の最大値 「$i++」 リストの添え字をひとつずつループする
24
実はもっといいループ構文が… 「foreach」構文 リストの添え字をすべてループする場合に便利
「foreach }」 「$locus」はリストの中のそれぞれの変数 リストの中のそれぞれの変数を順番に呼び出す 今日はこちらの構文を使います!
25
チェックポイント・II 「while」構文と「for」構文の違いは?
「for」構文を使って、数字の変数($i)を1~31まで3つずつ増やしていく書き方は?
26
「if」構文の補足 「ふたつの変数が同じならば」 「ふたつの変数が違うならば」 数字:「if($number1==$number2){ }」
文字列:「if($moji1 eq $moji2){ }」 「=」1つだと「代入」、「eq」はequalの意味 「ふたつの変数が違うならば」 数字:「if($number1!=$number2){ }」 文字列:「if($moji1 ne $moji2){ }」 「!」は否定の意味、「ne」はnot equalの意味
27
同じクエリー配列を一回だけカウントする どうやって? 今回の実習の方法 クエリー配列のIDを変数に入れる 次の行で、同じIDかどうか比べる
28
本日の実習と課題 前回の実習でBLAST解析した結果のファイルふたつを使います。
結果のファイルから遺伝子数(遺伝子座)のヒット数を纏めるPerlスクリプトを作ります。 Perlプログラミングの感想を書いてください。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.