xyz2cif プログラム仕様

xyz2cif.py: XYZファイルと設定ファイルからCIFファイルを生成するスクリプト。

概要:

XYZ形式の原子座標ファイルと、格子定数などの結晶情報を記述した設定ファイル(CFG)を読み込み、 国際結晶学連合(IUCr)が定めたCIF (Crystallographic Information File) 形式のファイルを出力します。

詳細説明:

本スクリプトは、特定のフォーマットのXYZファイルとCFGファイルを解釈し、 内部的に`tkCrystal`オブジェクトを構築します。 CFGファイルはサンプル名と格子ベクトルを定義し、XYZファイルは原子の数と各原子のカートン座標を定義します。 読み込まれたカートン座標は、指定された格子ベクトルに基づいて分数座標に変換され、 必要に応じて[0, 1)の範囲に正規化されます。 最終的に、構築された結晶情報は`tkCIFData`オブジェクトを通じてCIFファイルとして保存されます。

関連リンク:

xyz2cif.py 技術ドキュメント

crystal.xyz2cif.main()[ソース]

概要: スクリプトのエントリーポイントです。

詳細説明:

コマンドライン引数を解析してグローバル変数を更新し(`updatevars`関数)、 その後、XYZファイルと設定ファイルからCIFファイルを生成する主要な処理(`xyz2cif`関数)を呼び出します。

crystal.xyz2cif.read_xyzfile(cfgfile, xyzfile)[ソース]

概要: 設定ファイルとXYZファイルから結晶構造データを読み込み、tkCrystalオブジェクトを生成します。

詳細説明:

まず、`cfgfile`からサンプル名と3つの格子ベクトルを読み込みます。 次に、`xyzfile`からサイト数と各原子サイトの元素名とカートン座標を読み込みます。 読み込んだ情報をもとに`tkCrystal`オブジェクトを構築し、 原子のカートン座標を分数座標に変換して`tkCrystal`オブジェクトに追加します。 `freduce01`フラグが真の場合、分数座標は[0, 1)の範囲に正規化されます。

パラメータ:
  • cfgfile -- str: 設定ファイル(.cfg)のパス。格子ベクトルやサンプル名を定義します。

  • xyzfile -- str: XYZフォーマットの原子座標ファイル(.xyz)のパス。原子種とカートン座標を定義します。

戻り値:

tkCrystal: 読み込まれた結晶構造データを含むtkCrystalオブジェクト。

crystal.xyz2cif.updatevars()[ソース]

概要: コマンドライン引数を解析し、グローバル変数を更新します。

詳細説明:

`sys.argv`からXYZファイル名と`freduce01`フラグを読み取ります。 XYZファイル名に基づいて、対応する設定ファイル(CFG)名と出力CIFファイル名を派生させ、 これらのグローバル変数を更新します。

crystal.xyz2cif.usage()[ソース]

概要: スクリプトの正しい使用方法を標準出力に表示します。

詳細説明:

コマンドライン引数の正しい形式と、`reduce01`パラメータの意味について説明します。 主に、引数が不足している場合や不正な場合に呼び出されます。

crystal.xyz2cif.xyz2cif()[ソース]

概要: XYZファイルと設定ファイルからCIFファイルを生成するメイン処理を実行します。

詳細説明:

グローバル変数`cfgfile`と`xyzfile`で指定されたファイルパスを使用して、 `read_xyzfile`関数を呼び出し、結晶構造データを含む`tkCrystal`オブジェクトを取得します。 取得した結晶情報を標準出力に表示した後、 グローバル変数`ciffile`で指定されたパスにCIFファイルを生成・保存します。 処理が完了すると、`terminate`関数を呼び出してスクリプトを終了します。