2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2 2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2 2016年5月20日 機能ゲノム科学 尾形 善之 Wikipedia
前回のフォロー 例えば、塩基配列を取り出したいとき 塩基は、「A」「T」「G」「C」の4種類 「( )」の意味 ひとつの文字列の纏まりを表す 囲まれた文字列を「$1」という変数に入れる 「|」:正規表現の中では、「または」を表す
実習の大きな流れ RNAクエリーデータ入手~加工する 遺伝子データベースデータを入手する BLAST解析(マッピング)する 遺伝子発現データを得る ストレスで特異的に発現する遺伝子を探す 特異的遺伝子の機能・特徴を調べる
今日の授業の目標 大容量ファイルを加工するための、Perlプログラムを完成させる。 FASTQ形式のテキストファイルを、BLASTプログラムで使えるFASTA形式に変換する。 Wikipedia
次世代シーケンサーのデータ NCBIのSRAデータベースから入手できる SRA形式のバイナリファイルを入手する バイナリファイルはテキストエディタでは読めない SRA形式からFASTQ形式に変換する FASTQ形式はテキストエディタで読める ただし、BLASTプログラムでは使えない FASTQ形式からFASTA形式に変換する FASTA形式はBLASTプログラムで使える
FASTQ形式 配列データのテキストファイル 4行でひとつの配列の情報を構成している 1行目:「@」で始まる、配列IDなど 2行目:塩基配列 3行目:特に意味がない行 4行目:塩基配列のクオリティを表す
FASTA形式 配列データのテキストファイル 2行でひとつの配列の情報を構成している FASTQ形式の3、4行目は不要 1行目:「>」で始まる、配列IDなど FASTQ形式では「@」で始まる 2行目:塩基配列 FASTQ形式と同じ FASTQ形式の3、4行目は不要
チェックポイント・I FASTQ形式とは? FASTA形式とは?
今回のPerlスクリプトの目的 FASTQファイルの処理 1行目:「@」を「>」に変えてファイルに出力 2行目:そのままファイルに出力 3行目:無視 4行目:無視 Wikipedia
今回のPerlスクリプトの詳細 行数をカウントする変数を作る 1行目 2行目 4で割れば、何行目の情報か分かる 各行でif構文を利用して、何行目かを分ける 1行目 正規表現で「@」を「>」に置換して出力する 2行目 そのまま出力する Wikipedia
Perlスクリプトの中身 前置き:拝啓、呪文(正しくはエラーチェック) 変数の宣言:変数を使えるようにする ファイル入出力:読み込みと書き出し テキスト処理:正規表現やループを使う 後書き:敬具(正しくは終了処理) Wikipedia
前置きと後書き 前置き:拝啓、呪文 後書き:敬具 use strict; :レッドカード use warnings; :イエローカード exit; Wikipedia
変数の宣言 「my」コマンドを使う 文字列の変数の場合 数字の変数の場合 「my $line=“”;」 「my $number=0;」 Wikipedia
ファイルの入出力・1 変数の宣言 「my $in=“in.txt”;」 入力ファイル名 「my $IN;」 入力ファイルハンドル 入力するファイルの内容を入れる箱 「my $out=“out.txt”;」 出力ファイル名 「my $OUT;」 出力ファイルハンドル 出力するファイルの内容を入れる箱 Wikipedia
ファイルの入出力・2 ファイルを開く・閉じる 入力ファイル用の箱(ファイルハンドル)を開く 出力ファイル用の箱(ファイルハンドル)を開く 「open $IN,”<“,$in; 」 出力ファイル用の箱(ファイルハンドル)を開く 「open $OUT,”>”,$out;」 ファイルを閉じる 「close $IN;」「close $OUT;」 Wikipedia
ファイルの入出力・3 ファイルの中身を1行ずつ読む 「while(<$IN>){」 「 }」 ここにいろいろなコマンドを入れる 「 }」 入力ファイルハンドル「$IN」から1行ずつ読む 読み込まれた文字列は「$_」に代入される Wikipedia
「if」構文・1 条件によって場合分けする 今回は行数で4つ(1~4行目)に分ける 行数を表す変数の宣言 「my $number=0;」 Wikipedia
「if」構文・2 「while」構文の中での処理 行数をひとつ増やす もし行数を4で割った余りが1だったら(1行目) 「$number++;」 もし行数を4で割った余りが1だったら(1行目) 「if($number%4==1){ }」 そうでなくて余りが2だったら(2行目) 「elsif($number%4==2){ }」 3、4行目は処理をしない Wikipedia
検索と置換 どちらも正規表現を使います 検索 置換 「$_=~ /^@/」 文字列の一部を取り出すなら、かっこで囲む 「$_=~ /^(@)/」 置換 「$_=~ s/^@/>/」 $_の文字列の「@」が「>」に代わる Wikipedia
出力ファイルに書きだす 「print $OUT “$_”;」 「$OUT」は出力ファイルのファイルハンドル どのファイルに書き出すかを指定する 「$_」は入力ファイルから読み込んだ文字列 置換した場合は、置換後の文字列 Wikipedia
チェックポイント・II Perlスクリプトの前置きは? 変数の宣言に使うコマンドは? 「my $in=“in.txt”;」と「my $IN;」、それぞれ何を宣言している? 次の「if」構文の間違いを直しなさい。 「if{$number==1}( )」 文字列$lineの初めの「>」を「@」に変えるときは、どう書く?
期末レポート シロイヌナズナの次世代シーケンシングのデータを統計的に解析して考察します。 各回の実習では、そのレポートのためのスキルを学んでいきます。 Wikipedia
期末レポート用データ データの概要 植物種と組織:シロイヌナズナ、葉 実験内容:菌感染によるサリチル酸合成 解析内容 生物統計学の期末レポートで使ったデータです 解析内容 全遺伝子を対象としたRNA-Seq解析 菌感染で発現量が変化した遺伝子の探索 遺伝子の発現の特徴および機能解析 Wikipedia
今日の実習と課題 FASTQ形式をFASTA形式に変換するPerlスクリプトを作りなさい。 Perlプログラミングの感想を書いてください。 手順書に従ってください。 Perlプログラミングの感想を書いてください。 Wikipedia