REPRESENTACIÓN DE LAS MOLÉCULAS EN 2D

MOLECULE PLOT

Podemos crear una molécula y representarla gráficamente:

MoleculePlot[Molecule["NC(=O)C[C@H](C(=O)O)N"]]

Numeramos los átomos:

MoleculePlot[Molecule["NC(=O)C[C@H](C(=O)O)N"],AtomLabels->"AtomIndex"]

Si queremos resaltar el primer y tercer átomo de oxígeno:

MoleculePlot[Molecule["NC(=O)C[C@H](C(=O)O)N"],{3,8}]

O resaltar todos los átomos de oxígeno:

MoleculePlot[Molecule["NC(=O)C[C@H](C(=O)O)N"],Atom["O"]]

De la representación gráfica de una molécula determinada:

MoleculePlot[Molecule["O=C(C1CCC1)S[C@@H]1CCC1(C)C"]]

Podemos seleccionar dos patrones diferentes de átomos:

MoleculePlot["O=C(C1CCC1)S[C@@H]1CCC1(C)C",<|"carbonyl"->Bond[{"C","O"},"Double"],"ring carbons"->Atom["C","RingAtomQ"->True]|>]

Un patrón puede coincidir con una o varias posiciones en una molécula:

m=Molecule[{Atom["C"],Atom["C"],Atom["C"],Atom["O"],Atom["N"],Atom["C"],Atom["O"],Atom["N"],Atom["C"],Atom["C"],Atom["C"],Atom["O"],Atom["O"],Atom["C"],Atom["N"],Atom["C"],Atom["C"],Atom["O"],Atom["O"],Atom["C"],Atom["C"],Atom["C"],Atom["C"],Atom["C"],Atom["C"],Atom["C"],Atom["C"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"]},{Bond[{1,2},"Single"],Bond[{2,3},"Single"],Bond[{3,4},"Double"],Bond[{3,5},"Single"],Bond[{5,6},"Single"],Bond[{6,7},"Double"],Bond[{6,8},"Single"],Bond[{8,9},"Single"],Bond[{9,10},"Single"],Bond[{10,11},"Single"],Bond[{11,12},"Double"],Bond[{11,13},"Single"],Bond[{8,14},"Single"],Bond[{2,15},"Single"],Bond[{15,16},"Single"],Bond[{16,17},"Single"],Bond[{17,18},"Double"],Bond[{17,19},"Single"],Bond[{16,20},"Single"],Bond[{20,21},"Single"],Bond[{21,22},"Single"],Bond[{22,23},"Aromatic"],Bond[{23,24},"Aromatic"],Bond[{24,25},"Aromatic"],Bond[{25,26},"Aromatic"],Bond[{26,27},"Aromatic"],Bond[{10,5},"Single"],Bond[{27,22},"Aromatic"],Bond[{1,28},"Single"],Bond[{1,29},"Single"],Bond[{1,30},"Single"],Bond[{2,31},"Single"],Bond[{9,32},"Single"],Bond[{9,33},"Single"],Bond[{10,34},"Single"],Bond[{13,35},"Single"],Bond[{14,36},"Single"],Bond[{14,37},"Single"],Bond[{14,38},"Single"],Bond[{15,39},"Single"],Bond[{16,40},"Single"],Bond[{19,41},"Single"],Bond[{20,42},"Single"],Bond[{20,43},"Single"],Bond[{21,44},"Single"],Bond[{21,45},"Single"],Bond[{23,46},"Single"],Bond[{24,47},"Single"],Bond[{25,48},"Single"],Bond[{26,49},"Single"],Bond[{27,50},"Single"]},StereochemistryElements->{<|"StereoType"->"Tetrahedral","ChiralCenter"->2,"Direction"->"Clockwise","FiducialAtom"->1,"Ligands"->{3,15,31}|>,<|"StereoType"->"Tetrahedral","ChiralCenter"->10,"Direction"->"Clockwise","FiducialAtom"->9,"Ligands"->{11,5,34}|>,<|"StereoType"->"Tetrahedral","ChiralCenter"->16,"Direction"->"Counterclockwise","FiducialAtom"->15,"Ligands"->{17,20,40}|>}];
carbonylPattern=Bond[{"C","O"},"Double"];

Podemos resaltar cada carbonilo por separado:

MoleculePlot[m,carbonylPattern]

O con un solo color:

MoleculePlot[m,{carbonylPattern}]

De una determinada molécula:

n=Molecule[{Atom["C"],Atom["N"],Atom["C"],Atom["C"],Atom["C"],Atom["N"],Atom["C"],Atom["O"],Atom["C"],Atom["C"],Atom["C"],Atom["C"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"]},{Bond[{1,2},"Single"],Bond[{2,3},"Single"],Bond[{3,4},"Single"],Bond[{4,5},"Single"],Bond[{5,6},"Single"],Bond[{6,7},"Single"],Bond[{7,8},"Double"],Bond[{7,9},"Single"],Bond[{9,10},"Double"],Bond[{9,11},"Single"],Bond[{2,12},"Single"],Bond[{1,13},"Single"],Bond[{1,14},"Single"],Bond[{1,15},"Single"],Bond[{3,16},"Single"],Bond[{3,17},"Single"],Bond[{4,18},"Single"],Bond[{4,19},"Single"],Bond[{5,20},"Single"],Bond[{5,21},"Single"],Bond[{6,22},"Single"],Bond[{10,23},"Single"],Bond[{10,24},"Single"],Bond[{11,25},"Single"],Bond[{11,26},"Single"],Bond[{11,27},"Single"],Bond[{12,28},"Single"],Bond[{12,29},"Single"],Bond[{12,30},"Single"]}];

Podemos resaltar varios patrones:

MoleculePlot[n,{1,Bond[{"C","C"},"Double"]}]

Podemos etiquetar todos los átomos por su índice:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],AtomLabels->"AtomIndex"]

Podemos etiquetar solo unos determinados átomos, como por ejemplo los de cloro:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],AtomLabels->{Atom["Cl"]->"AtomIndex"}]

Etiquete los átomos que no son de hidrógeno por su hibridación:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],AtomLabels->{Atom[Except["H"]]->MoleculeProperty["OrbitalHybridization"]}]

Podemos configurar todas las etiquetas para que tengan el mismo estilo:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],AtomLabels->"AtomIndex",AtomLabelStyle->Directive[FontSize->12,Blue]]

Establezca el estilo de la etiqueta según el tipo de átomo:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],AtomLabels->"AtomIndex",AtomLabelStyle->{Atom["C"]->Directive[12,Blue],Atom["O"]->Directive[8,Purple,Bold],_->Italic}]

Etiquete todos los enlaces por su índice:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],BondLabels->"BondIndex"]

Etiquete solo los enlaces a átomos de cloro por su tipo de enlace:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],BondLabels->{Bond[{"Cl",_}]->MoleculeProperty["BondType"]}]

Podemos dar a todas las etiquetas de enlace un mismo estilo:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],BondLabels->"BondIndex",BondLabelStyle->Directive[FontSize->22,Red]]

O etiquetar los enlaces de forma diferente según sus átomos:

MoleculePlot[Molecule["2,3-dichloro-4-nitro-1H-pyrrole"],BondLabels->"BondIndex",BondLabelStyle->{Bond[{"N",_}]->Directive[FontSize->22,Red],Bond[{"Cl",_}]->Directive[FontSize->22,Blue]}]

Podemos especificar diferentes colores para los elementos atómicos:

MoleculePlot["Nc1nccc(n1)c1c(C)onc1c1ccccc1",ColorRules->{"C"->RGBColor[0.79,0.34,0.5],"N"->RGBColor[0.5,0.51,0.81],_->Black}]

Podemos utilizar marcadores de posición para las leyendas de la trama:

o=Molecule[{Atom["C"],Atom["N"],Atom["C"],Atom["C"],Atom["C"],Atom["N"],Atom["C"],Atom["O"],Atom["C"],Atom["C"],Atom["C"],Atom["C"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"],Atom["H"]},{Bond[{1,2},"Single"],Bond[{2,3},"Single"],Bond[{3,4},"Single"],Bond[{4,5},"Single"],Bond[{5,6},"Single"],Bond[{6,7},"Single"],Bond[{7,8},"Double"],Bond[{7,9},"Single"],Bond[{9,10},"Double"],Bond[{9,11},"Single"],Bond[{2,12},"Single"],Bond[{1,13},"Single"],Bond[{1,14},"Single"],Bond[{1,15},"Single"],Bond[{3,16},"Single"],Bond[{3,17},"Single"],Bond[{4,18},"Single"],Bond[{4,19},"Single"],Bond[{5,20},"Single"],Bond[{5,21},"Single"],Bond[{6,22},"Single"],Bond[{10,23},"Single"],Bond[{10,24},"Single"],Bond[{11,25},"Single"],Bond[{11,26},"Single"],Bond[{11,27},"Single"],Bond[{12,28},"Single"],Bond[{12,29},"Single"],Bond[{12,30},"Single"]}];

MoleculePlot[o,{1,Bond[{"C","C"},"Double"]},PlotLegends->Automatic]

Podemos colocar las leyendas donde queramos:

MoleculePlot[o,{1,Bond[{"C","C"},"Double"]},PlotLegends->Placed["Expressions",Below]]

Por defecto, los enlaces aromáticos se muestran en su forma Kekule deslocalizada. Utilice el tema argumental “Aromático” para mostrar qué enlaces son aromáticos. Los anillos de fenilo se muestran con un círculo para indicar los electrones de enlace deslocalizados. Los heterociclos aromáticos utilizan líneas discontinuas para los enlaces aromáticos:

MoleculePlot["Nc1nccc(n1)c1c(C)onc1c1ccccc1",PlotTheme->"Aromatic"]

Podemos combinar diferentes temas de la trama:

MoleculePlot["Nc1nccc(n1)c1c(C)onc1c1ccccc1",PlotTheme->{"Aromatic","AllAtom","Monochrome"}]