CASE 03検索・シミュレーション

転写産物全体を対象にした
ホモロジー検索システムの開発

対象遺伝子の配列が、ほかの転写産物とどの程度共通しているかを網羅的に調べるシステムを開発しました。データベースの準備、配列の取得、BLASTによる検索、遺伝子ごとの可視化までを、一連の処理として自動化しています。

CLIENT
微生物系研究室
SCOPE
検索システムの設計・実装
ENVIRONMENT
スーパーコンピューター(ジョブ投入)
TECHNOLOGY
  • Python
  • BLAST+
  • Ensembl
  • pandas
  • Matplotlib

研究で求められたこと

発現している遺伝子の配列について、ほかの転写産物と共通する部分を洗い出す必要がありました。対象は数多くの遺伝子にわたるため、手作業での検索では現実的ではありませんでした。

  • 多数の遺伝子をまとめて検索する発現データから抽出した遺伝子を、ヒト転写産物全体と網羅的に照合する必要があります。
  • 配列のどの位置が共通しているかを知る遺伝子単位ではなく、配列上の位置ごとに類似配列の多さを把握することが求められました。
  • 結果を見て判断できる形にする大量の検索結果から、注目すべき遺伝子を効率よく見つけられる出力が必要でした。

処理の全体像

対象遺伝子の配列を一定の長さの区間に分割し、各区間をBLASTで転写産物データベースと照合します。区間ごとのヒット数を集計し、全体の分布と遺伝子ごとのグラフとして出力します。

ホモロジー検索の仕組み対象遺伝子のcDNA配列を、1塩基ずつずらした20塩基の区間に分割し、Ensemblのヒト転写産物から作成したデータベースとBLASTで照合する。区間ごとのヒット数を配列上の位置に沿って集計し、しきい値を超える類似配列の多い領域と累積割合をグラフで示す。01 SLIDING WINDOW02 DATABASE03 HITS BY POSITIONATGGCCTTAGCAGTCAAGGCTTACGATCCA20塩基の区間に分割1塩基ずつずらして網羅ヒト転写産物Ensembl → makeblastdbBLAST検索(blastn)バッチ単位・マルチスレッドしきい値累積割合類似配列の多い領域5′配列上の位置 3′
FIGURE対象遺伝子の配列を20塩基の区間に分けてBLASTで照合し、位置ごとのヒット数を集計。類似配列が集中する領域をグラフで把握できます。

INPUT

  • 発現データ発現量(TPM)から対象遺伝子を抽出
  • ヒト転写産物配列Ensemblのデータベース

PROCESS

  1. データベースの準備配列の取得と検索用データベースの作成
  2. 対象配列の取得Ensembl REST APIからcDNA配列を取得
  3. 区間への分割1塩基ずつずらした20塩基の部分配列
  4. BLAST検索バッチ単位・マルチスレッドで実行
  5. 結果の整理自己一致を除き、区間ごとのヒット数を集計

OUTPUT

  • 検索結果一覧E値・スコア・一致配列
  • 区間ごとのランキング
  • 分布のヒストグラム
  • 遺伝子ごとのグラフ位置別のヒット数と累積割合

開発のポイント

データベースのバージョンや検索条件を設定ファイルで管理し、同じ条件で再検索できる構成にしました。

POINT 01

データベース準備の自動化

Ensemblのリリース番号と生物種を指定するだけで、転写産物配列のダウンロードからBLAST用データベースの作成までを実行します。使用したリリースが設定に残るため、検索条件を再現できます。

  • Ensembl
  • pyensembl
  • makeblastdb

POINT 02

位置ごとに類似性を調べる区間分割

対象遺伝子の配列を、1塩基ずつずらした短い区間に分割して検索します。どの位置に類似配列の多い領域があるかを、配列全体にわたって把握できます。区間の長さは設定で変更可能です。

  • スライディングウィンドウ
  • blastn

POINT 03

大量検索を前提にした実行設計

REST APIでの配列取得はバッチ単位で行い、取得済みの配列はキャッシュして再取得を避けます。BLASTもバッチ単位・マルチスレッドで実行し、スーパーコンピューターのジョブとして投入できるスクリプトを用意しました。

  • Ensembl REST API
  • キャッシュ
  • ジョブスケジューラ

POINT 04

注目すべき遺伝子を見つける可視化

全体の分布をヒストグラムで示すほか、遺伝子ごとに位置別のヒット数と累積割合をグラフ化します。しきい値を超える遺伝子のグラフだけを別フォルダへ抜き出す機能も備えています。

  • pandas
  • Matplotlib

技術構成

検索・可視化・抽出をそれぞれ単独でも実行できるよう、処理ごとにコマンドを分けています。

区分技術用途
配列データEnsembl/pyensembl/REST API転写産物配列の取得とバージョン管理
検索エンジンNCBI BLAST+(blastn)データベースの作成、塩基配列の類似性検索
データ処理Python/pandas区間の作成、検索結果の集計・ランキング
可視化Matplotlibヒストグラム、遺伝子ごとのグラフの出力
実行環境ジョブスケジューラスーパーコンピューターへの検索・可視化ジョブの投入

実現したこと

  • 網羅的な検索の自動化発現データから抽出した多数の遺伝子を、転写産物全体と一括で照合できるようになりました。
  • 位置レベルでの類似性の把握配列上のどの区間に共通配列が多いかを、遺伝子ごとに確認できます。
  • 再現できる検索条件データベースのリリースや検索オプションを設定で管理し、同じ条件での再検索に対応しています。

研究テーマに合った開発方法を、
一緒に検討します

扱うデータや研究目的に応じて、必要なモデルとシステムをご提案します。検討中のテーマや実装したい機能からご相談ください。

研究開発について相談する