MoleculeModify
MoleculeModify[mol,"mod"]
変更"mod"を適用することで分子 mol から派生した分子または分子のリストを与える.
MoleculeModify[mol,{"mod",specs}]
変更"mod"を追加的な指定 specs とともに適用することで,分子 mol から派生した分子を与える.
MoleculeModify["mod"]
分子に適用可能なMoleculeModifyの演算子形を表す.
詳細とオプション
- 次は,分子の原子リストを変更する操作である.
-
{"AddAtom",atom} 結合されていない原子を加える {"AddAtom",{atom1,atom2,…}} 原子のリストを加える {"DeleteAtom",a} インデックス a の原子を削除する {"DeleteAtom",{a1,a2,…}} 指定された原子を削除する {"ReplaceAtom",aatom} インデックスが a の原子を atom で置き換える {"ReplaceAtom",{a1atom1,…}} 原子 ai を atomiで置き換える - atom は次のいずれかの形でなければならない.
-
"sym" 元素記号が"sym"(例:"C","Cl")の原子 Entity["Element",element] 指定された元素の原子 Entity["Isotope",isotope] 指定された同位体の原子 Atom["sym","prop"val,…] 指定された特性を持つ原子 - "AddAtom"は,分子の残りの部分との結合がない,結合されていない原子を加える.新たな原子と結合の両方を加えたければ"AddBond"を使うとよい.
- "DeleteAtom"は問題となっている原子への任意の結合を削除する.
- 原子を削除または置換する場合は,適切な原子価を保つために明示的な水素原子の数が調整されるかもしれない.結合されていない水素原子は除かれる.この動作を無効にしたければ,オプションValenceErrorHandlingFalseを使うとよい.
- 通常通り追加された原子には暗黙の水素原子が追加される.暗黙の水素原子を無効にしたければ,新規の原子指定で"HydrogenCount"Noneを使うとよい.
- 次は,原子の特性を変更する操作である.
-
{"SetFormalCharge",aval} インデックスが a の原子の形式電荷を val に設定する {"SetMassNumber",aval} インデックスが a の原子の質量数を val に設定する {"SetUnpairedElectronCount",aval} 指定された原子のラジカル電子の数を設定する - 複数の原子の特性を変更したければ,規則のリスト{a1val1,a2val2,…}を使うとよい.
- 次は,分子の結合リストを変更する操作である.
-
{"AddBond",{a1,a2}} インデックスが a1と a2の原子間に単結合を加える {"AddBond",Bond[{a1,a2},"type"]} 指定された原子間に指定されたタイプの結合を加える {"AddBond",Bond[{a1,atom},type]} インデックス a1の原子と atom で表される新たな原子の間の結合 {"DeleteBond",{a1,a2}} 指定されたインデックスの原子間の結合を除く {"SetBondType",{a1,a2}"type"} インデックスが a1と a2の原子の間の結合の結合タイプを設定する -
"SetAromaticity" 局所化された単結合および二重結合を芳香族に変換する "Kekulize" 芳香結合を局所化された単結合および二重結合に変換する {"RenumberAtoms",{a1,a2,…}} インデックス aiの原子が原子リストの i の位置にくるように,原子リストを並べ替える {"SetMetaInformation",meta} 分子のMetaInformationを連想つまりキーと値のペアである meta に設定する "MakeHydrogensExplicit" 任意の暗黙の水素を明示的なものに変換する "MakeHydrogensImplicit" 水素原子の存在が通常の原子価則から推測される場合は,明示的な水素原子を削除する - 分子の3D配置についての情報は,3D幾何とは独立に,StereochemistryElementsオプションの値に保存される.次の操作は立体化学の要素を変更する.
-
"AssignStereochemistryFromCoordinates" 3D座標からの四面体結合と二重結合の立体化学要素を割り当てる "RemoveStereochemistry" 定義された任意の立体化学を削除する - 原子あるいは結合について定義された立体化学を変更したければ,以下の操作のいずれかを使うとよい.
-
{"SetAtomChirality",aval} 原子のキラル値を"R"または"S"に設定する {"SetBondStereo",{a1,a2}val} 結合の立体値を"E"または"E"に設定する - 原子あるいは結合の立体化学を変えるとオンデマンドで生成される3D座標に影響が出る.分子がすでに3D座標を含んでいる場合は,立体化学を変更するとこれが廃棄される.
-
{"ReplaceSubstructure",pattrepl} patt のすべての出現を repl で置換する {"ReplaceSubstructure",pattrepl,attchmts} パターンと置換の間の指定された付着点を使って patt を repl で置換する {"ReplaceSubstructureList",pattrepl} patt の各出現を repl で置換してリストを返す - ここで,repl はMoleculeオブジェクトまたはSMILES文字列でなければならず,patt は次のいずれかの形を持つことができる.
-
MoleculePattern[…] 有効な分子パターンオブジェクト {a1,a2,…} 連結された部分構造からなる原子インデックスのリスト {{a1,a2,…},{b1,b2,…},…} それぞれが repl で置換される原子インデックスのリストのリスト - attchmts はパターン原子インデックスから置換原子インデックスへの規則のリスト{p1r1,…}でなければならない.付着点が提供されない場合は,パターンと置換からの最初と最後の原子がマッチされる.
- 分子を2Dあるいは3Dでプロットするとき,座標はそれぞれAtomCoordinatesオプションとAtomDiagramCoordinates オプションの値から取られる.分子式内に座標がない場合は,自動的に生成される.
- 次の操作は自動座標をあらかじめ計算し,それらを含むMoleculeオブジェクトに返す.
-
"ComputeAtomCoordinates" 分子の自動3D座標を計算する {"ComputeAtomCoordinates",opts} オプション opts を使って原子の座標を計算する {"GenerateConformers",n} 3D座標を異なるシード値で n 回計算し,分子のリストを返す "ComputeAtomDiagramCoordinates" 2D座標を計算する - "ComputeAtomCoordinates"は分子を埋め込むために暗黙のすべての水素を明示的にする.
- "ComputeAtomCoordinates"は次のオプションを取る.
-
"Canonicalize" True 座標を正規化するかどうか "EnergyMinimize" True 座標について力場の最小化を行うかどうか RandomSeeding 1234 乱数のシード - "GenerateConformers"はデフォルトでは最小化されていない配座異性体を返す.
- "ComputeAtomDiagramCoordinates"はMoleculePlotのデフォルトの出力と一致するように,炭素に結合した水素を暗黙に,ヘテロ原子に結合した水素を明示的にする.{"ComputeAtomDiagramCoordinates",IncludeHydrogensTrue}を使用して,すべての原子を含める.
- 単一原子の座標を変えたければ以下を使うとよい.
-
{"SetAtomPosition",a{x,y,z}} 指定された原子の位置を設定する - 内部の配置を変えずに原子の座標を正規化したければ以下を使うとよい.
-
"CanonicalizeAtomCoordinates" 分子の重心を原点に平行移動し,主軸をデカルト軸に揃える - 一般的な幾何変換には以下を使う.
-
{"TransformAtomCoordinates",tfun} 変換関数 tfun を座標に適用する - ここで,tfun はTransformationFunctionオブジェクト,つまりTranslationTransform,ReflectionTransform等,あるいはQuantityArrayオブジェクトを操作して返す任意の関数でなければならない.
- 以下の操作は内部座標を変更する.
-
{"SetBondLength", {a1,a2}val} 指定された原子間の結合の長さを設定する {"SetBondAngle", {a1,a2,a3}val} 指定された原子間の角度を設定する {"SetTorsionAngle",{a1,a2,a3,a4}val} 連続的に結合された4つの原子のねじれ角を設定する - これらの操作は長さのリストあるいは{{a1,a2}val1,…}のような角度の変更もサポートする.
- ここで val はQuantityオブジェクトあるいは数値でなければならない.数値の場合の単位は"Angstroms"または"AngularDegrees"であると解釈される.
- "SetBondLength"については,原子 a1と原子 a2は結合されていなければならず,両者の間の結合は環の中にあってはならない.a2に結合されているすべての原子が移動される.
- "SetBondAngle"については,原子{a1,a2}と原子{a2,a3}は結合されていなければならず.両結合は環の中にあってはならない.a3に結合されているすべての原子が移動される.
- "SetTorsionAngle"については,{a1,a2},{a2,a3},{a3,a4}は結合されていなければならず.結合{a2,a3}は環の中にあってはならない.a4に結合されているすべての原子が移動される.
- MMFF力場についての座標を最小にするためには以下を使う.
-
"EnergyMinimizeAtomCoordinates" 総力場エネルギーを最小にする {"EnergyMinimizeAtomCoordinates",ff} 力場 ff と"UFF","MMFF94","MMFF94s"のいずれかを使ってエネルギーを最小にする {"EnergyMinimizeAtomCoordinates",constraints} 力場に加えられた制約条件でエネルギーを最小にする - constraints は次の形の,結合,角度,あるいはねじれ角の制約のリストでなければならない.
-
{a1,a2}d 2つの原子間の距離を指定する {a1,a2,a3}θ 3つの原子間の角度を指定する {a1,a2,a3,a4}θ 4つの原子間のねじれ角を指定する <… > キーが"Atoms","Value" "ForceConstant"の連想
原子の変更
結合の変更
General Modifications
立体化学の変更
部分構造の置き換え
座標の生成
幾何変更
例題
すべて開くすべて閉じる例 (4)
スコープ (37)
"CanonicalizeAtomCoordinates" (1)
"XYZ"ファイルから構造をインポートし,3D座標を正規化する:
"CanonicalizeAtomCoordinates"は分子を平行移動し,重心を原点に移動し,主軸がデカルト軸と揃うように回転させる:
"ComputeAtomCoordinates" (2)
分子がSMILES文字列あるいは名前のような識別子から作られたとき,座標は即座には計算されない:
"ComputeAtomCoordinates"を使って座標を計算し分子式に保存する:
RandomSeedingオプションを使って別の立体配座を生成する:
"ComputeAtomDiagramCoordinates" (2)
MoleculePlotを使って分子を2Dで見ると,炭素原子に付いた水素原子はデフォルトで隠される.オクタノールでは,デフォルトで,ヒドロキシル水素だけが表示される:
"ComputeAtomDiagramCoordinates"は表示されないこれらの水素を削除して明示的な水素だけを表示する:
"DeleteAtom" (2)
"DeleteAtom"を使ってヘキサノールをヘキサンに変換する:
一致するEntityを求める:
原子が削除されると,削除された原子に結び付けられていた水素もまた削除され,重原子の満たされていない原子価は暗黙の水素で満たされる.ValenceErrorHandling->Falseを使ってこの動作を無効にし,不対電子を残すようにする:
"EnergyMinimizeAtomCoordinates" (1)
"GenerateConformers" (1)
"SetBondType" (1)
"SetMassNumber" (1)
質量数を13に設定することで,メバロノラクトンのC-2に 13Cでラベルを付ける:
AtomListを使ってラベルが付いた炭素を求める:
"SetMetaInformation" (1)
"TransformAtomCoordinates" (2)
テキスト
Wolfram Research (2019), MoleculeModify, Wolfram言語関数, https://reference.wolfram.com/language/ref/MoleculeModify.html (2020年に更新).
CMS
Wolfram Language. 2019. "MoleculeModify." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/MoleculeModify.html.
APA
Wolfram Language. (2019). MoleculeModify. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MoleculeModify.html