アメリエフの技術ブログ

Amelieff Staff Blog

FastQCをたくさんかけたら・・・| FASTQのクオリティコントロール

こんにちは!
今日は、NGS解析トレーニングで質問されることを書いてみます(﹡’ω’﹡)


FastQCは、シーケンスデータ(FASTQ, BAM, SAM形式)のクオリティコントロールを行うソフトウェアです。
調べられる項目が多く、結果がHTMLレポートで見やすいのでよく使われます。

f:id:Fuku-I:20200313175732p:plain:w250
FASTQC 結果の一部

www.bioinformatics.babraham.ac.uk

実行

次のコマンドで実行します。
複数のファイルを一度に実行できます。

$ fastqc [option] seqfile1 .. seqfileN

結果

結果はHTMLファイルでまとめられ、楽しいしわかりやすいのですが、

👩 「シーケンスデータが100サンプル分あるんだけど、HTMLを全部開くの? 」

そうですよね。

これもおすすめ!

staffblog.amelieff.jp

はそれとして、
100サンプル分の結果をさらっと見るのに役立つかもしれないファイルをご紹介します。

f:id:Fuku-I:20200313183222p:plain:w250
と言っても、HTMLは見ません。

実は結果ファイルは、HTMLの他に Zipファイルがあります。

seqfile1_fastqc.html
seqfile1_fastqc.zip 
seqfile2_fastqc.html
seqfile2_fastqc.zip 
...
$ unzip seqfile1_fastqc.zip 
$ ls seqfile1_fastqc
Icons  Images  fastqc.fo  fastqc_data.txt  fastqc_report.html  summary.txt

summary.txt には、チェック項目の結果(PASS, WARN, FAIL)がまとめられます。

PASS    Basic Statistics    seqfile1.fastq
PASS    Per base sequence quality   seqfile1.fastq
PASS    Per tile sequence quality   seqfile1.fastq
PASS    Per sequence quality scores seqfile1.fastq
FAIL    Per base sequence content   seqfile1.fastq
PASS    Per sequence GC content seqfile1.fastq
PASS    Per base N content  seqfile1.fastq
PASS    Sequence Length Distribution    seqfile1.fastq
PASS    Sequence Duplication Levels seqfile1.fastq
PASS    Overrepresented sequences   seqfile1.fastq
PASS    Adapter Content seqfile1.fastq

fastqc_data.txt は、HTMLに書かれている情報がテキストで書かれています。

##FastQC    0.11.9
>>Basic Statistics    pass
#Measure    Value
Filename    seqfile1.fastq
File type   Conventional base calls
Encoding    Sanger / Illumina 1.9
Total Sequences 2630332
Sequences flagged as poor quality   0
Sequence length 26
%GC 51
>>END_MODULE
>>Per base sequence quality   pass
#Base   Mean    Median  Lower Quartile  Upper Quartile  10th Percentile 90th Percentile
1   31.55765850090407   33.0    31.0    34.0    30.0    34.0
2   31.73386287358402   34.0    31.0    34.0    30.0    34.0
3   31.814750001140542  34.0    31.0    34.0    30.0    34.0
...

100サンプル分...

方針としては、
お好みのプログラミング言語で、好きな項目を抽出してcsvなどに集計すると便利です。

簡単ですが思いついたシェルコマンドを貼って今日は終わりにします。

  1. zipを全部解凍

  2. summary.txt を探して、ファイル名と 'PASS' していない項目だけ画面に表示する

$ unzip *fastqc.zip
$ for file in  `find . -name summary.txt`; do ls ${file} ; grep -v PASS ${file} ; done

csvに集計など、解析に応用できるプログラミング言語の入門なら!
トレーニング|アメリエフ株式会社 | amelieff