0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ブラウザだけで動くFASTQ品質管理エンジン「GeekNome_QC」を公開しました

0
Posted at

はじめに
NGSデータ解析の最初のステップ、FASTQの品質管理。既存ツールには次のような課題があります。

インストールが面倒:JavaやC++のビルド環境が必要

データをサーバーに送る必要がある:クラウド型はプライバシー面で不安

環境構築で時間を取られる:研究に集中したい

そこで、ブラウザだけで完結するFASTQ品質管理エンジン GeekNome_QC を公開しました。

ブラウザにアクセスするだけで使える(インストール不要)

ファイルは一切アップロードされない(Zero-Upload)

fastpと同等の精度を保ちながら 5倍以上高速

WebAssembly + pthreads でブラウザ内マルチスレッド実行

公開URL: https://www.geeknome.com/geeknomeqc

なぜブラウザで動かすのか
既存のQCツール(fastp、Trimmomatic、Cutadapt)は素晴らしいツールですが、いくつかの理由からWeb環境に組み込むのは簡単ではありません。

依存関係が重い:C++のビルドチェーン、SIMDライブラリ、圧縮ライブラリなど

データの受け渡しが必要:サーバー型はゲノムデータを送信する必要がある

パラメータが固定されている:各フィルタの閾値をUIから変更できない

GeekNome_QCはこれらを解決するために、C11でゼロから書いた単一のエンジンとして設計しました。ブラウザでは WebAssembly と pthreads を使い、データは端末から一歩も出ません。

実装されているパイプライン
fastpと同じ順序で10のフィルタを適用します。順序を変えると測定可能な差が出るためです。

フィルタ 内容

01 アダプタートリミング 自動検出 + 20アダプター、cmplen/8 の許容誤差
02 5' 品質トリミング スライディングウィンドウ、Q≥20
03 3' スライディングウィンドウ 4 bpウィンドウ、w−1 バックトラック
04a Poly-G 最大5ミスマッチ、(i+1)/8 の許容誤差
04b Poly-X カウントで塩基を決定、Nは4塩基すべてにカウント
05 低品質%フィルタ Q15、低品質塩基が最大40%
06 平均品質フィルタ リードごとの最低平均品質
07 N塩基フィルタ リードあたり最大5つのN
08 最小長フィルタ 全トリミング後に最低100 bp
09 低複雑性フィルタ 隣接塩基変化の割合 ≥ 30%
10 レポート + FASTQ HTMLレポートとクリーンなFASTQ
実装のポイント
アダプター自動検出:ファイルを処理する前に、最初の16,384リードをスキャンして各アダプターの存在を測定します。どのアダプターも閾値を超えなければ、アダプタートリミングモジュールを完全に無効化します。これにより、短い4 bpの偶然の一致による約13,700の偽陽性を排除でき、fastpと同様の動作になります。

スライディングウィンドウ:3'トリミングはfastpの動作を忠実に再現。平均品質が閾値を超える最初のウィンドウを見つけた後、w−1 位置バックトラックします。この調整がないと、49%のケースでfastpより3 bp長いリードになります。

Poly-X:テールの主要塩基はA/T/C/Gのカウントで決定し、仮定しません。N塩基は4つの選択肢すべてに同時にカウントされます。

ベンチマーク結果
実際のIllumina UHRライブラリ(1,000,000リード、140.8 Mb)でfastp v0.23.4と比較しました。

指標 fastp GeekNome_QC Δ
出力リード数 924,061 924,047 −14 (−0.0015 %)
出力塩基数 133,388,689 133,388,727 +38
リテンション 92.406 % 92.405 % −0.001 pp
Poly-Xトリム 7,162 7,162 0(完全一致)
アダプタートリム 0 0 0
実行時間(8スレッド) 9.48 s 1.89 s 5.02倍高速
924,061リードのうち14リードの差(0.0015%) は、同じアルゴリズムの独立した2つの実装間では統計的なノイズと区別できません。fastpが破棄したリードをGeekNome_QCが保持しているものは1つもありません — リテンションは厳密な部分集合であり、偽陽性を導入していないことを確認しています。

スレッドスケーリング
スレッド数 実行時間 スピードアップ
1 約4秒 1.00×
8 1.89秒 約2.1×
16 1.86秒 約2.1×
スケーリングは約50%のシリアル分率(FASTQの読み込みと順序付き出力の書き込み)に制限されています。スレッドを8から16に倍増してもwall時間は改善しません。このシリアル分率はWebAssemblyバイナリではより小さくなります — 入出力はブラウザのメモリ上にあり、システムコールを経由しないためです。

使い方
https://www.geeknome.com/geeknomeqc にアクセスするだけです。

FASTQ / FASTQ.GZ をドラッグ&ドロップ

パラメータを調整(デフォルトでOK)

「Ejecutar QC」をクリック

クリーンなFASTQとHTMLレポートがダウンロードされる

ファイルは一切アップロードされません。 すべての処理はブラウザ内のWebAssemblyで完結します。サーバー側で動くコードは一行もありません。

対応していること
単一モード:1つのFASTQファイル

ペアエンドモード:R1とR2を順次処理

バッチモード:複数のFASTQを一括処理、結果はZIPでまとめてダウンロード

出力
クリーンなFASTQ:全フィルタを通過したリード

HTMLレポート:品質スコアの分布、GC含量、リード長、ポジション別の塩基組成、アダプター検出などのグラフ

PDFエクスポート:HTMLレポートをPDF形式で保存可能

多言語対応
インターフェースとレポートは以下の7言語に対応しています。

日本語 / 英語 / スペイン語 / ポルトガル語 / 中国語 / フランス語 / ドイツ語

Zero-Uploadの意味
このツールの最大の特徴は ファイルが一切サーバーに送信されない ことです。

医療機関や研究機関では、患者由来のゲノムデータを外部サーバーに送ることが法的・倫理的に難しいケースがあります

企業の研究部門では、競争上の理由から外部送信を避けたい場合があります

インターネット接続が不安定な環境でも、一度ページをロードすれば動作します

GeekNome_QCはこれらすべてのケースで、データを端末の外に出さずに品質管理を完了できます。

ライセンス
GeekNome_QCは GeekNome Research & Academic License (GNRAL) v2.5 の下で提供されています。

学術・非営利研究は無料

商用利用は別途ライセンスが必要

論文・学位論文での引用が必須

詳細は https://www.geeknome.com/license.txt をご覧ください。

まとめ
GeekNome_QCは、fastpと数値的に同等の精度を持ちながら、ブラウザだけで動き、ファイルをアップロードする必要がなく、5倍以上高速なFASTQ品質管理エンジンです。

環境構築なしで即使える

データは端末の外に出ない

10のフィルタをfastpと同じ順序で適用

924,061リードのうち14リード(0.0015%)の差

8スレッドで1.89秒(fastpは9.48秒)

リンク:

Webアプリ: https://www.geeknome.com/geeknomeqc

ライセンス: https://www.geeknome.com/license.txt

研究やパイプラインの一部として使ってみて、フィードバックをいただけると嬉しいです。

タグ: バイオインフォマティクス WebAssembly FASTQ ゲノム解析 QC

この記事が役に立ったら、いいねとストックをお願いします。質問やフィードバックはコメント欄でどうぞ。

Summary (English)

GeekNome_QC is a browser-based FASTQ quality-control engine written in
C11 and compiled to WebAssembly. It runs entirely client-side — no files
are uploaded — and processes a 1M-read Illumina UHR sample in 1.89 s
with 8 threads versus 9.48 s for fastp v0.23.4 (5.02× faster, 99.9985%
numerical parity). Try it at https://www.geeknome.com/geeknomeqc

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?