Genome-Factory:ゲノム基盤モデルのファインチューニング・推論・解釈を一括管理するPythonライブラリ
bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。
(macOS / Linux 環境が必要) この記事の要約
- Genome-Factory とは: ゲノム(DNA 配列)を扱う機械学習モデルを、データ収集から解釈まで一括管理できる Python ライブラリです。
- 誰向けか: 生命情報学(バイオインフォマティクス)の研究者や、複数の AI モデルを比較したい ML エンジニアを主な対象としています。
- できること: データ取得・前処理・ファインチューニング・推論・モデル解釈の 5 工程を、YAML 設定ファイルと CLI コマンド 1 本で実行できます。
- 対応モデル: GenomeOcean・EVO・DNABERT-2・HyenaDNA・Caduceus・Nucleotide Transformer という 6 種類の主要ゲノム基盤モデルをサポートしています。
- Docker 検証で分かったこと:
setuptoolsの未インストールとコンテナのディスク容量不足という 2 つの環境エラーが発生しましたが、コード自体に問題はありませんでした。 - インストールのざっくり手順: リポジトリをクローン →
pip install -r requirements.txt→ CUDA 関連ライブラリを Conda で導入 →pip install -e .の順に進めます。 - つまずきやすい点: モデルごとに推奨
transformersバージョンが異なること、50 GB 以上のディスク空き容量が必要なこと、setuptoolsを明示的にインストールする必要があることが挙げられます。 - この記事の読み順の提案: 「ひとことでいうと」→「何ができるか」→「こんな人におすすめ」→「インストール・使い方」→「Docker 検証レポート」→「よくある質問」→「用語解説」の順に読むと理解が深まります。
ひとことでいうと
Genome-Factory は、DNA 配列を AI に学習させるための「万能調理台」のようなツールです。これまで研究者はモデルごとに異なるスクリプトを自分で書く必要がありましたが、このライブラリを使えば設定ファイルを書くだけで同じ作業が完結します。たとえば、レシピ(YAML ファイル)を書いてコマンドを打つだけで、データ収集から最終的な予測まで自動で進んでいくイメージです。学術論文(arXiv 2509.12266)と合わせて公開されており、研究の再現性を高めることも大きな目的のひとつです。プログラミング経験がある方なら、設定ファイルを少し変えるだけで異なるモデルや学習方法を試せるようになります。
このソフトで何ができるか — 6 つの主な機能
この章では、Genome-Factory が提供する 6 つのコンポーネント(構成要素)の役割を理解できます。
① Genome Collector(データ収集・前処理)
NCBI(米国国立生物工学情報センター)などの公開ゲノムデータベースから配列を自動取得し、学習用のデータに整える機能です。GC 含量(グアニンとシトシンの割合)の正規化や、曖昧塩基(どの塩基か特定できない位置)の補正も行います。HostFilter(宿主配列の除去)・QualityTrim(品質フィルタリング)・TaxonExtract(分類群の抽出)・SequenceExtract(固定長の配列切り出し)・CustomCommand(任意のシェルコマンド実行)という 5 種類のステージを YAML で組み合わせることができます。独自のステージを追加したい場合は、PipelineStage というクラスを継承(サブクラス化)して実装できます。
② Model Loader(モデル読み込み)
対応している 6 種類のゲノム基盤モデルと、それぞれ専用のトークナイザー(文字列をモデルが処理できる数値に変換するツール)を読み込む機能です。モデルによって推奨される transformers ライブラリのバージョンが異なるため、README に詳細が記載されています。たとえば Genome Ocean には transformers==4.44.2、その他のモデルには transformers==4.29.2 が推奨されています。
③ Model Trainer(学習)
DNA 配列の分類タスク(プロモーターか否か、など)や回帰タスク(発現量の数値予測、など)へのファインチューニングを担う中心機能です。学習方法は、全パラメータを更新する「フルファインチューニング」のほか、LoRA(低ランク適応)とアダプタという 2 種類のパラメータ効率的学習(PEFT)をサポートします。さらに高度な train_joint モードでは、前処理と学習を同時に最適化する仕組みが用意されています。複数タスクをひとつのモデルで同時学習するマルチタスク学習(MTL)にも対応しています。
④ Inference Engine(推論) 学習済みモデルを使って予測・配列生成・埋め込み抽出の 3 種類の処理を実行できます。タンパク質生成では FoldMason(タンパク質構造解析ツール)との統合による構造制約付き生成もサポートしています。
⑤ Benchmarker(評価) 標準ベンチマーク(性能評価の基準セット)の実行と、ユーザー独自の評価タスクの追加を支援します。結果は JSON 形式で自動保存されるため、複数モデルの比較が容易です。
⑥ Biological Interpreter(解釈)
スパースオートエンコーダ(SAE: 特徴量を疎な表現に変換するニューラルネットワーク)を用いて、モデルが何に注目して予測したかを解釈する機能です。sae_train で SAE 自体を学習し、sae_regression でリッジ回帰による特徴量の重要度評価を実施できます。
こんな人におすすめ — 用途と使い道
この章では、Genome-Factory がどのような場面で役立つかを把握できます。
ゲノム配列のラベル付き学習に取り組む研究者には特に適しています。ヒストン修飾(DNA が巻き付くタンパク質への化学的な修飾)予測やエンハンサー(遺伝子発現を促進するゲノム領域)同定など、既存の基盤モデルをすぐに転用したい場合に強みを発揮します。個別のスクリプトを一から書く必要がなく、YAML ファイルを書き換えるだけでモデルやタスクを切り替えられます。
複数の基盤モデルを横断比較したい ML エンジニアにとっても有用です。同一の YAML 設定で LoRA・アダプタ・フルファインチューニングを切り替えながら、異なるモデルの結果を JSON で自動保存できます。これにより、体系的なアブレーション実験(どの要素が性能に寄与するかを調べる実験)を効率的に行えます。
データ収集と前処理を自動化したい人には、genomefactory-cli download と genomefactory-cli process の組み合わせが強力です。種名指定や URL 指定でゲノム配列を取得し、モデル入力用の CSV ファイル生成まで自動化できます。環境ゲノミクス(メタゲノム解析)にも応用できます。
インストール・セットアップの手順
この章では、Genome-Factory を実際に動かすまでの手順を、各操作の意味とともに理解できます。
Step 1: リポジトリのクローンと基本依存パッケージのインストール
git clone https://github.com/WeiminWu2000/Genome_Factory.git
cd Genome_Factory
pip install -r requirements.txt
git clone でリポジトリ(ソースコードの保管場所)をローカルに複製し、requirements.txt に書かれた依存パッケージを一括インストールします。このステップで setuptools が不足していると BackendUnavailable エラーが出ることがあります。その場合は事前に pip install setuptools を実行してください。
Step 2: CUDA ツールキットと高速演算ライブラリのインストール(Conda 環境推奨)
conda install cudatoolkit==11.8 -c nvidia
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc
pip install mamba-ssm==2.2.2 flash-attn==2.7.2.post1
GPU を使った高速な行列演算を有効にするための CUDA ツールキット(NVIDIA 製 GPU 向け計算基盤)をインストールします。mamba-ssm と flash-attn は、HyenaDNA や Mamba 系モデルを動かすために必要な特殊ライブラリです。Conda(パッケージ・環境管理ツール)を使うことで、CUDA バージョンの競合を防ぎやすくなります。このステップをスキップすると一部のモデルが動作しない場合があります。
Step 3: 追加ツールのインストール
# NCBI Datasets CLI
conda install conda-forge::ncbi-datasets-cli
# EVO モデルのソースインストール
git clone https://github.com/evo-design/evo.git
cd evo && pip install . && cd ..
ncbi-datasets-cli は NCBI からゲノムデータを取得するためのコマンドラインツールです。EVO モデルは PyPI(Python のパッケージリポジトリ)に登録されていないため、ソースから直接インストールする必要があります。cd evo && pip install . && cd .. という一連のコマンドで EVO ディレクトリに入り、インストールして元のディレクトリに戻ります。
Step 4: Genome-Factory 本体のインストールと動作確認
pip install -e .
# データダウンロード
genomefactory-cli download genomeFactory/Examples/download_by_species.yaml
# LoRA ファインチューニング
genomefactory-cli train genomeFactory/Examples/train_lora.yaml
# 推論(分類)
genomefactory-cli inference genomeFactory/Examples/inference_lora.yaml
# Web UI 起動
genomefactory-cli webui
pip install -e . は「編集可能インストール(editable install)」と呼ばれる方法で、ソースコードを変更するとすぐに反映される開発者向けのインストール形式です。genomefactory-cli コマンドが使えるようになれば導入成功です。サンプルの YAML ファイルが genomeFactory/Examples/ に用意されているため、まずそちらで動作確認するのがおすすめです。
Docker 検証レポート — 動かして分かったこと
この章では、Docker コンテナ上での実際の検証結果と、遭遇したエラーの原因・対処法が分かります。
実際に Docker コンテナ上で動作検証を行ったところ、pip によるインストール時に 2 種類のエラーが確認されました。エラーメッセージと意味を以下に示します。
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Cannot import 'setuptools.build_meta'
このメッセージは「ビルドバックエンド(パッケージをビルドするための裏側の仕組み)として必要な
setuptoolsがインストールされていない」ことを意味します。コンテナの Python 環境にデフォルトでsetuptoolsが含まれていなかったため発生しました。pip install setuptoolsを先に実行することで解消できます。
ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device
このメッセージは「デバイスに空き容量がない」というOSレベルのエラーです。コンテナに割り当てられたディスク容量が不足していたため発生しました。ゲノム基盤モデルは数 GB〜数十 GB のファイルを扱うため、50 GB 以上の空き容量を確保することが推奨されます。
いずれもコード自体の問題ではなく、実行環境側の制約によるものです。Python バージョンは 3.12.13 であることが確認されました。リポジトリのファイル構造は以下の通りです。
./requirements.txt
./setup.py
./genomeFactory/__init__.py
./genomeFactory/cli.py
./genomeFactory/command.py
./genomeFactory.egg-info/
setup.pyはパッケージのビルド設定ファイルです。genomeFactory.egg-info/ディレクトリはパッケージがインストール済みであることを示すメタデータフォルダです。これらが存在していることから、pip install -e .による編集可能インストールが正しく想定されている構造だと確認できます。CLI エントリポイントはgenomefactory-cliコマンドとして定義されています。
ブラウザで試す(デモについて)
ブラウザから対応モデルの仕様確認・YAML 設定テンプレートの生成・DNA 配列の簡易バリデーションを試せる Web UI が用意されています。起動は genomefactory-cli webui コマンド 1 本で完了します。実際の GFM 推論には大規模なモデルファイルのダウンロードが必要なため、デモでは主に設定補助機能を提供しています。まず設定ファイルの書き方に慣れたい方は、ここから始めるのがスムーズです。
よくある質問
Q1. プログラミング経験は必要ですか? 基本的な Python と CLI(コマンドラインインターフェース)の操作知識があれば使い始められます。主な設定は YAML ファイルで行うため、Python コードを書く量は最小限です。ただし、カスタムステージの追加や独自タスクの定義には Python のクラス継承の知識が必要になります。
Q2. GPU がないと使えませんか? GPU がなくても動作はしますが、実用的な学習速度を得るためには NVIDIA 製 GPU と CUDA 環境が強く推奨されます。特に大規模な基盤モデルを使う場合、CPU のみでは学習に非常に長い時間がかかる可能性があります。
Q3. Windows でも動きますか? README には Linux / Conda 環境での手順が記載されています。Windows での動作は公式に確認されていないため、WSL2(Windows Subsystem for Linux)や Docker を使った Linux 環境での利用が安全です。
Q4. モデルごとに環境を分ける必要がありますか?
はい、その可能性があります。Genome Ocean には transformers==4.44.2、その他のモデルには transformers==4.29.2 が推奨されており、バージョンが異なります。また DNABERT-2 では triton のアンインストールが必要と README に明記されています。Conda の仮想環境を使ってモデルごとに環境を分けることを推奨します。
Q5. 結果はどこに保存されますか? Benchmarker の結果は JSON 形式で自動保存されます。保存先のパスは YAML 設定ファイル内で指定できます。SAE の特徴量重要度評価の結果も同様にファイル出力されます。
まとめ — つまずきやすい点と総評
Genome-Factory は、ゲノム基盤モデルのライフサイクル全体をカバーする統合フレームワークです。データ収集・前処理・学習・推論・解釈という 5 つの工程を YAML 駆動の CLI で統一した設計は、研究の再現性と効率を大きく向上させます。LoRA・アダプタ・合同最適化・マルチタスク学習といった最新の PEFT 手法を網羅しており、SAE による解釈機能まで備えた研究向けの総合ツールキットといえます。
つまずきやすい点を改めて整理すると、主に 3 点あります。1 点目は setuptools の明示的なインストールが必要なことです。2 点目はモデルファイルが大容量であるため、50 GB 以上のディスク空き容量が必要なことです。3 点目は使用するモデルによって推奨 transformers バージョンが異なるため、環境構築に注意が必要なことです。これらを事前に把握しておけば、スムーズに導入できるでしょう。
用語とポイント解説
ゲノム基盤モデル(GFM: Genomic Foundation Model) 大量の DNA 配列データで事前学習された大規模ニューラルネットワークのことです。自然言語処理の BERT や GPT に相当するもので、DNA 配列を「言語」として扱います。個別タスク向けに追加学習(ファインチューニング)することで、さまざまな生物学的予測に応用できます。
YAML(ヤムル) 「YAML Ain’t Markup Language」の略で、人間が読み書きしやすい設定ファイルの形式です。Genome-Factory ではモデルの種類・学習率・データパスなどをすべて YAML ファイルに記述します。JSON より読みやすく、設定の変更が容易なのが特徴です。
LoRA(低ランク適応: Low-Rank Adaptation) 大規模モデルをファインチューニングする際に、元のパラメータを変えずに小さな追加パラメータだけを学習する手法です。必要なメモリと計算量を大幅に削減できます。フルファインチューニングと比べて性能の低下が少ないことが多く、現在広く使われています。
PEFT(パラメータ効率的学習: Parameter-Efficient Fine-Tuning) 全パラメータを更新せず、一部のパラメータだけを学習することで効率化するファインチューニング手法の総称です。LoRA とアダプタはどちらも PEFT の代表的な手法です。GPU メモリが限られた環境での学習を可能にします。
アダプタ(Adapter) 既存のモデルに小さな追加モジュール(アダプタ層)を挿入し、そこだけを学習する PEFT 手法です。元のモデルの重みを変えないため、複数タスク用のアダプタを付け替えることで異なるタスクに対応できます。
スパースオートエンコーダ(SAE: Sparse Autoencoder) 入力データを少数の重要な特徴量(スパースな表現)に圧縮・復元するニューラルネットワークです。モデルが何に注目しているかを解釈するために使われます。Genome-Factory ではモデルの埋め込みから生物学的に意味のある特徴量を抽出するために利用されます。
ファインチューニング(Fine-Tuning) 大規模モデルを特定のタスク向けに追加学習することです。ゼロから学習するよりはるかに少ないデータと計算量で高い性能を達成できます。たとえば GPT を使って特定ジャンルの文章生成に特化させるのも同じ概念です。
埋め込み(Embedding) テキストや DNA 配列などを数値のベクトル(多次元の数値配列)に変換したものです。意味が近いものは数値空間でも近い位置に来るよう設計されています。この数値表現をもとに分類や回帰などの予測を行います。
マルチタスク学習(MTL: Multi-Task Learning) 複数の異なるタスクを単一モデルで同時に学習する手法です。タスク間で共通する知識をモデルが共有できるため、個別に学習するより汎化性能が上がることがあります。Genome-Factory では単一の DNABERT-2 バックボーンで複数のゲノム予測タスクを同時学習できます。
NCBI(エヌシービーアイ)
National Center for Biotechnology Information の略で、米国が運営する生命科学の公開データベースです。塩基配列・タンパク質情報・文献など膨大なデータが無料で公開されています。Genome-Factory の Genome Collector はここからデータを取得します。
編集可能インストール(Editable Install)
pip install -e . で行うインストール形式で、ソースコードへのシンボリックリンクを張ることでインストールします。ソースコードを変更した場合に再インストールなしで即座に反映されるため、開発者や研究者向けの便利な方法です。
CLI(コマンドラインインターフェース)
ターミナル(コマンドプロンプト)にコマンドを入力してソフトウェアを操作する方式です。GUI(グラフィカルなボタン操作)と対比されます。genomefactory-cli はこの方式で操作するコマンドです。設定ファイルを渡すことで複雑な処理を簡単に実行できます。