analyze_symmetry_k プログラム仕様
このモジュールは、結晶構造の対称性を解析し、特に中心金属のd軌道と配位子の対称適応型線形結合 (SALC) のk点における互換性を評価します。 ユーザーが指定した構造JSONファイルから情報を読み込み、点群の自動検出、SALCの計算、およびk点におけるSALCの振る舞いを解析します。
関連リンク: analyze_symmetry_k.py の技術ドキュメント
- Quantum.analyze_symmetry_k.choose_point_group(plugins, ligands_pos, tol_match_geom, autodetect_cfg)[ソース]
複数の点群プラグインを評価し、配位子の配置に最も適切な点群を自動検出します。
各プラグインの align_guess と symmetry_hit_rate を利用して適合度を計算し、 ヒット率、ヒット数、群の位数、名前の順でソートして最良のものを選択します。 autodetect_cfg に min_rate_strict が指定されている場合、特定の点群に対して 厳密なヒット率の閾値が適用されます。
- パラメータ:
plugins (list[dict]) -- 評価する tkpg プラグインのリスト。各プラグインは、点群の名前、 align_guess メソッド、build_group メソッドなどを含む辞書である必要があります。
ligands_pos (numpy.ndarray) -- 配位子の座標 (デカルト座標) のNumPy配列。形状は (N, 3) です。
tol_match_geom (float) -- 幾何学的なマッチングに使用する許容誤差。
autodetect_cfg (dict or None) -- 自動検出に関する追加設定を含む辞書。 min_rate_strict (点群名と閾値の辞書) や tie_eps (タイブレークの許容誤差) などのキーを含めることができます。None の場合、デフォルト値が使用されます。
- 戻り値:
以下の2つの要素を含むタプルを返します。 - best: 検出された最良の点群に関する情報。以下の要素を含むタプルです。
plugin: 最良と判断された点群プラグイン辞書。
rate: 最良点群のヒット率。
hits: 最良点群のヒット数。
R_align: 配位子を標準的な軸にアラインメントするための回転行列。
pos_aligned: アラインメント後の配位子座標。
strict_tag: 厳密な受け入れ基準が適用された場合のタグ文字列。
- scored_pretty: 評価された全プラグインの情報(整形済み文字列含む)のリスト。
各要素は (rate, hits, ok, p, R, pos, tag) のタプルです。
- 戻り値の型:
tuple[tuple[dict, float, int, numpy.ndarray, numpy.ndarray, str], list[tuple]]
- Quantum.analyze_symmetry_k.load_structure_json(path)[ソース]
構造設定をJSONファイルから読み込み、設定辞書を構築します。
JSONファイルから格子、配位子座標、d軌道情報、解析モード、許容誤差、SALC設定などを読み込みます。 ligands_frac (分数座標) または ligands_pos (デカルト座標) のいずれかが必須です。
- パラメータ:
path (str) -- 設定を読み込むJSONファイルへのパス。
- 戻り値:
読み込んだ設定情報を含む辞書。
- 戻り値の型:
- 例外:
ValueError -- JSONファイルに 'ligands_frac' または 'ligands_pos' のいずれも含まれていない場合。
- Quantum.analyze_symmetry_k.main()[ソース]
コマンドライン引数からJSONファイルを読み込み、配位子SALCのk点互換性解析を実行します。
主な処理フローは以下の通りです。 1. 構造JSONを読み込み、解析に必要な設定を抽出します。 2. 周期的なメタデータ(ligands_frac が指定された場合)を構築し、必要に応じて配位子を中央に配置します。 3. tkpg プラグインをロードし、choose_point_group を使用して最適な点群を自動検出します。 4. 検出された点群の標準的な軸の慣例に従って配位子をアラインメントします。 5. 中心金属のd軌道に対応する既約表現を特定します。 6. 配位子の局所フレームと基底を構築します。 7. 点群の既約表現分解(k点独立)を実行し、d軌道とのハイブリダイゼーションの可能性をチェックします。 8. 各指定k点について、点群SALCを抽出し、Bloch位相を考慮したk点互換性フィルターを適用し、結果を出力します。