ジオメトリ
Geometries クラス
- class matlanticgrrm.geometry.geometries.Geometries(atoms_list, target0=None, target1=[], target2=[], mult=1, mols=None, smileses=None, geometry_list=None, **kwargs)[ソース]
同一構造の判定や類似構造の判定などを行なえるクラス.
target0,target1,target2に指定した原子の結合を見て同一構造か判断する.
Parameters:
- atoms_list: list of Atoms
Atomsオブジェクトのリスト
- target0: list of integer
target0,target1,target2に指定した原子との結合状態を見る
- target1: list of integer
target0,target1に指定した原子との結合状態を見る
- target2: list of integer
target0に指定した原子との結合状態を見る
- mult: float
- 結合判定を行なう時の係数大きい程,遠く離れていても結合しているとみなす
- kargs:
- 共有結合半径を変更するex) Al = 0.25
Property:
- smileses: list of string
atoms_listのSMILES表記のリスト(全て単結合として判断する)
- mols:
RDkitのMolオブジェクトのリスト
- group: list of integer
- atoms_list中の同じ構造を推定し,グループ番号を振って返す.ex)[0,0,1,1,0,0,2,2] の場合,EQ0,EQ1,EQ4,EQ5が同じグループに属している.propertyであるが,呼び出し時にgroup化の計算を行なう. 1度行えばキャッシュを残すので次回の呼び出しには時間はかからない.atoms_list,mult,target012を変更した際には再計算される.
- cluster: 2D list of integer
- atoms_list中の同じ構造を推定し,同じグループごとにまとめる(index番号でまとめる)ex)[[0,1,4,5],[2,3],[6,7]] の場合,EQ0,EQ1,EQ4,EQ5が同じグループに属している.propertyであるが,呼び出し時にgroup化の計算を行なう. 1度行えばキャッシュを残すので次回の呼び出しには時間はかからない.atoms_list,mult,target012を変更した際には再計算される.
- atoms_list: list of Atoms
- 引数に指定したAtomsリスト上書きする場合はset_mult()を用いる. 上書きするとsmileses,molsも自動で変更される.
- mult: float
- 引数に指定したmult.上書きする場合はset_mult()を用いる. 上書きするとsmileses,molsも自動で変更される.
- target0: list of integer
- 引数に指定したtarget0上書きする場合はset_target0()を用いる. 上書きするとsmileses,molsも自動で変更される.
- target1: list of integer
- 引数に指定したtarget1上書きする場合はset_target1()を用いる. 上書きするとsmileses,molsも自動で変更される.
- target2: list of integer
- 引数に指定したtarget2上書きする場合はset_target2()を用いる. 上書きするとsmileses,molsも自動で変更される.
Examples:
from matlanticgrrm.grrmdata import log2atoms from matlanticgrrm.geometry import Geometries eq_list1 = log2atoms("sample1_EQ_list.log") eq_list2 = log2atoms("sample2_EQ_list.log") #eq_list1とeq_list2は同じ要素数 eq_geometries1 = Geometries(eq_list1,[20,21,22,23,24,25,26,27,28]) eq_geometries2 = Geometries(eq_list2,[20,21,22,23,24,25,26,27,28]) eq_geometries1[0] == eq_geometries1[2] >>> [True] #EQ0とEQ2は同じ構造 eq_geometries1[[0,1,2]] == eq_geometries1[[2,4,5]] >>> [True,False,False] #EQ0-EQ2は同じ構造,EQ1-eQ4とEQ2-EQ5は異なる構造 eq_geometries1 == eq_geometries2 >>> [True,False,True,True,....] # eq_list1のEQ0とeq_list2のEQ0の構造は同じ
- same(idx, other=None)[ソース]
同じ構造を検索する
idxと同じ構造を検索するotherにGeometriesを設定した場合はidxで指定した構造がotherにないか検索するother=Noneの場合, 自身の構造の中からidxと同じ構造を検索する同じ構造のindex番号のリストを返すParameters:
- idx: int
対象の構造のindex番号
- other: Geometries
Geometriesオブジェクト
Exsamples:
from matlanticgrrm.grrmdata import log2atoms from matlanticgrrm.geometry import Geometries eq_list = log2atoms("*_EQ_list.log") eq_geometries = Geometries(eq_list,[20,21,22,23,24,25,26,27,28]) eq_geometries.same(6) # --> [6,7,21] #EQ6はEQ,6,21と同じ構造である
- similar(idx, method='maccs')[ソース]
類似構造を検索する
idxで指定した構造と類似の構造を検索する類似度の高い順に[(index番号,類似度)]のリストで返す類似度は1に近い程,類似性が高いParameters:
- idx: int
index番号
- method:
"maccs","tanimoto","avalon"の三種類がある.
Examples:
eq_list = log2atoms("*_EQ_list.log") eq_geometries = Geometries(eq_list,[20,21,22,23,24,25,26,27,28]) eq_geometries.similar(6) #EQ6はEQ,6,21と同じ構造である >>> [(6, 1.0), >>> (7, 1.0), >>> (21, 1.0), >>> (2, 0.92), >>> (5, 0.92), >>> (8, 0.92), >>> (9, 0.92), >>> (10, 0.92), >>> (11, 0.92), >>> (12, 0.92), >>> ... >>> ... # EQ6と構造似ている順で出力される