SlideShare une entreprise Scribd logo
1  sur  14
FA S TQ フ ァ イ ル を 対 象 と し た
QCツールの開発と性能比較

          2012年5月24日
         アメリエフ株式会社
FASTQフォーマットについて



NGSから得られるテキストベースのリード配列ファイルの形式の一つ
   @SEQ_ID
   GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
   +
   !''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65
                                        http://en.wikipedia.org/wiki/FASTQ_format


 1行目: ID
 2行目: リードの塩基配列
 3行目: オプション
 4行目: 2行目の塩基に対応した
      Phred クオリティ値
      (ASCIIコードで表記)



                                                                                    2
リードデータのQC



NGSから得られる raw-data は以下の問題を含むことがある

       データそのものが破損(e.g. クオリティ行が抜けている)
       Illumina CASAVA filter の結果への対処
       リード全体、及び末端のクオリティが低い
       未知の塩基(N)の数が多い
       タグ配列の存在



マッピング前に、raw-dataのクオリティコントロール(QC)が必須

     データ量が膨大(数十GB)なため処理が大変

                                         3
従来のQC方法



      処理の流れ                      使用ツール
                                            長所
    データクオリティチェック                 FastQC
                                             ・ 全てフリーソフト
Illumina CASAVA filter [Y] を除去   grep        ・ 広く使われている

 クオリティ20未満が80%以上の
                                 FastX      短所
      リードを除去
                                             ・ 複数のソフトを使用(手間がかかる)
 クオリティ20未満の末端をトリム                            ・ cmpfastq: メモリを大量消費
未知の塩基(N)が多いリード除去
                                             ・ FASTQ形式にマッチしないリードの
                                 PRINSEQ
                                               検出ができない
    配列長が短いリード除去


    片側のみのリードを除外                  cmpfastq
    データクオリティチェック                 FastQC
             *タグ配列に関する処理は現時点では除く
                                                              4
Qcleanerを用いる方法


      処理の流れ                      使用ツール
FASTQ形式にマッチするかチェック
                                              Qcleaner: 弊社独自開発ツール
    データクオリティチェック                    FastQC    Perlで作成 (ソースは弊社オリジナル)
Illumina CASAVA filter [Y] を除去                複数ツールの機能を一つに統合
 クオリティ20未満が80%以上の
      リードを除去                                 長所
                                 Qcleaner     ・ コマンド一つ打つだけで実行できる
 クオリティ20未満の末端をトリム
                                              ・ FASTQ形式のチェック機能も搭載
未知の塩基(N)が多いリード除去                              ・ メモリ消費を抑えたので
                                                大容量データにも対応
   配列長が短いリード除去
                                              ・ 片側のみのリードを除去する際の
    片側のみのリードを除外                                 処理をcmpfastqに比べて
                                                大幅に高速化
    データクオリティチェック                    FastQC
               *タグ配列に関する処理は現時点では除く
                                                                     5
Qcleanerの使用方法


使い方:
qcleaner.pl --i1 <input file 1> --i2 <input file 2> --o <output dir> --qp <qvalue,percent>
                 -n <number> --trim <qvalue> --length <length num> --write

     --i1 <file>      Input fastq_1 file
     --i2 <file>      Input fastq_2 file (this script treats pair-end)
     --o <dir>        Output directory name (default: output files are created directly below)
     --qp <int,int>   Check a low quality read, <quality value, percent>
     --n <int>        Allowable number of N content
     --trim <int>     Both term bases are trimmed based on this qvalue.
     --length <int>   Check a short read.
     --write          Output excluded reads in each phase


使用例:
  $ ./qcleaner.pl --i1 ERR034601_1.fastq --i2 ERR034601_2.fastq –o out --qp 20,80
  -n 6 --trim 20 --length 20 --write

                                                                                                 6
QC性能比較

対象FASTQファイル
    Accession: ERR034601, data size 19 GB × 2
    Sample: Human, exome sequencing of the JPT
    Experiment: Illumina HiSeq 2000, 90 bp, paired-end

QC条件
    リード除去の条件:
       ・   Illumina CASAVA filterの結果がY
       ・   クオリティ値が20未満の塩基が80%以上存在
       ・   未知の塩基(N)の数が6個以上存在
       ・   リード長が20塩基未満
       ・   QC処理の結果発生したシングルリードの除外

    リードトリミングの条件:
       ・ 両末端のクオリティ値が20未満の塩基をトリム

                                                         7
結果: 処理時間の比較
                                     従来のQC法   Qcleaner
    データクオリティチェック(FastQC)              20分      20分

    Illumina CASAVA filter [Y] を除去    4分       12分
     クオリティ20未満が80%以上の
          リードを除去                      41分

     クオリティ20未満の末端をトリム                3時間31分
                                              5時間12分
    未知の塩基(N)が多いリード除去                  35分
       配列長が短いリード除去                    34分
        片側のみのリードを除外                  3時間22分    27分
    データクオリティチェック(FastQC)              19分      17分

          Total time                 9時間26分   6時間28分

 同じQC内容での処理時間はQcleanerの方が従来のQCより短い
 Qcleanerの[FASTQ形式のチェック機能: ON] → プラス 4時間程度かかる
                                            8
結果: メモリ使用量の比較


                    25
                                  従来のQC         Qcleaner
                    20
Memory usage (GB)




                    15


                    10


                    5


                    0
                         0   50     100   150    200       250    300   350       400   450   500   550   600
                                                           Execution time (min)
                                                                          *Qcleanerは[FASTQ形式のチェック機能: ON] で計測



                    メモリ使用量も、Qcleanerの方が従来のQCより大幅に少ない

                                                                                                                9
結果:リード・塩基数の変化



                                ERR034601_1.fastq                             ERR034601_2.fastq
                      従来のQC                    Qcleaner             従来のQC                    Qcleaner
リード数(処理前からの割合)    57,019,726(96.24%)      57,019,726(96.24%)    57,019,726(96.24%)      57,019,726(96.24%)
塩基数(処理前からの割合)    4,941,135,848(92.66%) 4,941,135,848(92.66%)   4,871,975,403(91.37%) 4,871,975,403(91.37%)
   リード最大長さ                90                         90                 90                         90
   リード平均長さ              86.66                       86.66             85.44                       85.44
  リード長さ中央値                90                         90                 90                         90
   リード最少長さ                20                         20                 20                         20
     最頻値                  90                         90                 90                         90
    最頻値の数             47,125,726              47,125,726            44,127,821              44,127,821
     範囲                   71                         71                 71                         71
    標準偏差                10.39                       10.39             12.13                       12.13



          従来のQCとQcleanerの結果は、完全に一致する。



                                                                                                          10
結果: Base quality

                     処理前                    従来のQC                      Qcleaner
Base quality score




                     ERR034601_1.fastq




                     ERR034601_2.fastq


                                               Position in read (bp)

                      赤線:中央値 , 黄箱:四分位数間領域 ( 25 - 75 % ), ひげ:上10 %・下90%, 青線:平均値    11
結果:N含有量の変化
                      0.05
                             ERR034601_1.fastq
                      0.04
                              処理前        従来のQC   Qcleaner
                      0.03

                      0.02
Per base N content




                      0.01

                         0
                     0.125
                             ERR034601_2.fastq
                       0.1

                     0.075

                      0.05

                     0.025

                        0



                                                   Position in read

                                                                      12
Length distribution (×107)




                                                                              0
                                                                                  1
                                                                                      2
                                                                                          3
                                                                                                          4
                                                                                                                                   5




                               0
                                   1
                                       2
                                           3
                                                 4
                                                                          5

                                                40
                                                                         50
                                                                                                         40
                                                                                                                                  50
                       20-21                                 20-21
                       22-23                                 22-23
                       24-25                                 24-25
                       26-27                                 26-27
                       28-29                                 28-29
                       30-31                                 30-31
                       32-33                                 32-33
                                                                                              従来のQC



                       34-35                                 34-35
                       36-37                                 36-37




                                                     ERR034601_2.fastq
                                                                                                              ERR034601_1.fastq




                       38-39                                 38-39
                       40-41                                 40-41
                       42-43                                 42-43
                       44-45                                 44-45
                                                                                              Qcleaner




                       46-47                                 46-47
                       48-49                                 48-49
                       50-51                                 50-51
                       52-53                                 52-53
                       54-55                                 54-55
                       56-57                                 56-57
                       58-59                                 58-59
                       60-61                                 60-61




     Sequence Length
                       62-63                                 62-63
                       64-65                                 64-65
                       66-67                                 66-67
                       68-69                                 68-69
                       70-71                                 70-71
                                                                                                                                       結果:リード長の分布




                       72-73                                 72-73
                       74-75                                 74-75
                       76-77                                 76-77
                       78-79                                 78-79
                       80-81                                 80-81
                       82-83                                 82-83
                       84-85                                 84-85
                       86-87                                 86-87
                       88-89                                 88-89
                       90-91                                 90-91
13
まとめ




 Qcleanerはコマンド一つで実行できる。
 Qcleanerは従来のQCと完全に同じ精度でリードクオリティを
  コントロールできる。
 処理時間は従来のQCと比較して短い。(約30%の高速化)

 メモリ使用量は従来のQCと比較して大幅に削減。

 追加機能として、QcleanerではFastq形式のチェックも可能。



                                   14

Contenu connexe

Tendances

フリーソフトではじめるNGS融合遺伝子解析入門
フリーソフトではじめるNGS融合遺伝子解析入門フリーソフトではじめるNGS融合遺伝子解析入門
フリーソフトではじめるNGS融合遺伝子解析入門Amelieff
 
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料Genaris Omics, Inc.
 
CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料
CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料
CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料Genaris Omics, Inc.
 
フリーソフトで始めるNGS解析_第41・42回勉強会資料
フリーソフトで始めるNGS解析_第41・42回勉強会資料フリーソフトで始めるNGS解析_第41・42回勉強会資料
フリーソフトで始めるNGS解析_第41・42回勉強会資料Amelieff
 
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料Amelieff
 
NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」
NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」
NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」Genaris Omics, Inc.
 
ゲノム育種を実装・利用するためのNGSデータ解析
ゲノム育種を実装・利用するためのNGSデータ解析ゲノム育種を実装・利用するためのNGSデータ解析
ゲノム育種を実装・利用するためのNGSデータ解析Hiromi Kajiya-Kanegae
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門Amelieff
 
コスモバイオニュース No.176(2021年8月)
コスモバイオニュース No.176(2021年8月)コスモバイオニュース No.176(2021年8月)
コスモバイオニュース No.176(2021年8月)COSMO BIO
 
Java 9で進化する診断ツール
Java 9で進化する診断ツールJava 9で進化する診断ツール
Java 9で進化する診断ツールYasumasa Suenaga
 
第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介ksk_ha
 
jcmd をさわってみよう
jcmd をさわってみようjcmd をさわってみよう
jcmd をさわってみようTsunenaga Hanyuda
 
Elasticsearch as a Distributed System
Elasticsearch as a Distributed SystemElasticsearch as a Distributed System
Elasticsearch as a Distributed SystemSatoyuki Tsukano
 
痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさ痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさTakatoshi Matsuo
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例kazuhcurry
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』健太 松浦
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜Taro Matsuzawa
 

Tendances (20)

フリーソフトではじめるNGS融合遺伝子解析入門
フリーソフトではじめるNGS融合遺伝子解析入門フリーソフトではじめるNGS融合遺伝子解析入門
フリーソフトではじめるNGS融合遺伝子解析入門
 
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
 
CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料
CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料
CBI学会2013チュートリアル NGSデータ解析入門(実験条件編) 配布資料
 
フリーソフトで始めるNGS解析_第41・42回勉強会資料
フリーソフトで始めるNGS解析_第41・42回勉強会資料フリーソフトで始めるNGS解析_第41・42回勉強会資料
フリーソフトで始めるNGS解析_第41・42回勉強会資料
 
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
 
NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」
NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」
NGS現場の会第4回研究会 モーニング教育セッション 配布用資料 「Windows/Mac環境で始めるNGSデータ解析入門」
 
ゲノム育種を実装・利用するためのNGSデータ解析
ゲノム育種を実装・利用するためのNGSデータ解析ゲノム育種を実装・利用するためのNGSデータ解析
ゲノム育種を実装・利用するためのNGSデータ解析
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門
 
Ptt391
Ptt391Ptt391
Ptt391
 
コスモバイオニュース No.176(2021年8月)
コスモバイオニュース No.176(2021年8月)コスモバイオニュース No.176(2021年8月)
コスモバイオニュース No.176(2021年8月)
 
Java 9で進化する診断ツール
Java 9で進化する診断ツールJava 9で進化する診断ツール
Java 9で進化する診断ツール
 
第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介
 
jcmd をさわってみよう
jcmd をさわってみようjcmd をさわってみよう
jcmd をさわってみよう
 
Reconf 201506
Reconf 201506Reconf 201506
Reconf 201506
 
Elasticsearch as a Distributed System
Elasticsearch as a Distributed SystemElasticsearch as a Distributed System
Elasticsearch as a Distributed System
 
痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさ痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさ
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
hbstudy#06
hbstudy#06hbstudy#06
hbstudy#06
 

Similaire à NGS現場の会第2回_アメリエフ株式会社_Qcleaner

200625material naruse
200625material naruse200625material naruse
200625material naruseRCCSRENKEI
 
プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610HIDEOMI SUZUKI
 
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...VirtualTech Japan Inc.
 
Java でつくる 低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧 Ryosuke Yamazaki
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能についてmarsee101
 
OCP Serverを用いた OpenStack Containerの検証
 OCP Serverを用いたOpenStack Containerの検証 OCP Serverを用いたOpenStack Containerの検証
OCP Serverを用いた OpenStack Containerの検証Takashi Sogabe
 
CAメインフレーム システムリソース削減に貢献する製品について
CAメインフレーム システムリソース削減に貢献する製品についてCAメインフレーム システムリソース削減に貢献する製品について
CAメインフレーム システムリソース削減に貢献する製品についてKaneko Izumi
 
Versatil Javaチューニング
Versatil JavaチューニングVersatil Javaチューニング
Versatil JavaチューニングKenji Kazumura
 
卒研発表 バースカ(確認済み)
卒研発表 バースカ(確認済み)卒研発表 バースカ(確認済み)
卒研発表 バースカ(確認済み)Baasanchuluun Batnasan
 
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11Masaya Aoyama
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編Daiyu Hatakeyama
 
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引きRapidRadioJP
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA Japan
 
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2Norito Agetsuma
 
1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリNVIDIA Japan
 
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也Preferred Networks
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定@ otsuka752
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hwykuga
 
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA Japan
 
SAP Applicationのソース・エンドポイントとしての利用
SAP Applicationのソース・エンドポイントとしての利用SAP Applicationのソース・エンドポイントとしての利用
SAP Applicationのソース・エンドポイントとしての利用QlikPresalesJapan
 

Similaire à NGS現場の会第2回_アメリエフ株式会社_Qcleaner (20)

200625material naruse
200625material naruse200625material naruse
200625material naruse
 
プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610
 
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
 
Java でつくる 低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能について
 
OCP Serverを用いた OpenStack Containerの検証
 OCP Serverを用いたOpenStack Containerの検証 OCP Serverを用いたOpenStack Containerの検証
OCP Serverを用いた OpenStack Containerの検証
 
CAメインフレーム システムリソース削減に貢献する製品について
CAメインフレーム システムリソース削減に貢献する製品についてCAメインフレーム システムリソース削減に貢献する製品について
CAメインフレーム システムリソース削減に貢献する製品について
 
Versatil Javaチューニング
Versatil JavaチューニングVersatil Javaチューニング
Versatil Javaチューニング
 
卒研発表 バースカ(確認済み)
卒研発表 バースカ(確認済み)卒研発表 バースカ(確認済み)
卒研発表 バースカ(確認済み)
 
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介
 
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
 
1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ
 
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
 
SAP Applicationのソース・エンドポイントとしての利用
SAP Applicationのソース・エンドポイントとしての利用SAP Applicationのソース・エンドポイントとしての利用
SAP Applicationのソース・エンドポイントとしての利用
 

NGS現場の会第2回_アメリエフ株式会社_Qcleaner

  • 1. FA S TQ フ ァ イ ル を 対 象 と し た QCツールの開発と性能比較 2012年5月24日 アメリエフ株式会社
  • 2. FASTQフォーマットについて NGSから得られるテキストベースのリード配列ファイルの形式の一つ @SEQ_ID GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT + !''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65 http://en.wikipedia.org/wiki/FASTQ_format 1行目: ID 2行目: リードの塩基配列 3行目: オプション 4行目: 2行目の塩基に対応した Phred クオリティ値 (ASCIIコードで表記) 2
  • 3. リードデータのQC NGSから得られる raw-data は以下の問題を含むことがある  データそのものが破損(e.g. クオリティ行が抜けている)  Illumina CASAVA filter の結果への対処  リード全体、及び末端のクオリティが低い  未知の塩基(N)の数が多い  タグ配列の存在 マッピング前に、raw-dataのクオリティコントロール(QC)が必須 データ量が膨大(数十GB)なため処理が大変 3
  • 4. 従来のQC方法 処理の流れ 使用ツール 長所 データクオリティチェック FastQC ・ 全てフリーソフト Illumina CASAVA filter [Y] を除去 grep ・ 広く使われている クオリティ20未満が80%以上の FastX 短所 リードを除去 ・ 複数のソフトを使用(手間がかかる) クオリティ20未満の末端をトリム ・ cmpfastq: メモリを大量消費 未知の塩基(N)が多いリード除去 ・ FASTQ形式にマッチしないリードの PRINSEQ 検出ができない 配列長が短いリード除去 片側のみのリードを除外 cmpfastq データクオリティチェック FastQC *タグ配列に関する処理は現時点では除く 4
  • 5. Qcleanerを用いる方法 処理の流れ 使用ツール FASTQ形式にマッチするかチェック  Qcleaner: 弊社独自開発ツール データクオリティチェック FastQC  Perlで作成 (ソースは弊社オリジナル) Illumina CASAVA filter [Y] を除去  複数ツールの機能を一つに統合 クオリティ20未満が80%以上の リードを除去 長所 Qcleaner ・ コマンド一つ打つだけで実行できる クオリティ20未満の末端をトリム ・ FASTQ形式のチェック機能も搭載 未知の塩基(N)が多いリード除去 ・ メモリ消費を抑えたので 大容量データにも対応 配列長が短いリード除去 ・ 片側のみのリードを除去する際の 片側のみのリードを除外 処理をcmpfastqに比べて 大幅に高速化 データクオリティチェック FastQC *タグ配列に関する処理は現時点では除く 5
  • 6. Qcleanerの使用方法 使い方: qcleaner.pl --i1 <input file 1> --i2 <input file 2> --o <output dir> --qp <qvalue,percent> -n <number> --trim <qvalue> --length <length num> --write --i1 <file> Input fastq_1 file --i2 <file> Input fastq_2 file (this script treats pair-end) --o <dir> Output directory name (default: output files are created directly below) --qp <int,int> Check a low quality read, <quality value, percent> --n <int> Allowable number of N content --trim <int> Both term bases are trimmed based on this qvalue. --length <int> Check a short read. --write Output excluded reads in each phase 使用例: $ ./qcleaner.pl --i1 ERR034601_1.fastq --i2 ERR034601_2.fastq –o out --qp 20,80 -n 6 --trim 20 --length 20 --write 6
  • 7. QC性能比較 対象FASTQファイル Accession: ERR034601, data size 19 GB × 2 Sample: Human, exome sequencing of the JPT Experiment: Illumina HiSeq 2000, 90 bp, paired-end QC条件 リード除去の条件: ・ Illumina CASAVA filterの結果がY ・ クオリティ値が20未満の塩基が80%以上存在 ・ 未知の塩基(N)の数が6個以上存在 ・ リード長が20塩基未満 ・ QC処理の結果発生したシングルリードの除外 リードトリミングの条件: ・ 両末端のクオリティ値が20未満の塩基をトリム 7
  • 8. 結果: 処理時間の比較 従来のQC法 Qcleaner データクオリティチェック(FastQC) 20分 20分 Illumina CASAVA filter [Y] を除去 4分 12分 クオリティ20未満が80%以上の リードを除去 41分 クオリティ20未満の末端をトリム 3時間31分 5時間12分 未知の塩基(N)が多いリード除去 35分 配列長が短いリード除去 34分 片側のみのリードを除外 3時間22分 27分 データクオリティチェック(FastQC) 19分 17分 Total time 9時間26分 6時間28分  同じQC内容での処理時間はQcleanerの方が従来のQCより短い  Qcleanerの[FASTQ形式のチェック機能: ON] → プラス 4時間程度かかる 8
  • 9. 結果: メモリ使用量の比較 25 従来のQC Qcleaner 20 Memory usage (GB) 15 10 5 0 0 50 100 150 200 250 300 350 400 450 500 550 600 Execution time (min) *Qcleanerは[FASTQ形式のチェック機能: ON] で計測 メモリ使用量も、Qcleanerの方が従来のQCより大幅に少ない 9
  • 10. 結果:リード・塩基数の変化 ERR034601_1.fastq ERR034601_2.fastq 従来のQC Qcleaner 従来のQC Qcleaner リード数(処理前からの割合) 57,019,726(96.24%) 57,019,726(96.24%) 57,019,726(96.24%) 57,019,726(96.24%) 塩基数(処理前からの割合) 4,941,135,848(92.66%) 4,941,135,848(92.66%) 4,871,975,403(91.37%) 4,871,975,403(91.37%) リード最大長さ 90 90 90 90 リード平均長さ 86.66 86.66 85.44 85.44 リード長さ中央値 90 90 90 90 リード最少長さ 20 20 20 20 最頻値 90 90 90 90 最頻値の数 47,125,726 47,125,726 44,127,821 44,127,821 範囲 71 71 71 71 標準偏差 10.39 10.39 12.13 12.13 従来のQCとQcleanerの結果は、完全に一致する。 10
  • 11. 結果: Base quality 処理前 従来のQC Qcleaner Base quality score ERR034601_1.fastq ERR034601_2.fastq Position in read (bp) 赤線:中央値 , 黄箱:四分位数間領域 ( 25 - 75 % ), ひげ:上10 %・下90%, 青線:平均値 11
  • 12. 結果:N含有量の変化 0.05 ERR034601_1.fastq 0.04 処理前 従来のQC Qcleaner 0.03 0.02 Per base N content 0.01 0 0.125 ERR034601_2.fastq 0.1 0.075 0.05 0.025 0 Position in read 12
  • 13. Length distribution (×107) 0 1 2 3 4 5 0 1 2 3 4 5 40 50 40 50 20-21 20-21 22-23 22-23 24-25 24-25 26-27 26-27 28-29 28-29 30-31 30-31 32-33 32-33 従来のQC 34-35 34-35 36-37 36-37 ERR034601_2.fastq ERR034601_1.fastq 38-39 38-39 40-41 40-41 42-43 42-43 44-45 44-45 Qcleaner 46-47 46-47 48-49 48-49 50-51 50-51 52-53 52-53 54-55 54-55 56-57 56-57 58-59 58-59 60-61 60-61 Sequence Length 62-63 62-63 64-65 64-65 66-67 66-67 68-69 68-69 70-71 70-71 結果:リード長の分布 72-73 72-73 74-75 74-75 76-77 76-77 78-79 78-79 80-81 80-81 82-83 82-83 84-85 84-85 86-87 86-87 88-89 88-89 90-91 90-91 13
  • 14. まとめ  Qcleanerはコマンド一つで実行できる。  Qcleanerは従来のQCと完全に同じ精度でリードクオリティを コントロールできる。  処理時間は従来のQCと比較して短い。(約30%の高速化)  メモリ使用量は従来のQCと比較して大幅に削減。  追加機能として、QcleanerではFastq形式のチェックも可能。 14