2016年度 植物バイオサイエンス情報処理演習 第9回 情報処理(5) データを集計する

Slides:



Advertisements
Similar presentations
生物統計学・第 5 回 比べる準備をする 標準偏差、標準誤差、標準化 2013 年 11 月 7 日 生命環境科学域 応用生命科学 類 尾形 善之.
Advertisements

生物統計学・第 4 回 比べる準備をする 平均、分散、標準偏差、標準誤差、標準 化 2015 年 10 月 20 日 生命環境科学域 応用生命科学類 尾形 善之.
生物統計学・第 2 回 全体を眺める(1) 平均と分散、各種グラフ、ヒストグラム 2013 年 10 月 7 日 生命環境科学域 応用生命科学類 植物バイオサイエンス課程 尾形 善之.
コーパス言語学実践 2006 年度 2 学期 第 7 回. 2 本日の内容 前回までのまとめ – ファイルの確認 – ファイルの分割 – エクセルでの作業(品詞構成比率 延べ語 数) 品詞構成比率(異なり語数) データ収集(占いのことば)
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
コーパス言語学実践 2006 年度 2 学期 第 9 回. 2 本日の内容 これまでと同様の作業 – プログラムで処理するケースの紹介.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
初年次セミナー 第8回 データの入力.
植物系統分類学・第13回 分子系統学の基礎と実践
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
情報処理演習C2 ファイル操作について (2).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
プログラミング言語としてのR 情報知能学科 白井 英俊.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
6/26 前回復習 for文、while文による繰り返し計算
生物統計学・第3回 全体を眺める(2) 主成分分析
第6章 2重ループ&配列 2重ループと配列をやります.
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
生物統計学・第1回 統計解析を始める前に -妥当なデータかどうかを判断する-
生物統計学・第2回 注目要素を決める まず木を見る、各種グラフ、ウェブツール
2016年度 植物バイオサイエンス情報処理演習 第7回 情報解析(1) 配列相同性解析・1
スクリプト言語を用いたPHITSの連続実行
マイクロソフト Access を使ってみよう 第1回
2016年度 植物バイオサイエンス情報処理演習 第10回 情報解析(3) Rを使った主成分分析
2016年度 植物バイオサイエンス情報処理演習 第13回 情報解析(6) エクセルVBAによる遺伝子機能解析
生物統計学・第2回 全体を眺める(1) 各種グラフ、ヒストグラム、分布
2017年度 植物バイオサイエンス情報処理演習 第7回 公共データバンクの遺伝子発現情報
2017年度 植物バイオサイエンス情報処理演習 第5回 公共データバンクの遺伝子情報
2018年度 植物バイオサイエンス情報処理演習 第5回 公共データバンクの遺伝子情報
2018年度 植物バイオサイエンス情報処理演習 第7回 公共データバンクの遺伝子発現情報
2017年度 植物バイオサイエンス情報処理演習 第1回 情報検索(1) ビッグデータを眺める
植物系統分類学・第15回 比較ゲノミクスの基礎と実践
第6回:ラケットを動かそう! (キーボードによる物体の操作)
生物統計学・第3回 全体を眺める(1) R、クラスタリング、ヒートマップ、各種手法
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
植物系統分類学・第14回 分子系統学の基礎と実践
2018年度 植物バイオサイエンス情報処理演習 第12回 情報解析(2) 配列相同性解析・DNA
2019年1月22日 生命環境科学域 応用生命科学類 尾形 善之
生物統計学・第3回 全体を眺める(2) クラスタリング、ヒートマップ
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
オブジェクト プログラミング 第2回 プログラムの基本.
統計ソフトウエアRの基礎.
アルゴリズムとプログラミング (Algorithms and Programming)
2017年度 植物バイオサイエンス情報処理演習 第11回 系統樹
プログラミング演習I 2003年7月2日(第11回) 木村巌.
2018年度 植物バイオサイエンス情報処理演習 第13回 メタゲノミクス
プログラミング入門 電卓を作ろう・パートI!!.
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
第6回:得点を表示しよう! (文字の表示、乱数)
2018年度 植物バイオサイエンス情報処理演習 第12回 次世代シーケンシング・RNA
忙しい人のためのR/Bioconductorの基礎
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
コンパイラ 2012年10月11日
生物統計学・第11回 全体を眺める(3) -主成分分析1:分析の基本-
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プログラミング入門2 第5回 配列 変数宣言、初期化について
printf・scanf・変数・四則演算
C言語講座第5回 2017 構造体.
2018年度 植物バイオサイエンス情報処理演習 第9回 公共データバンクの代謝パスウェイ情報
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
知能情報工学演習I 第10回( C言語第4回) 課題の回答
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

2016年度 植物バイオサイエンス情報処理演習 第9回 情報処理(5) データを集計する 2016年度 植物バイオサイエンス情報処理演習 第9回 情報処理(5) データを集計する 2016年6月10日 機能ゲノム科学  尾形 善之 Wikipedia

前回のフォロー 「-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

実習の大きな流れ RNAクエリーデータ入手~加工する 遺伝子データベースデータを入手する BLAST解析(マッピング)する 遺伝子発現データを得る ストレスで特異的に発現する遺伝子を探す 特異的遺伝子の機能・特徴を調べる

実習の材料 RNA-Seq解析(遺伝子マッピング) 植物: Arabidopsis kamchatica 試料:RNAサンプル 実験区:低温ストレス処理(DRR013386) 対象区:無処理(DRR013381) RNA配列の数が遺伝子の発現量に相当する BLASTN解析で遺伝子ごとのヒット数を調べる

本日の実習 BLASTNの結果を遺伝子ごとに纏める BLAST解析はクエリー配列ごとの結果 遺伝子ごとに、いくつヒットがあったかを数える 数えるためのPerlスクリプトを作る

第6回のおさらい Perlスクリプトの基本 前置き:「use」コマンド 変数の宣言:「my」コマンド ファイルの入出力:「open」コマンド テキスト処理:正規表現 後書き:「exit」コマンド

Perlスクリプトの発展・1 複数の変数を纏める変数 変数ひとつならば「$hensu」 いくつか変数を纏めて覚えておくと便利 リストとハッシュ

リストとハッシュ リストは、お菓子の箱 ハッシュは、サンタさんの袋 複数の変数を番号を付けて覚える 整然と並んでいるお菓子の箱と似ている 複数の変数を宛名と中身で覚える 雑然と入っているがきちんと見分けられるサンタさんの袋と似ている

リスト タブで区切られたデータを分ける BLASTの結果はタブで区切られている エクセルに貼り付ければ、自動で区切ってくれる Perlスクリプトでは自分で分ける 「@list=split /\t/,$line;」 一行の変数($line)をタブ(\t)で区切って(split)リストに入れる(@list)

@list=split /\t/,$line; リストは「@」で表す 「=」は代入、右の内容を左に代入する 「split」:文字列を何かの文字で分ける 例えば、「一行の変数をタブで分ける」 「/\t/」:正規表現、「\t」はタブを表す 「$line」:コンマの後が「分けられる文字列」

@list=split /\t/,$line; 結果 「@list」の1番目の文字列:「$list[0]」 リストの中のひとつの変数を表すときは「$」に戻る 大かっこ「[ ]」の中は変数の順番、最初が「0」 「@list」の2番目の文字列:「$list[1]」 「@list」のn番目の文字列:「$list[n-1]」

@list=split /\t/,$line; 今回の場合 2列目が遺伝子名 2番目の変数が必要 「@list」の2番目の文字列:「$list[1]」と書く

リストの纏め リストは複数の変数を纏める変数 「@list」と書く n番目の変数は「$list[n-1]」で呼び出せる それぞれの変数を添え字([ ])で区別する 「@list」と書く 「list」の部分は何でもよい n番目の変数は「$list[n-1]」で呼び出せる

ハッシュ 「宛名」と「プレゼントの中身」 宣言するときは、「my %hash=();」 「キー」と「バリュー」と言います 宝箱のイメージです、「カギ」と「おたから」 宣言するときは、「my %hash=();」 覚えるときは、「$hash{$key}=$value;」 使うときは、「$hash{$key}」

ハッシュの使い方 例えば、苗字から名前を調べるとき 「$hash{“Ogata”}=“Yoshiyuki”;」で登録する 「$name=$hash{“Ogata”};」とすると、 $nameに「Yoshiyuki」が入る

今回のハッシュの使い方 キーを遺伝子名にする バリューをヒット数にする 正確には遺伝子座 出てきた回数 「AT0G00000」の形が遺伝子座(locus) 「AT0G00000.0」の形は遺伝子モデル バリューをヒット数にする 出てきた回数 ただし、同じクエリー配列に対しては、一回だけカウントする(後で説明します!)

$hash{$locus}++; 「%hash」に登録するときは「$hash」となる ハッシュのキーを「$locus」とする 「++」 ここはリストと同様 ハッシュのキーを「$locus」とする 実習では正規表現を使うので「$1」を使う 「++」 登録されているキーに対するバリューの数字をひとつ増やす 最初の登録では勝手に「0」から「1」になる

チェックポイント・I リストとハッシュの違いは? 一行の変数($line)をコンマで区切ってリスト(@list)に入れる書き方は? 自分の苗字のローマ字をキーにして、名前のローマ字をバリューにして、ハッシュ(%hash)に登録する書き方は?

Perlスクリプトの発展・2 ループ構文 すでに「while」構文は出てきています 他に「for」構文があります 「~している間」 Wikipedia

「for」構文 「for($i=1;$i<=10;$i++){ }」 丸かっこの中身、セミコロン「;」で区切っている 「$i<@list」:$iの最大値の条件、「10以下」 「$i++」:$iの増やし方、「++」はひとつずつ増やす $iが「1, 2, 3, 4, 5, 6, 7, 8, 9, 10」までループする 中かっこの中にコマンドを書く 「while」構文と同様

数字の増やし方 ひとつずつ増やす ふたつずつ増やす 「$number=$number+1;」 「$number+=1;」

今回の実習での「for」構文 ハッシュで遺伝子のヒット数を数える ハッシュのキーはばらばら ハッシュのキーを集めてリストを作る 集める必要がある ハッシュのキーを集めてリストを作る リストの添え字を「for」構文でループさせる

実際の「for」構文 「for($i=0;$i<=$#list;$i++){ }」 「$i」はリストの添え字 リストの添え字は「0」から始まる 「$i<=$#list」 「$#list」はリストの添え字の最大値 「$i++」 リストの添え字をひとつずつループする

実はもっといいループ構文が… 「foreach」構文 リストの添え字をすべてループする場合に便利 「foreach $locus(@list){ }」 「$locus」はリストの中のそれぞれの変数 リストの中のそれぞれの変数を順番に呼び出す 今日はこちらの構文を使います!

チェックポイント・II 「while」構文と「for」構文の違いは? 「for」構文を使って、数字の変数($i)を1~31まで3つずつ増やしていく書き方は?

「if」構文の補足 「ふたつの変数が同じならば」 「ふたつの変数が違うならば」 数字:「if($number1==$number2){ }」 文字列:「if($moji1 eq $moji2){ }」 「=」1つだと「代入」、「eq」はequalの意味 「ふたつの変数が違うならば」 数字:「if($number1!=$number2){ }」 文字列:「if($moji1 ne $moji2){ }」 「!」は否定の意味、「ne」はnot equalの意味

同じクエリー配列を一回だけカウントする どうやって? 今回の実習の方法 クエリー配列のIDを変数に入れる 次の行で、同じIDかどうか比べる

本日の実習と課題 前回の実習でBLAST解析した結果のファイルふたつを使います。 結果のファイルから遺伝子数(遺伝子座)のヒット数を纏めるPerlスクリプトを作ります。 Perlプログラミングの感想を書いてください。