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,}}原子 aiatomiで置き換える
  • 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}}インデックスが a1a2の原子間に単結合を加える
    {"AddBond",Bond[{a1,a2},"type"]}指定された原子間に指定されたタイプの結合を加える
    {"AddBond",Bond[{a1,atom},type]}インデックス a1の原子と atom で表される新たな原子の間の結合
    {"DeleteBond",{a1,a2}}指定されたインデックスの原子間の結合を除く
    {"SetBondType",{a1,a2}"type"}インデックスが a1a2の原子の間の結合の結合タイプを設定する
  • General Modifications
  • "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}パターンと置換の間の指定された付着点を使って pattrepl で置換する
    {"ReplaceSubstructureList",pattrepl}patt の各出現を repl で置換してリストを返す
  • ここで,replMoleculeオブジェクトまたは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座標について力場の最小化を行うかどうか
    RandomSeeding1234乱数のシード
  • "GenerateConformers"はデフォルトでは最小化されていない配座異性体を返す.
  • "ComputeAtomDiagramCoordinates"MoleculePlotのデフォルトの出力と一致するように,炭素に結合した水素を暗黙に,ヘテロ原子に結合した水素を明示的にする.{"ComputeAtomDiagramCoordinates",IncludeHydrogensTrue}を使用して,すべての原子を含める.
  • 幾何変更
  • 単一原子の座標を変えたければ以下を使うとよい.
  • {"SetAtomPosition",a{x,y,z}}指定された原子の位置を設定する
  • 内部の配置を変えずに原子の座標を正規化したければ以下を使うとよい.
  • "CanonicalizeAtomCoordinates"分子の重心を原点に平行移動し,主軸をデカルト軸に揃える
  • 一般的な幾何変換には以下を使う.
  • {"TransformAtomCoordinates",tfun}変換関数 tfun を座標に適用する
  • ここで,tfunTransformationFunctionオブジェクト,つまりTranslationTransformReflectionTransform等,あるいはQuantityArrayオブジェクトを操作して返す任意の関数でなければならない.
  • 以下の操作は内部座標を変更する.
  • {"SetBondLength", {a1,a2}val}指定された原子間の結合の長さを設定する
    {"SetBondAngle", {a1,a2,a3}val}指定された原子間の角度を設定する
    {"SetTorsionAngle",{a1,a2,a3,a4}val}連続的に結合された4つの原子のねじれ角を設定する
  • これらの操作は長さのリストあるいは{{a1,a2}val1,}のような角度の変更もサポートする.
  • ここで valQuantityオブジェクトあるいは数値でなければならない.数値の場合の単位は"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}d2つの原子間の距離を指定する
    {a1,a2,a3}θ3つの原子間の角度を指定する
    {a1,a2,a3,a4}θ4つの原子間のねじれ角を指定する
    <||>キーが"Atoms""Value" "ForceConstant"の連想

例題

すべて開くすべて閉じる

  (4)

プロパンに炭素原子を加える:

新たな原子に結合を加える:

結合を加えてヘキサンをシクロヘキサンにする:

結合を除いてシクロヘキサンをヘキサンにする:

TNT内のすべてのニトロ基をメチル基で置換する:

"ReplaceSubstructureList"を使って一度に1つのニトロ基を置換する:

スコープ  (37)

"AddAtom"  (1)

分子に原子を加える:

分子のリストを加える:

"AddBond"  (1)

分子に結合を加える:

原子に結合のリストを加える:

"AssignStereochemistryFromCoordinates"  (1)

分子の3D座標を使って立体化学を推測する.まず,定義された立体化学なしで,原子,結合,座標で分子を作る:

"CanonicalizeAtomCoordinates"  (1)

"XYZ"ファイルから構造をインポートし,3D座標を正規化する:

インポートした後で,分子の重心と主軸を計算する:

"CanonicalizeAtomCoordinates"は分子を平行移動し,重心を原点に移動し,主軸がデカルト軸と揃うように回転させる:

"ComputeAtomCoordinates"  (2)

分子がSMILES文字列あるいは名前のような識別子から作られたとき,座標は即座には計算されない:

"ComputeAtomCoordinates"を使って座標を計算し分子式に保存する:

RandomSeedingオプションを使って別の立体配座を生成する:

結果の分子は異なる配座エネルギーを持つ:

"ComputeAtomDiagramCoordinates"  (2)

MoleculePlotを使って分子を2Dで見ると,炭素原子に付いた水素原子はデフォルトで隠される.オクタノールでは,デフォルトで,ヒドロキシル水素だけが表示される:

"ComputeAtomDiagramCoordinates"は表示されないこれらの水素を削除して明示的な水素だけを表示する:

これで,座標が分子式に保存された:

デフォルトで1つの水素しか表示されないので,返される分子には明示的な水素が1つある:

座標は分子プロットで使われているものと厳密に一致する:

デフォルトの水素,すべての水素,あるいは水素のない原子図座標を計算する:

"DeleteAtom"  (2)

"DeleteAtom"を使ってヘキサノールをヘキサンに変換する:

一致するEntityを求める:

原子が削除されると,削除された原子に結び付けられていた水素もまた削除され,重原子の満たされていない原子価は暗黙の水素で満たされる.ValenceErrorHandling->Falseを使ってこの動作を無効にし,不対電子を残すようにする:

"DeleteBond"  (2)

非環結合を削除して非結合構造を作る:

環結合を削除する:

"EnergyMinimizeAtomCoordinates"  (1)

"XYZ"ファイルから構造をインポートし,MMFF力場を使ってエネルギーを最小にする:

配座エネルギーが低下したことを確認する:

新たな構造を古い構造と一緒に表示する:

"GenerateConformers"  (1)

たとえば,エネルギー地形の大部分をサンプリングするために,分子の形態の集合を持つことが望ましい場合がよくある.シクロヘキサンの100の配座異性体を生成する:

配座異性体には大きなエネルギーの広がりがある:

力場を使用して立体構造を最小化した後で,それらはエネルギー的に2つのグループに分類される:

これらのグループ化は,いわゆる「椅子」および「ツイストボート」立体配座に対応する.これらは,それぞれ,ポテンシャルエネルギー面上の最小値および極小値である.各グループから1つの配座異性体を選択し,3Dでプロットする:

"Kekulize"  (1)

デフォルトで,芳香族分子は非局所化された"Aromatic"結合タイプを持つ:

"MakeHydrogensImplicit"  (1)

分子からすべての水素原子を削除する:

"RemoveStereochemistry"  (1)

明示的な立体情報を分子から削除し,キラリティを未定義にする:

"RenumberAtoms"  (1)

分子内の電子の並び順を変える:

"ReplaceAtom"  (1)

分子中の特定の原子を別のタイプの原子で置換する.例えば,酢酸をチオ酢酸に変換する:

"ReplaceSubstructure"  (1)

エストラジオールの脂肪族D環の水酸基をカルボニルで置換してエストロンを作る:

"ReplaceSubstructureList"  (1)

グリセロールの各メチルエーテルを作る:

"SetAromaticity"  (1)

局所化された単結合と二重結合を芳香結合に変更する:

"SetAtomChirality"  (1)

D形グルコースをD形マンノースに変換する:

"SetAtomPosition"  (1)

分子をインポートし,単一の原子の座標を設定する:

"SetBondAngle"  (3)

3つの原子間の角度を設定する:

複数の結合角度を設定する:

非結合原子には角度は設定できない:

環内の結合角度は設定できない:

"SetBondLength"  (1)

結合された2つの原子間の距離を設定する:

"SetBondStereo"  (1)

自然のE-桂皮アルデヒドをZ形式に変換する:

"SetBondType"  (1)

"SetFormalCharge"  (1)

フェニルアラニンの両性イオンを作る:

"SetMassNumber"  (1)

質量数を13に設定することで,メバロノラクトンのC-2に13Cでラベルを付ける:

AtomListを使ってラベルが付いた炭素を求める:

質量数を2に設定することで,メバロノラクトンの5-pro-S水素に重水素のラベルを付ける:

"SetMetaInformation"  (1)

多くの場合,研究室ではサンプルやノートに化合物番号システムを使用する.これらの識別番号は,内部レポート,研究論文,特許を書く際に化学者によって使用される.この種のデータを保存する際は,分子のメタ情報を使用する.

分子にメタデータを加える:

この特性に実験的なデータを保存する:

空の連想を使ってメタデータを削除する:

"SetTorsionAngle"  (1)

分子の幾何学的形状を,例えば内部水素結合のような,望ましい立体配座に設定する:

"SetUnpairedElectronCount"  (1)

水に変更を加えてヒドロキシルラジカルを作る:

"TransformAtomCoordinates"  (2)

座標を空間で平行異動して分子のコピーを作る:

ReflectionTransformを使って分子の鏡像体を作る:

おもしろい例題  (1)

MMFF力場に距離制約を加え,2つの原子間に与えられた距離を使って立体配座を求める.まず,基本分子を作る:

標準構成で最も遠くにある2つの原子を求める:

デフォルトの立体配座では,この2つの原子は32オングストローム離れている:

"EnergyMinimizeAtomCoordinates"を使い,これらの原子に特定の離れ方を使って新たな立体配座を求める:

返された幾何形状が条件を満たしていることを確かめ,力場のエネルギーを得る:

Wolfram Research (2019), MoleculeModify, Wolfram言語関数, https://reference.wolfram.com/language/ref/MoleculeModify.html (2020年に更新).

テキスト

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

BibTeX

@misc{reference.wolfram_2024_moleculemodify, author="Wolfram Research", title="{MoleculeModify}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/MoleculeModify.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_moleculemodify, organization={Wolfram Research}, title={MoleculeModify}, year={2020}, url={https://reference.wolfram.com/language/ref/MoleculeModify.html}, note=[Accessed: 22-November-2024 ]}