• 検索結果がありません。

bash プログラムを実行するセクション1

できるようになること

行っても同じである。これを使ってbcl変換を行うために、必 要な入力ファイルの確認を行う。基本的には、Genome Ana-lyzer の出力ファイルで

120114_HWUSI-EAS1748_00049_FC こういう名前の物があればよい。ファ

イルの内容物についてはCASAVAのマニュアルに記載がある ので別途参照すること。外付けHDD内にこのファイルを置い てあってもbcl変換が可能であるが、外付けHDDの名前にス ペースが入っているとうまくいかないことがあるのでアン ダーバー等に変更しておくこと。次に、出力フォルダを決め る。fastqは圧縮されたfastq.gzで出力されるので、70bp前後 のシーケンスの場合には1フローセル辺り10GB程度になる。

fastqを解凍することを考えると、100GB程度の空き容量のあ

るメディア内で行うことが望ましい。今回は、外付けHDDで

あるLOGITEC_HD内のtestというディレクトリに格納した出

力ファイル

/Volumes/LOGITEC_HD/test/120114_HWUSI-EAS1748_00049_FC/ を入力ファイルにし、これまた外付け

SSDであるNOGEBLANC内に /Volumes/NOGEBLANC/

120114_5 という出力ファイルを作成して行うことにした。コ

マンドは、以下のようである。

nor$ configureBclToFastq.pl --input-dir

/Volumes/LOGITEC_HD/test/120114_HWUSI-EAS1748_00049_FC/Data/Inten sities/BaseCalls/

--output-dir /Volumes/NOGEBLANC/120114_5 --use-bases-mask y72

改行は入っていない。最後の--use-bases-mask y72 では、

65bp(シーケンス)+7bp(インデックスシーケンス)を合わせて

1つの配列として出力するように書いた。これがうまく行く と、

[2012-01-22 23:09:49] [configureBclToFastq.pl] INFO: Creating directory '/Volumes/NOGEBLANC/120114_5'

[2012-01-22 23:09:49] [configureBclToFastq.pl] INFO: Basecalling software: RTA [2012-01-22 23:09:49] [configureBclToFastq.pl] INFO:

version: 1.09 (build 35)

[2012-01-22 23:09:49] [configureBclToFastq.pl] WARNING:

'LocationFileType' element not found in

/Volumes/LOGITEC_HD/test/120114_HWUSI-EAS1748_00049_FC/Data/Intensities/BaseCalls/../RTAConfiguration.xml [2012-01-22 23:09:49] [configureBclToFastq.pl] INFO: Original

use-bases mask: y72

[2012-01-22 23:09:49] [configureBclToFastq.pl] INFO: Guessed use-bases

mask: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,IIIIIIn Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane1'

Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane2' Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane3' Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane4' Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane5' Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane6' Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane7' Creating directory '/Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane8' [2012-01-22 23:09:50] [configureBclToFastq.pl] WARNING: Couldn't determine control software version due to missing

/Volumes/LOGITEC_HD/test/120114_HWUSI-EAS1748_00049_FC/Data/Intensities/BaseCalls/../../../runParameters.x ml

[2012-01-22 23:09:50] [configureBclToFastq.pl] WARNING: use-base-mask length is 72 for read 1: expected length from config file is 65

[2012-01-22 23:09:50] [configureBclToFastq.pl] INFO: Read 1: length =

72: mask = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

[2012-01-22 23:09:50] [configureBclToFastq.pl] WARNING: Read 2:

current cycle in mask is 73: first cycle in read is 66

[2012-01-22 23:09:50] [configureBclToFastq.pl] INFO: Read 2: length = 7: mask = IIIIIIn

[2012-01-22 23:09:50] [configureBclToFastq.pl] WARNING: use-base-mask length is 72 for read 1: expected length from config file is 65

[2012-01-22 23:09:50] [configureBclToFastq.pl] WARNING: Read 2:

current cycle in mask is 73: first cycle in read is 66

[2012-01-22 23:09:50] [configureBclToFastq.pl] INFO: Running self tests: 'make self_test'

[2012-01-22 23:09:53] [configureBclToFastq.pl] INFO: Running self tests on /Volumes/NOGEBLANC/120114_5 completed with no problems

となり、/Volumes/NOGEBLANC/120114_5 ディレクトリに

移動してmake をするように指示されているので、従って

n0rr:120114_4 nor$ cd /Volumes/NOGEBLANC/120114_5/

n0rr:120114_5 nor$ nohup make -j 2

とする。結果はnohup.outに記述される。また、

configureBclToFastq.pl が上手く動かない場合には、入力ファ イルのパスが間違っている(Basecallsまで書くこと)こと、出 力ディレクトリが既にあること、ディレクトリ名あるいはパ ス内にスペースが入っていること等が考えられるので対処す ること。

 bcl変換が終了すると、

/Volumes/NOGEBLANC/120114_5内にfastq.gzファイルが出 来ている。次のステップでは、これらを解凍し、インデック スごとに分けて行くことになる。

 解凍するには

dhcp186-162:120114_5 nor$ cd /Volumes/NOGEBLANC/120114_5/Project_FC/

Sample_lane1/

dhcp186-162:Sample_lane1 nor$ gunzip lane1_NoIndex_L001_R1_001.fastq.gz

とする。more やwc コマンドなどで確認して欲しい。解凍さ

れたfastqファイルをデマルチプレックスする場合のコマンド

ラインは以下のようになる。

nor$ more lane1_NoIndex_L001_R1_001.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/

K@HWUSI/g' | tr "K" "\n" | awk -F "\t" '{print

$1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' > line_lane1.fastq.txt nor$ more line_lane1.fastq.txt | grep "ATCACG$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_1_1_Index1_ATCACG.fastq

今回は新しく出てくるコマンドが多い。tr は置換を行うコマ ンドで、tr “A” “B” としたときAをBに置換する。sed は文字列 の認識と置換を行うために使ったコマンドで、あまりに行数 の多いテキストを処理できない弱点があるが、非常に便利で ある。awk はテキストを処理することが得意なスクリプト言 語である。grepは特定の文字列を含んだ行を抜き出すコマン ドで、今回はこれを使って特定のインデックス配列を含む シーケンスを抜きだしている。このような長いコマンドライ ンを理解する時には、パイプ”|”のところまでで区切ってmore コマンドで各処理を確認して行くのが良い。図示すると、 mo-reで展開したfasqファイルを

1. [tr " " "_” ] 半角スペースをアンダーバーに変える

2. [tr “\n” “\t”] 改行をタブに変える

3. [sed -e ‘s/@HWUSI/K@HWUSI/g’] @の前にKを入れる

4. [tr “K” “\n”] Kを改行に変える

5. [awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}'] タブを行区切 りと宣言し、1行目、タブ、2行目の1−65文字、タブ、

+、タブ、4行目の1−65文字、タブ、2行目の66−7 1文字を出力する。

6. [> line_lane1.fastq.txt] 名前を指定して書き出す。

ここまでで、fastqを1行にすることが出来た。また、行の最 後にインデックス配列が来ているので、grepで分けやすく なっている。 grep "ATCACG$"では行の終わり

に”ATCACG”を含む行を取り出してくることが出来る。”$”に

よって、それが行の末尾に来た場合だけ認識するようになっ ている。従って先に1行表記にしたfastqファイルのうち、指 定したインデックス6文字で終わる行を抜き出してやって、

タブ区切りになっている部分を改行に変えてやれば目的の

fastqファイルを得る事が出来る。

 ここまでで、デマルチプレックスの方法を説明したが、実 際にこれを使おうとすると、通常のランでは1レーンから8 レーンまでのデータが出るうえに、それぞれから複数の

fastq.gzが出てくるために繰り返し何度も先ほどのコマンドラ

インを書かなければならない。インデックス配列の指定まで 毎回やろうと思うとその苦労は大変なものになる。そこで、

bashで動くスクリプトにまとめて使うことを勧める。コマン ドラインを記述したテキストファイルの拡張子を.shに変更

し、chmodコマンドで実行権限を与えた上で、sh コマンドで

テキストファイルを指定すると自動でコマンドラインが動く 便利な物である。具体的に例示すると、

# $1: lane number. so 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8

# This command lines are prepared for 65 bp single reads. If you want to use them for other length reads, mod-ify the number of "substr" region. 65->N and 66->N+1.

# Skip the unsupporting index separating greps. Use "#" to inactivation.

#making fastq 2 linefastq, separating index reads, and assembling them.

more lane"$1"_NoIndex_L00"$1"_R1_001.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g' |tr

"K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_002.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g'

|tr "K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_003.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g' |tr

"K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_004.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g'

|tr "K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_005.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g' |tr

"K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_006.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g'

|tr "K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_007.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g' |tr

"K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_008.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g'

|tr "K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

more lane"$1"_NoIndex_L00"$1"_R1_009.fastq |tr " " "_"| tr "\n" "\t" | sed -e 's/@HWUSI/K@HWUSI/g'

|tr "K" "\n" | awk -F "\t" '{print $1"\t"substr($2,1,65)"\t+\t"substr($4,1,65)"\t"substr($2,66,6)}' >>

line_lane"$1".fastq.txt &&

echo "fastq2linefastq"

#making fastq by an index.

#Index1

more line_lane"$1".fastq.txt | grep "ATCACG$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index1_ATCACG.fastq &&

#Index2

more line_lane"$1".fastq.txt | grep "CGATGT$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index2_CGATGT.fastq &&

#Index3

more line_lane"$1".fastq.txt | grep "TTAGGC$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index3_TTAGGC.fastq &&

#Index4

more line_lane"$1".fastq.txt | grep "TGACCA$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index4_TGACCA.fastq &&

#Index5

more line_lane"$1".fastq.txt | grep "ACAGTG$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index5_ACAGTG.fastq &&

#Index6

more line_lane"$1".fastq.txt | grep "GCCAAT$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index6_GCCAAT.fastq &&

#index7

more line_lane"$1".fastq.txt | grep "CAGATC$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index7_CAGATC.fastq &&

#index8

more line_lane"$1".fastq.txt | grep "ACTTGA$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index8_ACTTGA.fastq &&

#index9

more line_lane"$1".fastq.txt | grep "GATCAG$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index9_GATCAG.fastq &&

#index10

more line_lane"$1".fastq.txt | grep "TAGCTT$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index10_TAGCTT.fastq &&

#index11

more line_lane"$1".fastq.txt | grep "GGCTAC$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index11_GGCTAC.fastq &&

#Index12

more line_lane"$1".fastq.txt | grep "CTTGTA$" | awk '{print $1"\n"$2"\n"$3"\n"$4}' >

s_"$1"_1_Index12_CTTGTA.fastq &&

echo "finish (^o^)b"

以上である。以上のコマンドラインをテキストエディタに貼 付けて、split_index_for_mac_unix.sh と名前を付けて保存 する。例えば、 /Volumes/NOGEBLANC/120114_5/

Project_FC/Sample_lane1/ ディレクトリ内にある lane1_NoIndex_L001_R1_001.fastq,

lane1_NoIndex_L001_R1_002.fastq, lane1_NoIndex_L001_R1_003.fastq,

lane1_NoIndex_L001_R1_004.fastq を同時にデマルチプ レックスしようと思うなら、 /Volumes/NOGEBLANC/

120114_5/Project_FC/Sample_lane1/ ディレクトリ内に

split_index_for_mac_unix.sh を保存してから、以下のように するとよい。

nor$ cd /Volumes/NOGEBLANC/120114_5/Project_FC/Sample_lane1/

nor$ chmod 777 split_index_for_mac_unix.sh nor$ sh split_index_for_mac_unix.sh 1

最後の”1”は非常に重要で、スクリプト内に埋め込まれ た”$1”は全て1に置き換わって動く。スクリプトを見てもら うと”#”記号の入った行が目につくと思うが、これは「この行 を読飛ばせ」という意味があるので、もしIndex 1-12の12個 のファイルが生成されてしまうのが煩わしい場合には、使っ ていないインデックスをgrepする行の文頭に#をつけてしま えばよい。

できるようになること

1. FastQC を使って、シーケンスのクオリティを

評価できる。

セクション 2

クオリティチェック

 セクション1で説明したように、fastqフォーマットでは シーケンスと、そのシーケンスのクオリティが記述されてい る。4行目に入っているのがクオリティであり、Illumina社 のGenome Analyzer ⅡxとHiSeqの場合には経験的に推定され た信頼性としてクオリティが算出されている。経験的な値で あり、真にシーケンスが試料中の配列を示す確率を示す訳で はないが、信頼性は高く、多くのマッピングツールがクオリ ティを参照しながらマッピングを行うことで精度を高めてい る。ここでは、FastQCというソフトウェアを用いてクオリ ティチェックを行う。FastQC は以下のホームページからダウ ンロードすることが出来る。

http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/

[Download Now]をクリックし、次のページで[FastQC v0.10.0 (Mac DMG

im-age)]を選択してダウンロードする。Finder でダウンロード

フォルダ内にあるをクリックして解凍すれば他のソフトと同 様にインストールできる。インストール後FastQCを起動する と、以下の画面が表示される。

[File]から[Open]を選択し、先ほど使った/Users/nor/

drkc167/ディレクトリに入っているfastqファイルを選択しよ

う。

あとは[開く]をクリックすればよい。シーケンスの読み込み が終わるまで待つと結果が表示される。

[File]から[Save report]を選び、保存しよう。保存されたzip ファイルを解凍すると、html形式で結果を閲覧することがで きる。これをEmailなどで送る際には、zipファイルごと送ら ないとhtmlファイルだけでは見ることができないので注意す ること。さて、結果には以下の11項目がある。

Basic Statistics

Per base sequence quality Per sequence quality scores Per base sequence content Per base GC content

Per sequence GC content