proteindf_bridge.atomgroup モジュール

class proteindf_bridge.atomgroup.AtomGroup(*args, **kwargs)

ベースクラス: object

分子構造の階層木表現。

AtomGroup は子グループ (AtomGroup) および原子 (Atom) を含む分子階層内のノードを表す。子グループは通常モデル、チェイン、残基などの構造単位を表し、原子は個々の原子サイトを表す。

木から取得されたオブジェクト(インデックス指定、get_group()、または get_atom() 経由)は木内のノードへの直接の参照であり、それらを変更すると木がインプレースで変更される。逆に、set_group() または set_atom() 経由でオブジェクトを挿入すると、提供されたオブジェクトは木内にディープコピーされる。

コンストラクタは以下を受け付ける: - グループ名文字列 (例: AtomGroup("model_1") または AtomGroup(name="model_1"))。 - 複製元の別の AtomGroup (例: AtomGroup(other_group))。 - 生の木データを表す辞書 (例: AtomGroup(raw_dict))。 - 引数なし (デフォルト設定で空のグループを作成)。

add_bond(atom1, atom2, order=1)

グループ階層内の2つの原子間の化学結合を登録する。

結合は2つの原子の最小共通祖先グループに保存される。

パラメータ:
  • atom1 (Atom) -- 1番目の原子。

  • atom2 (Atom) -- 2番目の原子。

  • order (int, optional) -- 結合次数 (単結合なら1、二重結合なら2など)。デフォルトは1。

add_missing_hydrogens(db=None)

CCD残基テンプレートに基づいて欠損水素原子を追加する。

パラメータ:

db (Optional[CcdTemplateDb], optional) -- 使用するCCDテンプレートデータベース。None の場合、グローバルデフォルトのデータベースが使用される。デフォルトは None。

戻り値:

追加された水素のサマリーレポート。

戻り値の型:

OverallHydrogenationReport

apply_secondary_structure()

このチェイン内の残基に対して二次構造注釈 ('H', 'E', '-') を検出し割り当てる。

変更は残基グループにインプレースで適用される。

assign_charges(charges)

シーケンスからの部分電荷を階層内のすべての原子に順番に割り当てる。

charges 内の値の数は、総原子数と正確に一致しなければならない。

パラメータ:

charges (Sequence[float]) -- 数値電荷値のイテラブル。

例外:
  • TypeError -- charges が有効なシーケンスでない場合。

  • ValueError -- charges の長さが総原子数と一致しない場合。

atoms()

このグループに直接含まれるすべての原子の (key, atom) ペアのリストを返す。

sort_atoms が "nice" に設定されている場合、項目は自然順にソートされる。

戻り値:

(key, atom) ペアのリスト。

戻り値の型:

List[Tuple[str, Atom]]

bonds()

このグループに直接保存されている結合レコードのリストを返す。

戻り値:

(atom1_path, atom2_path, order) タプルのリスト。

戻り値の型:

List[Tuple[str, str, int]]

box()

階層内のすべての原子を囲む軸平行バウンディングボックスを計算する。

戻り値:

(min_position, max_position) のタプル。

戻り値の型:

Tuple[Position, Position]

center()

階層内のすべての原子の幾何中心(重心)を計算する。

戻り値:

重心座標。

戻り値の型:

Position

charge

このグループおよびそのすべての子孫グループの全電荷。

戻り値:

原子部分電荷の総和。

戻り値の型:

float

del_atom(key)

指定されたキーを持つ原子をこのグループから削除する。

パラメータ:

key (Union[str, int]) -- 削除する原子のキー。

戻り値:

削除された原子、見つからない場合は None。

戻り値の型:

Optional[Atom]

del_group(key)

指定されたキーを持つ子グループをこのグループから削除する。

パラメータ:

key (Union[str, int]) -- 削除する子グループのキー。

戻り値:

削除された子グループ、見つからない場合は None。

戻り値の型:

Optional[AtomGroup]

static divide_path(path)

階層パス文字列を個々のコンポーネント文字列に分割する。

パラメータ:

path (Union[str, int]) -- 分割するパス文字列。

戻り値:

パスセグメント文字列のリスト。

戻り値の型:

List[str]

erase_atom(key)

指定されたキーを持つ原子をこのグループから削除する。

バージョン Use で非推奨: 代わりに remove_atom() を使用してください。

パラメータ:

key (Union[str, int]) -- 削除する原子のキー。

erase_group(key)

指定されたキーを持つ子グループをこのグループから削除する。

バージョン Use で非推奨: 代わりに remove_group() を使用してください。

パラメータ:

key (Union[str, int]) -- 削除する子グループのキー。

formula()

Hill体系を用いてフォーマットされた化学式を返す。

get_formula() の別名。

戻り値:

Hill体系の化学式。

戻り値の型:

str

get_atom(key)

指定されたキーまたは名前に一致する原子をこのグループから取得する。

パラメータ:

key (Union[str, int]) -- 検索する原子のキーまたは名前。

戻り値:

一致した原子への参照、見つからない場合は None。

戻り値の型:

Optional[Atom]

get_atom_keys()

すべての直接の原子のキーのリストを返す。

sort_atoms が "nice" に設定されている場合、キーは自然順にソートされる。

戻り値:

原子キーのリスト。

戻り値の型:

List[str]

get_atom_kinds()

階層内に存在する一意の元素記号のセットを返す。

戻り値:

元素記号のセット (例: {"C", "H", "N", "O"})。

戻り値の型:

Set[str]

get_atom_kinds_count()

元素記号を出現回数にマッピングした辞書を返す。

戻り値:

各元素の出現回数。

戻り値の型:

Dict[str, int]

get_atom_list()

このグループおよびすべての子孫グループ内のすべての原子を再帰的に収集して返す。

戻り値:

階層内のすべての原子のフラットなリスト。

戻り値の型:

List[Atom]

get_bond_list()

このグループおよびそのすべての子孫グループ内のすべての結合のリストを返す。

戻り値:

(atom1_path, atom2_path, order) タプルのリスト。

戻り値の型:

List[Tuple[str, str, int]]

get_box()

階層内のすべての原子を囲む軸平行バウンディングボックスを計算する。

box() の別名。

戻り値:

(min_position, max_position) のタプル。

戻り値の型:

Tuple[Position, Position]

get_family(query_path)

階層木を探索し、絶対パスに一致するグループを取得する。

最初に子孫を検索し、サブツリー内で見つからない場合は祖先グループを遡って木を検索する。相対パス ("." や ".." など) には未対応。

パラメータ:

query_path (Union[str, int]) -- ナビゲート先の絶対パス (例: "/protein/chainA")。

戻り値:

一致したグループ、見つからない場合は None。

戻り値の型:

Optional[AtomGroup]

get_formula()

Hill体系を用いてフォーマットされた化学式を計算する。

炭素が存在する場合、炭素が最初に記載され、続いて水素、その後に他のすべての元素がアルファベット順に記載される。それ以外の場合、すべての元素がアルファベット順に記載される。

戻り値:

Hill体系の化学式 (例: "C6H12O6")。

戻り値の型:

str

get_group(key)

指定されたキーまたは名前に一致する子グループをこのグループから取得する。

パラメータ:

key (Union[str, int]) -- 子グループのキーまたは名前。

戻り値:

一致した子グループへの参照、見つからない場合は None。

戻り値の型:

Optional[AtomGroup]

get_group_list()

すべての直接の子グループのキーのリストを返す。

sort_groups が "nice" に設定されている場合、キーは自然順にソートされる。

戻り値:

子グループキーのリスト。

戻り値の型:

List[str]

get_number_of_all_atoms()

このグループおよびそのすべての子孫グループ内の総原子数を返す。

戻り値:

サブツリー全体の総原子数。

戻り値の型:

int

get_number_of_atoms()

このグループに直接含まれる原子の数を返す。

戻り値:

直接の原子の数。

戻り値の型:

int

get_number_of_bonds()

このグループに直接保存されている結合の数を返す。

戻り値:

直接の結合の数。

戻り値の型:

int

get_number_of_groups()

このグループに直接含まれる子グループの数を返す。

戻り値:

直接の子グループの数。

戻り値の型:

int

get_path_list()

このグループおよび子孫グループ内のすべての原子のパスを再帰的に収集して返す。

戻り値:

階層内のすべての原子の完全パスのリスト。

戻り値の型:

List[str]

get_raw_data()

階層木をネストした辞書表現にシリアライズする。

戻り値:

グループおよび原子データを含むネストした辞書。

戻り値の型:

dict

get_xyz()

階層内のすべての原子に対するXYZフォーマットの座標ブロック文字列を生成する。

戻り値:

複数行のXYZ座標文字列。

戻り値の型:

str

groups()

このグループに直接含まれるすべての子グループの (key, group) ペアのリストを返す。

sort_groups が "nice" に設定されている場合、項目は自然順にソートされる。

戻り値:

(key, group) ペアのリスト。

戻り値の型:

List[Tuple[str, AtomGroup]]

has_atom(key)

指定されたキーまたは名前に一致する原子がこのグループに存在するか確認する。

パラメータ:

key (Union[str, int]) -- 検索する原子のキーまたは名前。

戻り値:

一致する原子が見つかった場合は True、そうでない場合は False。

戻り値の型:

bool

has_atomkey(key)

指定されたキーを持つ原子がこのグループに直接存在するか確認する。

パラメータ:

key (Union[str, int]) -- 原子のキー。

戻り値:

そのキーを持つ原子が存在する場合は True、そうでない場合は False。

戻り値の型:

bool

has_atomname(name)

指定された名前を持つ原子がこのグループに直接存在するか確認する。

パラメータ:

name (Union[str, int]) -- 原子の名前。

戻り値:

その名前を持つ原子が存在する場合は True、そうでない場合は False。

戻り値の型:

bool

has_group(key)

指定されたキーまたは名前に一致する子グループがこのグループに存在するか確認する。

パラメータ:

key (Union[str, int]) -- 子グループのキーまたは名前。

戻り値:

一致する子グループが見つかった場合は True、そうでない場合は False。

戻り値の型:

bool

has_groupkey(key)

指定されたキーを持つ子グループがこのグループに直接存在するか確認する。

パラメータ:

key (Union[str, int]) -- 子グループのキー。

戻り値:

そのキーを持つ子グループが存在する場合は True、そうでない場合は False。

戻り値の型:

bool

has_groupname(name)

指定された名前を持つ子グループがこのグループに直接存在するか確認する。

パラメータ:

name (Union[str, int]) -- 子グループの名前。

戻り値:

その名前を持つ子グループが存在する場合は True、そうでない場合は False。

戻り値の型:

bool

is_chain_level()

このグループがチェインレベル (パス深度2) かどうかを確認する。

戻り値:

チェインレベルの場合は True、そうでない場合は False。

戻り値の型:

bool

is_model_level()

このグループがモデルレベル (パス深度1) かどうかを確認する。

戻り値:

モデルレベルの場合は True、そうでない場合は False。

戻り値の型:

bool

is_residue_level()

このグループが残基レベル (パス深度3) かどうかを確認する。

戻り値:

残基レベルの場合は True、そうでない場合は False。

戻り値の型:

bool

merge(other)

別の AtomGroup 階層をこのグループにインプレースでマージする。

サブグループと原子は再帰的にマージされる。other からの既存の結合および二次構造情報も組み込まれる。

パラメータ:

other (AtomGroup) -- このグループにマージする原子グループ。

name

この原子グループの名前。

戻り値:

グループ名。

戻り値の型:

str

nuclei_charge

このグループおよびすべての子孫グループ内のすべての原子の核電荷。

原子番号がゼロの原子については、代わりにその部分電荷が使用される。

戻り値:

全核電荷。

戻り値の型:

float

parent

階層における親 AtomGroup、ルートグループの場合は None。

戻り値:

親グループへの参照、または None。

戻り値の型:

Optional[AtomGroup]

path

ルートからのこのグループの階層パス (例: "/model_1/A/")。

戻り値:

階層パス。

戻り値の型:

str

path_depth()

階層におけるこのグループの深度を返す。

戻り値:

パス深度 (ルートなら0、モデルなら1、チェインなら2、残基なら3)。

戻り値の型:

int

pickup_atoms(key_or_name)

キーまたは名前が対象文字列と一致する原子を再帰的に検索して収集する。

パラメータ:

key_or_name (Union[str, int]) -- 一致対象の原子キーまたは名前。

戻り値:

階層全体で見つかった一致する原子のリスト。

戻り値の型:

List[Atom]

real_nuclei_charge

このグループおよびすべての子孫グループ内のすべての原子の原子番号の総和。

戻り値:

原子番号の総和。

戻り値の型:

float

remove_atom(key)

指定されたキーを持つ原子をこのグループから削除する。

パラメータ:

key (Union[str, int]) -- 削除する原子のキー。

戻り値:

削除された原子、見つからない場合は None。

戻り値の型:

Optional[Atom]

remove_group(key)

指定されたキーを持つ子グループをこのグループから削除する。

パラメータ:

key (Union[str, int]) -- 削除する子グループのキー。

戻り値:

削除された子グループ、見つからない場合は None。

戻り値の型:

Optional[AtomGroup]

restructure(reference, range=1e-05)

座標の近接性に基づいて参照 AtomGroup の階層に一致するように原子を再構成する。

パラメータ:
  • reference (AtomGroup) -- 対象の階層を提供する参照構造。

  • range (float, optional) -- オングストローム単位の近接距離閾値。デフォルトは 1.0e-5。

戻り値:

再構成された新しい原子グループ。

戻り値の型:

AtomGroup

rotate(rotmat)

3x3 回転行列を用いてこの階層内のすべての原子座標を回転させる。

パラメータ:

rotmat (Union[Matrix, Any]) -- 3x3 回転行列。Matrix インスタンス、または rows, cols, get(row, col) を提供する任意のオブジェクトを受け付ける。

例外:
  • TypeError -- rotmat が Matrix でないか、rows, cols, get を欠いている場合。

  • ValueError -- rotmat の次元が 3x3 でない場合。

save_csv(path)

階層的な原子およびグループデータをCSVファイルに出力する。

CSVは一時ファイルを介してアトミックに書き込まれる。

パラメータ:

path (str) -- CSVファイルの出力先ファイルパス。

例外:

BrInputError -- ファイルの作成、書き込み、またはリネームに失敗した場合。

secondary_structure

この残基グループの二次構造コード ('H', 'E', '-', または None)。

戻り値:

ヘリックスは 'H'、ストランドは 'E'、ループは '-'、または None。

戻り値の型:

Optional[str]

select(selector)

セレクタに一致する原子/グループのサブセットを新しい AtomGroup に抽出する。

パラメータ:

selector (Union[Selector, Any]) -- セレクタオブジェクト (例: SelectSymbol, SelectName, SelectPath など)、または is_match メソッドを提供する任意のオブジェクト。

戻り値:

一致したコンポーネントのみを含む新しい原子グループ。

戻り値の型:

AtomGroup

例外:

TypeError -- selector が認識可能なセレクタ型でない場合。

set_atom(key, atom)

このグループ内、または指定された階層パスに原子を挿入する。

key にパス区切り文字が含まれる場合 (例: "subgroup/C1")、必要に応じて中間子グループが作成され、原子は末端に挿入される。挿入された原子は木内にディープコピーされる。

パラメータ:
  • key (Union[str, int]) -- 原子のキー、または相対/絶対パス。

  • atom (Atom) -- 挿入する原子。

例外:

TypeError -- atom が Atom インスタンスでない場合。

set_by_dict_data(data)

グループの内容をネストした辞書から読み込まれたデータで置き換える。

トップレベルの認識されないキーは無視される。

パラメータ:

data (dict) -- 木データを表すネストした辞書。

戻り値:

辞書データが設定された自身 (self)。

戻り値の型:

AtomGroup

例外:
  • TypeError -- data が dict でない場合。

  • BrValueError -- 辞書内のネストした原子データが無効な場合。

set_group(key, group)

指定されたキーでこのグループに子グループを挿入する。

挿入されたグループは木内にディープコピーされる。

パラメータ:
  • key (Union[str, int]) -- 子グループのキー。

  • group (AtomGroup) -- 挿入する子グループ。

例外:

TypeError -- group が AtomGroup インスタンスでない場合。

setup()

組み込みCCDテンプレートデータベースを使用して、標準的な結合、結合次数、原子タイプを割り当てる。

例外:

BrValueError -- 原子の元素記号が認識されないか、共有結合半径データを欠いている場合。

setup_with_db(db)

提供されたCCDテンプレートデータベースを使用して、結合、結合次数、原子タイプを割り当てる。

パラメータ:

db (CcdTemplateDb) -- Chemical Component Dictionary (CCD) テンプレートデータベース。

例外:

BrValueError -- 原子の元素記号が認識されないか、共有結合半径データを欠いている場合。

shift_by(dir)

変位ベクトルによりこの階層内のすべての原子座標を並進させる。

パラメータ:

dir (Union[Position, str, Sequence[float]]) -- 並進変位ベクトル。

例外:

TypeError -- dir を Position に変換できない場合。

sort_atoms

直接の原子のソートモード。

"nice" に設定すると、原子へのアクセス時に原子キーの自然順 (英数字) ソート (例: アルファベット順の "C1", "C10", "C2" ではなく "C1", "C2", "C10") が有効になる。None に設定すると挿入順が維持される。

戻り値:

ソートモード ("nice" または None)。

戻り値の型:

Optional[str]

sort_groups

直接の子グループのソートモード。

"nice" に設定すると、子グループへのアクセス時にグループキーの自然順 (英数字) ソート (例: アルファベット順の "res1", "res10", "res2" ではなく "res1", "res2", "res10") が有効になる。None に設定すると挿入順が維持される。

戻り値:

ソートモード ("nice" または None)。

戻り値の型:

Optional[str]

sum_of_atomic_number()

このグループおよび子孫グループ内のすべての原子の原子番号の総和を返す。

戻り値:

原子番号の総和。

戻り値の型:

float

validate_schema()

標準階層スキーマに対してこのグループを検証する。

戻り値:

検出されたスキーマ違反のリスト。

戻り値の型:

List[SchemaViolation]

weight

このグループおよび子孫グループ内のすべての原子の総分子量。

戻り値:

統一原子質量単位 (Da) での総分子量。

戻り値の型:

float