tkcifobject プログラム仕様

CIF (Crystallographic Information File) データを扱うためのクラスを提供します。

このモジュールは、CIFファイルを操作するための基底クラス tkCIFObject と、 CIFデータの内容を解析し、tkCrystalオブジェクトへ変換する機能を持つ tkCIFData クラスを提供します。 CIFファイルからの情報抽出、結晶構造の構築、およびCIFファイルへの書き出しをサポートします。

関連リンク: tkcifobject.py ライブラリ技術ドキュメント

class tklib.tkcrystal.tkcifobject.tkCIFData(**args)[ソース]

ベースクラス: tkCrystalObject

CIFデータの内容を解析し、操作するためのクラスです。

tkCrystalObjectを継承し、CIFデータから結晶構造情報を抽出・管理し、 tkCrystalオブジェクトへの変換やファイル出力機能を提供します。

CheckCIF()[ソース]

必須のCIF格子定数と原子位置データが存在するかどうかをチェックします。

_cell_length_a_cell_length_b_cell_length_c_cell_angle_alpha_cell_angle_beta_cell_angle_gamma_atom_site_fract_x[0]_atom_site_fract_y[0]_atom_site_fract_z[0] の各キーについて CheckCIF1 を呼び出します。 いずれか一つでも存在しない場合はプログラムを終了します。

戻り値:

int, 全ての必須キーが存在する場合は1。

CheckCIF1(key)[ソース]

指定されたCIFキーが存在し、エラー付き浮動小数点値として取得可能かチェックします。

geterrorf メソッドを使用してキーの値を取得し、それが None でないかを確認します。 値が取得できない場合はエラーメッセージを出力し、0を返します。

パラメータ:

key -- str, チェックするCIFキー。

戻り値:

int, キーが存在する場合は1、存在しない場合は0。

CreateCIFFileFromCCrystal(cry, NewFile, IsChooseRandomly=0, IsPrint=1)[ソース]

tkCrystalオブジェクトの内容からCIFファイルを生成します。

指定された tkCrystal オブジェクトから、化学組成、格子定数、空間群、 対称操作、原子種、原子サイト情報を抽出し、新しいCIFファイルを生成して書き込みます。

パラメータ:
  • cry -- tklib.tkcrystal.tkcrystal.tkCrystal, 書き出す情報を含むtkCrystalオブジェクト。

  • NewFile -- str, 新しく作成するCIFファイルのパス。

  • IsChooseRandomly -- int, (未使用)ランダムに選択するかどうかのフラグ。デフォルトは0。

  • IsPrint -- int, (未使用)出力時にプリントするかどうかのフラグ。デフォルトは1。

戻り値:

int, ファイルが正常に作成された場合は1、失敗した場合は0。

FillCIFData()[ソース]

CIFデータを用いてtkCrystalオブジェクトを部分的に初期化します(未実装)。

CrystalName を設定しますが、他のプロパティ(格子定数、体積、空間群)の 設定はコメントアウトされており、機能しません。

戻り値:

None

GetCrystal()[ソース]

CIFデータからtkCrystalオブジェクトを生成して返します。

CIFデータに含まれる化学名、化学式、体積、格子定数、空間群、対称操作、 原子種、原子サイトの情報を用いて、tkCrystalオブジェクトを構築し初期化します。

戻り値:

tklib.tkcrystal.tkcrystal.tkCrystal, 構築されたtkCrystalオブジェクト。

InsertSpaceToSPGName(SPGName)[ソース]

空間群名に適切な空白を挿入して整形します(未実装または不完全な実装)。

空間群名に特定のパターンに基づいて空白を挿入しようと試みますが、 現状では正規表現による置換が不完全であり、期待通りに動作しない可能性があります。

パラメータ:

SPGName -- str, 整形する空間群名。

戻り値:

str, 整形された空間群名。

LatticeParameters()[ソース]

CIFデータから格子定数を取得します。

_cell_length_a_cell_length_b_cell_length_c_cell_angle_alpha_cell_angle_beta_cell_angle_gamma の値を geterrorf メソッドで取得し、タプルとして返します。

戻り値:

tuple, (a, b, c, alpha, beta, gamma) の順で格子定数を格納したタプル。

Print(PrintLines=0)[ソース]

CIFデータの要約情報を標準出力に表示します。

print メソッドのエイリアスです。

パラメータ:

PrintLines -- int, 入力行データも表示するかどうかのフラグ (1で表示)。デフォルトは0。

戻り値:

None

SymmetryOperation(i)[ソース]

指定されたインデックスの対称操作を取得します。

_symmetry_equiv_pos_as_xyz キーから、指定されたインデックス i に 対応する対称操作の文字列を取得し、引用符を除去して返します。

パラメータ:

i -- int, 取得する対称操作のインデックス。

戻り値:

str or None, 対称操作の文字列、または見つからない場合はNone。

WriteKeyVal(out, key, defval=None, i=None)[ソース]

CIFファイルにキーと値を書き込みます。

指定されたキーの値を get メソッドで取得し、out ファイルオブジェクトに _key value の形式で書き込みます。値が None の場合は書き込まず0を返します。

パラメータ:
  • out -- tklib.tkfile.tkFile, 書き込み先のファイルオブジェクト。

  • key -- str, 書き込むCIFキー。

  • defval -- any or None, 値が見つからなかった場合のデフォルト値。

  • i -- int or str or None, キーに付加するインデックス。

戻り値:

int, 値が書き込まれた場合は1、書き込まれなかった場合は0。

WriteSimpleCIFFile(NewFile, WritePublication=1)[ソース]

現在のCIFデータの内容からシンプルなCIFファイルを生成します。

FillCIFData を呼び出した後、新しいCIFファイルを指定されたパスに作成し、 基本情報、単位格子、空間群、対称操作、原子種、原子サイト情報を書き込みます。

パラメータ:
  • NewFile -- str, 新しく作成するCIFファイルのパス。

  • WritePublication -- int, 論文情報を書き込むかどうかのフラグ (1で書き込む)。デフォルトは1。

戻り値:

int, ファイルが正常に作成された場合は1、失敗した場合は0。

dataprint(key, i=None)[ソース]

指定されたCIFキーの値を標準出力に表示します。

キーがリストの場合、最初に見つかったキーの値を表示します。 値が見つからない場合はエラーメッセージを出力します。

パラメータ:
  • key -- str or list, 表示するデータのキーまたはキーのリスト。

  • i -- int or str or None, キーに付加するインデックス。

戻り値:

int, 値が見つかり表示された場合は1、見つからなかった場合は0。

get(key, i=None, defval=None)[ソース]

CIFデータから指定されたキーの値を取得します。

キーがリストの場合は最初に見つかった値を返し、キーが整数(行番号)の場合は 入力行リストから値を返します。インデックスが指定された場合は、キーにインデックスを付加して検索します。

パラメータ:
  • key -- str or list or int, 取得するデータのキー、キーのリスト、または行番号。

  • i -- int or str or None, キーに付加するインデックス。ループ内のデータ(例: _atom_site_fract_x[0]) を取得する際に使用。

  • defval -- any, 値が見つからなかった場合に返すデフォルト値。

戻り値:

any, 見つかった値、またはデフォルト値。

geterrorf(key, i=None, defval=None)[ソース]

CIFデータから指定されたキーの浮動小数点値を取得します。エラー値の括弧表記を除去します。

get メソッドで値を取得し、括弧で囲まれたエラー表記(例: 1.234(5))を 除去した後、浮動小数点数に変換して返します。変換に失敗した場合はデフォルト値を返します。

パラメータ:
  • key -- str or list, 取得するデータのキーまたはキーのリスト。

  • i -- int or str or None, キーに付加するインデックス。

  • defval -- any, 値が見つからなかった場合や変換に失敗した場合に返すデフォルト値。

戻り値:

float or any, 変換された浮動小数点数、またはデフォルト値。

getf(key, i=None, defval=None)[ソース]

CIFデータから指定されたキーの浮動小数点値を取得します。

get メソッドで値を取得し、浮動小数点数に変換して返します。 変換に失敗した場合はデフォルト値を返します。

パラメータ:
  • key -- str or list, 取得するデータのキーまたはキーのリスト。

  • i -- int or str or None, キーに付加するインデックス。

  • defval -- any, 値が見つからなかった場合や変換に失敗した場合に返すデフォルト値。

戻り値:

float or any, 変換された浮動小数点数、またはデフォルト値。

geti(key, i=None, defval=None)[ソース]

CIFデータから指定されたキーの整数値を取得します。

get メソッドで値を取得し、整数に変換して返します。浮動小数点数として解釈できる場合は、 その整数部分を返します。変換に失敗した場合はデフォルト値を返します。

パラメータ:
  • key -- str or list, 取得するデータのキーまたはキーのリスト。

  • i -- int or str or None, キーに付加するインデックス。

  • defval -- any, 値が見つからなかった場合や変換に失敗した場合に返すデフォルト値。

戻り値:

int or any, 変換された整数、またはデフォルト値。

nSymmetryOperation()[ソース]

検出された対称操作の数を返します。

_symmetry_equiv_pos_as_xyz キーに対応するエントリをインデックス i を 増やしながら検索し、値が見つからなくなるまでカウントします。

戻り値:

int, 対称操作の数。

print(PrintLines=0)[ソース]

CIFデータの詳細情報を標準出力に表示します。

ファイルパス、化学名、化学式、単位格子情報、空間群、対称操作、原子種、 原子サイトの情報を整形して出力します。PrintLines が1の場合、 元の入力行も表示します。

パラメータ:

PrintLines -- int, 入力行データも表示するかどうかのフラグ (1で表示)。デフォルトは0。

戻り値:

None

class tklib.tkcrystal.tkcifobject.tkCIFObject(path=None, mode='r', **args)[ソース]

ベースクラス: tkFile

CIFファイルを扱うための基底クラスです。

tkFileを継承し、CIFファイルに関する基本的な属性(結晶名、サンプル名)を管理します。