FindMoleculeSubstructure[mol,patt]
mol 中の原子インデックスと mol 中の patt のすべての出現の間のマッピングを求める.
FindMoleculeSubstructure[mol,patt,All]
mol 内の patt の出現例をすべて求め,すべてのマッピングを返す.
FindMoleculeSubstructure[mol,patt,n]
最高で n 個のマッピングを求める.
FindMoleculeSubstructure
FindMoleculeSubstructure[mol,patt]
mol 中の原子インデックスと mol 中の patt のすべての出現の間のマッピングを求める.
FindMoleculeSubstructure[mol,patt,All]
mol 内の patt の出現例をすべて求め,すべてのマッピングを返す.
FindMoleculeSubstructure[mol,patt,n]
最高で n 個のマッピングを求める.
詳細とオプション
- FindMoleculeSubstructureは連想のリストAssociation[p1->m1,p2->m2,…]を返す.piおよび miはそれぞれ patt および mol 内の原子インデックスである.
- デフォルトで,部分構造の一致については,同じ原子の集合に対する複数の一致は取り除かれる.オプションOverlaps->Trueを使うとこの動作が無効になる.
- FindMoleculeSubstructureは以下のオプションを取る.
-
IgnoreStereochemistry False 立体化学を無視するかどうか IncludeHydrogens Automatic 水素原子を含めるかどうか Overlaps False 重複するマッチを含めるかどうか
例題
すべて開く すべて閉じる例 (2)
FindMoleculeSubstructure[Molecule[{"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C"}, {Bond[{1, 2}, "Single"], Bond[{2, 3}, "Single"], Bond[{3, 4}, "Single"],
Bond[{4, 5}, "Aromatic"], Bond[{5, 6}, "Aromatic ... }, "Aromatic"],
Bond[{16, 17}, "Aromatic"], Bond[{17, 18}, "Aromatic"], Bond[{18, 19}, "Aromatic"],
Bond[{19, 20}, "Aromatic"], Bond[{14, 21}, "Single"], Bond[{21, 22}, "Single"],
Bond[{9, 4}, "Aromatic"], Bond[{20, 15}, "Aromatic"]}, {}], MoleculePattern["c1ccccc1"]]FindMoleculeSubstructure[Molecule[{"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "O", "C", "C", "C", "C", "C", "C",
"C", "O", "C", "C", "C", "O", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H",
"H", "H", "H", "H", "H", "H", "H", "H", "H", "H ... "Direction" -> "Counterclockwise"], Association["StereoType" -> "Tetrahedral",
"ChiralCenter" -> 16, "Direction" -> "Counterclockwise"],
Association["StereoType" -> "Tetrahedral", "ChiralCenter" -> 19, "Direction" -> "Clockwise"]}}], MoleculePattern[{"C", "O", "H"}, {Bond[{1, 2}], Bond[{2, 3}]}], All]スコープ (4)
FindMoleculeSubstructure[Molecule[{"O", "H", "H"}, {Bond[{1, 2}, "Single"], Bond[{1, 3}, "Single"]}, {}], "O"]FindMoleculeSubstructure[Molecule[{"O", "H", "H"}, {Bond[{1, 2}, "Single"], Bond[{1, 3}, "Single"]}, {}], "H", All]m = Molecule[{Atom["C"], Atom["C", "MassNumber" -> 14], Atom["O"], Atom["O", "FormalCharge" -> -1],
Atom["H"], Atom["H"], Atom["H"]}, {Bond[{1, 2}, "Single"], Bond[{2, 3}, "Double"],
Bond[{2, 4}, "Single"], Bond[{1, 5}, "Single"], Bond[{1, 6}, "Single"], Bond[{1, 7}, "Single"]}];FindMoleculeSubstructure[m, Atom["O", "FormalCharge" -> -1]]FindMoleculeSubstructure[m, Atom["C", "MassNumber" -> 14]]Atomを使ってより一般的なパターンを作る.荷電した全原子を求める:
m = Molecule[Entity["Chemical", "Methyl4Nitrobutyrate"]];FindMoleculeSubstructure[m, Atom["FormalCharge" -> Except[0]], All]FindMoleculeSubstructure[m, Atom["FormalCharge" -> GreaterThan[0]], All]FindMoleculeSubstructure[m, Atom["FormalCharge" -> LessEqualThan[-1]], All]Bondを使って任意の二重結合のパターンを定義する:
m = Molecule["2-[[(1E,4E)-1,5-bis(5-nitrofuran-2-yl)penta-1,4-dien-3-ylidene]amino]guanidine"]FindMoleculeSubstructure[m, Bond[_, "Double"], All]FindMoleculeSubstructure[m, Bond[{"N", _}, "Double"], All]FindMoleculeSubstructure[m, Bond[{Atom["FormalCharge" -> Except[0]], _}, "Double"], All]オプション (3)
IgnoreStereochemistry (1)
FindMoleculeSubstructure[Molecule["l-alanine"],
MoleculePattern["C[C@@H](N)C(=O)O"]]IgnoreStereochemistryTrueを使って肯定的な一致を得る:
FindMoleculeSubstructure[Molecule["l-alanine"],
MoleculePattern["C[C@@H](N)C(=O)O"], IgnoreStereochemistry -> True]IncludeHydrogens (1)
デフォルトで,下部構造のマッチングは,パターンに明示的な水素原子が含まれていない限り,水素を抑制した分子のグラフを使って行われる:
FindMoleculeSubstructure[Molecule[{"C", "C", "C", "Cl"}, {Bond[{1, 2}, "Single"], Bond[{2, 3}, "Single"],
Bond[{2, 4}, "Single"]}, {}], Bond[{"C", "H"}, "Single"], All]パターンが複雑な場合,水素とのマッチングの中には見逃されるものがあるだろう.以下の例は炭素原子が水素原子または塩素原子と結合するパターンだが,C-Cl結合しか見付けられない:
FindMoleculeSubstructure[Molecule[{"C", "C", "C", "Cl"}, {Bond[{1, 2}, "Single"], Bond[{2, 3}, "Single"],
Bond[{2, 4}, "Single"]}, {}], Bond[{"C", Atom["AtomicNumber" -> (1 | 17)]}, "Single"], All]オプションIncludeHydrogensTrueを使って水パターンマッチングの目的のために水素原子が明示的なものとして扱われるようにする:
FindMoleculeSubstructure[Molecule[{"C", "C", "C", "Cl"}, {Bond[{1, 2}, "Single"], Bond[{2, 3}, "Single"],
Bond[{2, 4}, "Single"]}, {}], Bond[{"C", Atom["AtomicNumber" -> (1 | 17)]}, "Single"], All, IncludeHydrogens -> True]Overlaps (1)
デフォルトで,下部構造のマッチングは原子の同じ集合に対する複数のマッチングを削除するようになっている:
FindMoleculeSubstructure[Molecule["hexane"], MoleculePattern["CCCCC"], All]オプションOverlapsTrueを使ってパターンと分子の間の可能なすべてのマッチングを求める:
FindMoleculeSubstructure[Molecule["hexane"], MoleculePattern["CCCCC"], All, Overlaps -> True]アプリケーション (1)
タンパク質のN末端に窒素とカルボニル炭素を配置する関数を記述する:
nterminus[mol_] := Module[
{patt, atomsOfInterest = {1, 3}}, patt = MoleculePattern[{Atom["N", "HydrogenCount" -> 2], Atom["C", "OrbitalHybridization" -> "SP3"],
Atom["C"], Atom["O"], Atom["O" | "N"]}, {Bond[{1, 2}, "Single"], Bond[{2, 3}, "Single"],
Bond[{3, 4}, "Double"], Bond[{3, 5}, "Single"]}];
DeleteMissing[AssociationThread[{"amine", "carbonyl"}, Lookup[First[FindMoleculeSubstructure[mol, patt], {}], atomsOfInterest]]]
]peptide = BioSequence["Peptide", "VGSA"];
nterminus[peptide]MoleculePlot[peptide, %]関連するガイド
テキスト
Wolfram Research (2019), FindMoleculeSubstructure, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindMoleculeSubstructure.html.
CMS
Wolfram Language. 2019. "FindMoleculeSubstructure." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FindMoleculeSubstructure.html.
APA
Wolfram Language. (2019). FindMoleculeSubstructure. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindMoleculeSubstructure.html
BibTeX
@misc{reference.wolfram_2026_findmoleculesubstructure, author="Wolfram Research", title="{FindMoleculeSubstructure}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/FindMoleculeSubstructure.html}", note=[Accessed: 01-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_findmoleculesubstructure, organization={Wolfram Research}, title={FindMoleculeSubstructure}, year={2019}, url={https://reference.wolfram.com/language/ref/FindMoleculeSubstructure.html}, note=[Accessed: 01-November-2026]}