コンテンツにスキップ

事例7:CLIによるハイスループット・バッチ処理

事例7:CLIによるハイスループット・バッチ処理

Section titled “事例7:CLIによるハイスループット・バッチ処理”

fbtk の CLI ツール(fbtk-build)は、Python 環境に依存しない独立した実行ファイルとしても提供されています。この特徴を活かすことで、シェルスクリプトから直接呼び出し、多数の組成バリエーションを自動で一気に生成する「ハイスループットな初期構造スクリーニング」が可能になります。

  • Python不要: 依存関係を気にせず、スパコンや CI/CD 環境にバイナリを置くだけで動作します。
  • 自動化が容易: for ループや cat などの標準的な Linux コマンドと組み合わせて、数千通りの初期構造を瞬時に用意できます。
  • パイプライン統合: 「レシピ生成 → 構造構築 → MD実行」という一連の流れを一つのシェルスクリプトで完結できます。

自動化の例:塩濃度スクリーニングスクリプト

Section titled “自動化の例:塩濃度スクリーニングスクリプト”

以下のシェルスクリプト(batch_build.sh)は、塩(LiTFSI)の個数を変えながら、対応するレシピファイルを自動生成し、順次 fbtk-build を実行します。

#!/bin/bash
# ポリマーの基本設定
PEO_COUNT=6
PEO_DEGREE=40
# 塩(LiTFSI)の個数を変えてループ(10, 30, 50個)
for salt_count in 10 30 50; do
echo "Processing salt count: $salt_count..."
# 1. レシピファイル(YAML)を動的に生成
# ポリマーの設定は polymer_params 下に記述します
cat << EOF > recipe_${salt_count}.yaml
system:
density: 0.8
components:
- name: PEO
role: polymer
input:
smiles: "*COC*"
polymer_params:
degree: $PEO_DEGREE
n_chains: $PEO_COUNT
- name: Li
role: molecule
input:
smiles: "[Li+]"
count: $salt_count
- name: TFSI
role: molecule
input:
smiles: "C(F)(F)(F)S(=O)(=O)[N-]S(=O)(=O)C(F)(F)(F)"
count: $salt_count
EOF
# 2. CLIツールを実行して構造を構築・緩和
# --recipe (または -r) フラグでの指定が必須です
fbtk-build --recipe recipe_${salt_count}.yaml --output cell_${salt_count}.mol2 --relax
echo " - Generated: cell_${salt_count}.mol2"
done

スクリプトを実行すると、各濃度に応じたログが出力され、正確な原子数を持つ .mol2 ファイルが即座に生成されます。

Processing salt count: 30...
Forblaze Toolkit (c) 2026 Forblaze Project https://forblaze-works.com/
--- fbtk-build ---
Threads: 4
Reading recipe from "recipe_30.yaml"
System Summary:
Target Density: 0.8 g/cm^3
Components:
- [Polymer] PEO: degree=40, n_chains=6, tacticity=Isotactic
- [Molecule] Li: count=30
- [Molecule] TFSI: count=30
Generating template from SMILES for PEO: *COC*
Resolved polymer indices for PEO: head=1, tail=3, h_leaving=Some(0), t_leaving=Some(4)
Generating template from SMILES for Li: [Li+]
Generating template from SMILES for TFSI: C(F)(F)(F)S(=O)(=O)[N-]S(=O)(=O)C(F)(F)(F)
Building system...
System built successfully.
Atoms: 2172
Bonds: 2106
Relaxing system (Default parameters)...
Saved to "cell_30.mol2"

出口:MDシミュレーションへの連携

Section titled “出口:MDシミュレーションへの連携”

生成された .mol2 ファイルは、単なる座標データではなく結合トポロジーを保持しています。これを出口として、以下のような高度なワークフローへ繋げることができます。

  1. LAMMPS/GROMACSへの変換: .mol2 形式をベースに、MD ソフト用の入力データ(LAMMPS data file 等)へ変換。これにより、100 通りの組成に対する MD 計算を全自動で開始できます。
  2. fbtk-analyze による即時解析: 構築直後の構造に対し、同じく CLI ツールである fbtk-analyze を用いて、RDF(動径分布関数)や密度分布をチェックし、物理的に妥当な組成範囲をスクリーニングします。
  3. 可視化: OvitoVMD などのツールで即座にパッキング状態を確認。

fbtk の CLI ツールを活用することで、材料設計の「初期構造作成」というボトルネックを解消し、真に自動化されたシミュレーション・パイプラインを構築できます。