Pathモジュール

ReactPath

インスタンス化方法

  • nameとAtomsを与える方法

from grrmpy.path import ReactPath
from ase.io import iread

atoms_list = [atoms fro atoms in iread(atoms)] # 5つのAtomsが格納されている
name = ["EQ0","TS0","EQ1","TS1","EQ2"]
data = {":name":name,"atoms":atoms}
path = ReactPath(data)
  • nameとenergyを与える方法この方法は現在,非推奨. ReactPathは機能するがReactPathsが機能しない.この方法でインスタンス化したReactPathからReactPathsをインスタンス化しようとするとエラーになる

from grrmpy.path import ReactPath
from ase.io import iread

energy = [-201.3, -123.3, -222.3, -192.6, -200.1] # Hartree単位
name = ["EQ0","TS0","EQ1","TS1","EQ2"]
data = {"name":name,"energy":energy}
path = ReactPath(data,unit="Hartree") # eV単位以外の場合は単位を設定する

プレビュー

path.preview()
../../_images/preview.png

Excelへ保存

path.write_excel("Sample.xlsx")
../../_images/excel.png

htmlへ保存

path.write_html("Sample.html") # Sample.htmlに保存
path.write_html() # 標準出力 空白が表示される場合,path.write_html().show(renderer="sphinx_gallery")
../../_images/path_html.png
class grrmpy.path.reaction_path.ReactPath(data: dict, positions: ~typing.Optional[list] = None, mask=None, barrier_less_index=[], title=None, unit='eV', calc_func=<function pfp_calculator>)[ソース]

Parameters:

data: dict or DataFrame

energyとnameまたはatomsとnameの2つのキーを持つ辞書.

  • 'energy': list of float
    エネルギーをリストで与える
    単位はkJ/mol, eV単位で与える場合,unit='eV'とする
  • 'atoms': list of Atoms
    Atomsのリスト
  • 'name'list of str
    Ex) ['EQ0','TS1','EQ3','TS3','EQ2','PT2','EQ5']
    'TS','PT'の文字列を含んでいる場合,それぞれグラフ描写時に赤色,緑色で表示される
title: srt
Pathを識別するためにタイトルを付ける事が可能.
デフォルトはNone
positions: list of bool
solidラインの位置をカスタマイズする
使用方法は を参照
指定しない場合はすべてTrueリストが作成される
unit: string

dataの設定の際に'energy'で設定した場合,与えたエネルギーの単位を記入する 'kJ/mol','Hartree','eV'のいずれか

clac_funct: function object
dataの設定の際に'atoms'で設定した場合,calculatorを与える関数が必要.
デフォルトではPFP.
mask: list of bool

dot線を書かない部分をFalseにする.Noneの場合全てTrueのリスト

barrier_less_index: list of int
バリアレスの部分のindex番号(設定は任意)
EQ1-TS0-EQ2-EQ3でEQ2-EQ3の部分がバリアレスの場合,barrier_less_index=[2]

注釈

constraintsはFixAtomsだけfromdict,frompkl変換できる

classmethod frompkl(openfile, calc_func=<function pfp_calculator>)[ソース]

topklで作成したpickleファイルからオブジェクト再生する

>>> path = ReactPath.frompkl("Path.pickle")
get_fig(mask=None)[ソース]

matplotlibのfigを返す

preview(mask=None)[ソース]

Notebook上でグラフを表示(matplotlib)

topkl(outfile)[ソース]

現在のオブジェクトをpickle化する

>>> path.topkl("Path.pickle")
write_excel(outfile: str, mask=None, **kwargs)[ソース]

Excellにグラフを作成する

その他の引数はreaction_path.functions.to_excell()を参照

Parameters:

outfile: str
Excelファイル名
write_html(outfile=None, mask=None, annotation=[], barrier_less_index=None, **kwargs)[ソース]

反応座標グラフをhtmlに保存する

Parameters:

outfile: str or Path
出力先のhtmlファイル
Noneの場合は標準出力する

サンプル

通常

>>> path.write_html("Sample.html")

アノテーション(x座標が14.5の部分に"Sample text"と入力)

>>> path.write_html("Sample.html",annotation=[(14.5,"Sample text")])

create_reactpath

テキストファイルからReactPathオブジェクトを作成する

例としてEQ_Listフォルダに0.traj,1.traj...のEQ構造が,TS_Listフォルダに0.traj,1.traj...のTS構造がある事を想定する.
Path.datファイルの中身は
[Dir]
EQ: ./EQ_List/
TS: ./TS_List/
PT:

[ReactPath]
path: EQ0;TS1;EQ2;TS0;EQ1~EQ5|EQ3

上のファイルは次のように表記することもできる

[ReactPath]
EQ: ./EQ_List/
TS: ./TS_List/
PT:
path: ${EQ}0;${TS}1;${EQ}2;${TS}0;${EQ}1~${EQ}5|${EQ}3
name: ["EQ0","TS1","EQ2","TS0","EQ1","EQ2","EQ0"]
from grrmpy.path import create_reactpath
react_path = create_reactpath("Path.dat")
react_path.write_html("Sample.html")
grrmpy.path.create_reactpath.create_reactpath(file)[ソース]