この記事ではRNA-Seqデータ解析ツールで使用している技術について紹介します。RNA-Seqデータ解析ツールについては、noteの記事を参考にしてください。実際のRNA-Seqデータ解析ツールはこちらからアクセスできます。
RNA-Seqデータ解析の技術
FASTQファイルはfastpを用いて前処理を行っています。前処理済みのデータをもとに遺伝子発現量の定量を行うところでは、通常のマッピング処理を行わないアルゴリズムであるSalmonを用いています。従来のマッピング処理 → リードカウントでは解析に時間がかかるため、Salmonを採用し高速な解析を実現しています。Salmonで得られる結果は転写産物ごとの発現量になりますので、それを遺伝子単位に変換するために tximportを使用しています。ここまでの処理で、FASTQファイルをインプットとして、遺伝子発現量テーブルであるCSVファイル得られます。
遺伝子発現量テーブルをもとに発現変動遺伝子を抽出する処理にはedgeRを用いています。edgeRでは内部でTMM補正という手法を用いてサンプル間のリードカウントの補正を行っています。得られた発現変動遺伝子群において、どのようなGene OntologyやPathwayが有意に多く観測されているかを確認する解析にはclusterProfilerを用いています。PathwayのデータベースとしてはWikiPathwaysを用いています。
- fastp
- Salmon
- tximport
- edgeR
- colusterProfiler
- WikiPathways
WEBの技術
フロントエンドの技術としてはTypeScript + Next.jsを用いています。RNA-Seqデータ解析ツール以外のWEBページと一体化しており、SEO対策が必要であったために、Next.jsでSSRを行うようにしています。バックエンドにはPythonのFastAPIを採用しています。バイオ分野でのライブラリがPythonで充実しているため、ちょっとしたバイオ分野のデータの操作を行ううえでPythonのフレームワークを採用しておくと便利であると考えたためです。ただ、現状ではあまりPythonである利点を活かせていないこともあり、別言語のフレームワークでも良かったと感じています。
- TypeScript
- Next.js
- Python
- FastAPI
インフラの技術
フロントエンドにはVercel、バックエンドにはHerokuを採用しています。RNA-Seqデータ解析の処理は解析ごとに都度ECSを立ち上げています。認証にはAuth0を用いています。
Vercel、Herokuについては将来的にAWSに移行する必要が出てくるかもしれません。
- Vercel
- Heroku
- Auth0
- AWS
- ECS