Is it possible to build or embed the SMILES representation of compounds in 3D?Is there an energy cost associated with flipping the spin of an electron?How are Organic Compounds named?Converting cyclic compounds to linear compounds (possible ?)What would be SMILES notation for a compound with delocalized bonding?Oxygen Preventing the Formation of Large Organic Compounds?Predicting reaction among compoundsPubchem, InChI, SMILES, and uniquenessWhat are some factors that influence the voltage of voltaic/galvanic cells and why?How can I find the parent chains in these two compounds?In general, are carbonyl compounds (ketones/aldehydes) more susceptible to a nucleophilic attack then alkynes?
how to add 1 milliseconds on a datetime string?
What is "ass door"?
What was the rationale behind 36 bit computer architectures?
What Is the Meaning of "you has the wind of me"?
Travelling from Venice to Budapest, making a stop in Croatia
Where is this photo of a group of hikers taken? Is it really in the Ural?
Can I pay with HKD in Macau or Shenzhen?
Is there a way to factor age into the mass-luminosity relationship for stars?
Is it possible to eat quietly in Minecraft?
The 50,000 row query limit is not actually a "per APEX call" as widely believed
How to write a sincerely religious protagonist without preaching or affirming or judging their worldview?
Sci-fi short story: plants attracting spaceship and using them as a agents of pollination between two planets
Alternative methods for solving a system of one linear one non linear simultaneous equations
Why is DC so, so, so Democratic?
Are symplectomorphisms of Weil–Petersson symplectic form induced from surface diffeomorphisms?
Are rockets faster than airplanes?
How to repair basic cable/wire issue for household appliances
What is the spanish equivalent of "the boys are sitting"?
Can't understand how static works exactly
Can you drop a weapon/item when it is not your turn?
Short story about a group of sci-fi writers sitting around discussing their profession
Can 々 stand for a duplicated kanji with a different reading?
How can I tell if there was a power cut when I was out?
Why did modems have speakers?
Is it possible to build or embed the SMILES representation of compounds in 3D?
Is there an energy cost associated with flipping the spin of an electron?How are Organic Compounds named?Converting cyclic compounds to linear compounds (possible ?)What would be SMILES notation for a compound with delocalized bonding?Oxygen Preventing the Formation of Large Organic Compounds?Predicting reaction among compoundsPubchem, InChI, SMILES, and uniquenessWhat are some factors that influence the voltage of voltaic/galvanic cells and why?How can I find the parent chains in these two compounds?In general, are carbonyl compounds (ketones/aldehydes) more susceptible to a nucleophilic attack then alkynes?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I would like to know if there is a proper way to get the 3D information from a SMILES string.
- Is there a standard way to do it?
- Are there other representations of compounds which include their spatial information too?
organic-chemistry physical-chemistry
$endgroup$
add a comment |
$begingroup$
I would like to know if there is a proper way to get the 3D information from a SMILES string.
- Is there a standard way to do it?
- Are there other representations of compounds which include their spatial information too?
organic-chemistry physical-chemistry
$endgroup$
add a comment |
$begingroup$
I would like to know if there is a proper way to get the 3D information from a SMILES string.
- Is there a standard way to do it?
- Are there other representations of compounds which include their spatial information too?
organic-chemistry physical-chemistry
$endgroup$
I would like to know if there is a proper way to get the 3D information from a SMILES string.
- Is there a standard way to do it?
- Are there other representations of compounds which include their spatial information too?
organic-chemistry physical-chemistry
organic-chemistry physical-chemistry
edited 2 hours ago
0x90
asked 9 hours ago
0x900x90
2691 silver badge13 bronze badges
2691 silver badge13 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
SMILES is insufficient
SMILES strings do not encode 3D structure information. They only convey atom type, connectivity and bond types. InChI is like SMILES in this regard.
Thus, you will need either (a) an algorithm to infer or guess a plausible 3D conformation of a molecule or (b) a file type that has already specified the 3D arrangement of the molecule.
File types for storing, reading, and showing 3D conformations
Probably the most standard way to represent the 3D conformation of a molecules is with a *.mol file. There are many tools to read such files. You can read more about the format on Wikipedia.
Estimating a conformation from SMILES
You can also use computational tools to estimate a 3D conformation from a SMILES string. Note I say a conformation rather than the conformation; molecules can in general have many valid conformations. Also, tools for generating conformations rely on molecular force fields, etc. These have many implicit assumptions; there is no guarantee that a computationally generated conformation will be the real conformation of a real molecule in the real world.
Here is some code for generating a plausible conformation from a SMILES string using rdkit
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole
my_mol = Chem.MolFromSmiles('NC(=N)N1CCC[C@H]1Cc2onc(n2)c3ccc(Nc4nc(cs4)c5ccc(Br)cc5)cc3')
my_mol
my_mol_with_H=Chem.AddHs(my_mol)
AllChem.EmbedMolecule(my_mol_with_H)
AllChem.MMFFOptimizeMolecule(my_mol_with_H)
my_embedded_mol = Chem.RemoveHs(my_mol_with_H)
my_embedded_mol
print(Chem.MolToMolBlock(my_embedded_mol))
The printed result is:
RDKit 3D
33 37 0 0 0 0 0 0 0 0999 V2000
-8.0789 -0.7261 -1.9565 N 0 0 0 0 0 0 0 0 0 0 0 0
-8.3618 -0.9375 -0.6556 C 0 0 0 0 0 0 0 0 0 0 0 0
-9.4453 -1.5737 -0.3799 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.4690 -0.4468 0.2422 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.8136 -0.1283 1.6244 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.7632 0.8908 2.0392 C 0 0 0 0 0 0 0 0 0 0 0 0
-5.5246 0.3855 1.3227 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.0688 -0.0733 -0.0461 C 0 0 1 0 0 0 0 0 0 0 0 0
-5.2554 -1.2432 -0.6177 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.8658 -0.8320 -0.9216 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.6647 -0.1417 -2.0770 O 0 0 0 0 0 0 0 0 0 0 0 0
-2.3059 0.1587 -2.1237 N 0 0 0 0 0 0 0 0 0 0 0 0
-1.8139 -0.3885 -1.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.7692 -1.0082 -0.2227 N 0 0 0 0 0 0 0 0 0 0 0 0
-0.4078 -0.3427 -0.6136 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0488 -1.0902 0.4772 C 0 0 0 0 0 0 0 0 0 0 0 0
1.3984 -1.0569 0.8486 C 0 0 0 0 0 0 0 0 0 0 0 0
2.3307 -0.2688 0.1543 C 0 0 0 0 0 0 0 0 0 0 0 0
3.6731 -0.3282 0.5615 N 0 0 0 0 0 0 0 0 0 0 0 0
4.8291 -0.0477 -0.0843 C 0 0 0 0 0 0 0 0 0 0 0 0
5.9334 0.1757 0.5968 N 0 0 0 0 0 0 0 0 0 0 0 0
7.0123 0.4129 -0.2413 C 0 0 0 0 0 0 0 0 0 0 0 0
6.7153 0.3213 -1.5854 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0623 -0.0682 -1.7942 S 0 0 0 0 0 0 0 0 0 0 0 0
8.3378 0.7031 0.3040 C 0 0 0 0 0 0 0 0 0 0 0 0
9.3324 1.3464 -0.4485 C 0 0 0 0 0 0 0 0 0 0 0 0
10.5913 1.6060 0.1057 C 0 0 0 0 0 0 0 0 0 0 0 0
10.8633 1.2259 1.4171 C 0 0 0 0 0 0 0 0 0 0 0 0
12.5638 1.5736 2.1593 Br 0 0 0 0 0 0 0 0 0 0 0 0
9.8883 0.5951 2.1844 C 0 0 0 0 0 0 0 0 0 0 0 0
8.6313 0.3380 1.6284 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8659 0.4742 -0.9343 C 0 0 0 0 0 0 0 0 0 0 0 0
0.5160 0.4406 -1.3141 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0
2 3 2 0
2 4 1 0
4 5 1 0
5 6 1 0
6 7 1 0
7 8 1 0
8 9 1 1
9 10 1 0
10 11 1 0
11 12 1 0
12 13 2 0
13 14 1 0
13 15 1 0
15 16 2 0
16 17 1 0
17 18 2 0
18 19 1 0
19 20 1 0
20 21 2 0
21 22 1 0
22 23 2 0
23 24 1 0
22 25 1 0
25 26 2 0
26 27 1 0
27 28 2 0
28 29 1 0
28 30 1 0
30 31 2 0
18 32 1 0
32 33 2 0
8 4 1 0
14 10 2 0
33 15 1 0
24 20 1 0
31 25 1 0
M END
A semi-interpretable 2D image of this 3D conformation, also generated by rdkit, is shown below. For comparsion, the "un-embedded" molecule, optimized to look nice on a 2D display, is also shown.

From the admittedly not-great 2D depiction of the embedded molecule, you can at least tell that the various aromatic rings are not coplanar. For better visualization of 3D conformations, you would want to use a tool like py3dmol.
$endgroup$
$begingroup$
What aboutStandard InChI?
$endgroup$
– 0x90
8 hours ago
1
$begingroup$
InChI has the same limitations as SMILES. It does not encode the 3D arrangement of atoms, only the atom types and bond types between them.
$endgroup$
– Curt F.
8 hours ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
2 hours ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
1 hour ago
2
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=), triple (#) bond and aromaticity with C, N, O, S (C1CCCCC1is not the same asc1ccccc1)) and may indicate molecular configuration (cis / trans double bond by/or backslash ; S or R atom centered chirality by@or@@). It is less frequent to see the notation including configuration, but it is present.
$endgroup$
– Buttonwood
1 hour ago
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "431"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fchemistry.stackexchange.com%2fquestions%2f118460%2fis-it-possible-to-build-or-embed-the-smiles-representation-of-compounds-in-3d%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
SMILES is insufficient
SMILES strings do not encode 3D structure information. They only convey atom type, connectivity and bond types. InChI is like SMILES in this regard.
Thus, you will need either (a) an algorithm to infer or guess a plausible 3D conformation of a molecule or (b) a file type that has already specified the 3D arrangement of the molecule.
File types for storing, reading, and showing 3D conformations
Probably the most standard way to represent the 3D conformation of a molecules is with a *.mol file. There are many tools to read such files. You can read more about the format on Wikipedia.
Estimating a conformation from SMILES
You can also use computational tools to estimate a 3D conformation from a SMILES string. Note I say a conformation rather than the conformation; molecules can in general have many valid conformations. Also, tools for generating conformations rely on molecular force fields, etc. These have many implicit assumptions; there is no guarantee that a computationally generated conformation will be the real conformation of a real molecule in the real world.
Here is some code for generating a plausible conformation from a SMILES string using rdkit
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole
my_mol = Chem.MolFromSmiles('NC(=N)N1CCC[C@H]1Cc2onc(n2)c3ccc(Nc4nc(cs4)c5ccc(Br)cc5)cc3')
my_mol
my_mol_with_H=Chem.AddHs(my_mol)
AllChem.EmbedMolecule(my_mol_with_H)
AllChem.MMFFOptimizeMolecule(my_mol_with_H)
my_embedded_mol = Chem.RemoveHs(my_mol_with_H)
my_embedded_mol
print(Chem.MolToMolBlock(my_embedded_mol))
The printed result is:
RDKit 3D
33 37 0 0 0 0 0 0 0 0999 V2000
-8.0789 -0.7261 -1.9565 N 0 0 0 0 0 0 0 0 0 0 0 0
-8.3618 -0.9375 -0.6556 C 0 0 0 0 0 0 0 0 0 0 0 0
-9.4453 -1.5737 -0.3799 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.4690 -0.4468 0.2422 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.8136 -0.1283 1.6244 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.7632 0.8908 2.0392 C 0 0 0 0 0 0 0 0 0 0 0 0
-5.5246 0.3855 1.3227 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.0688 -0.0733 -0.0461 C 0 0 1 0 0 0 0 0 0 0 0 0
-5.2554 -1.2432 -0.6177 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.8658 -0.8320 -0.9216 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.6647 -0.1417 -2.0770 O 0 0 0 0 0 0 0 0 0 0 0 0
-2.3059 0.1587 -2.1237 N 0 0 0 0 0 0 0 0 0 0 0 0
-1.8139 -0.3885 -1.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.7692 -1.0082 -0.2227 N 0 0 0 0 0 0 0 0 0 0 0 0
-0.4078 -0.3427 -0.6136 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0488 -1.0902 0.4772 C 0 0 0 0 0 0 0 0 0 0 0 0
1.3984 -1.0569 0.8486 C 0 0 0 0 0 0 0 0 0 0 0 0
2.3307 -0.2688 0.1543 C 0 0 0 0 0 0 0 0 0 0 0 0
3.6731 -0.3282 0.5615 N 0 0 0 0 0 0 0 0 0 0 0 0
4.8291 -0.0477 -0.0843 C 0 0 0 0 0 0 0 0 0 0 0 0
5.9334 0.1757 0.5968 N 0 0 0 0 0 0 0 0 0 0 0 0
7.0123 0.4129 -0.2413 C 0 0 0 0 0 0 0 0 0 0 0 0
6.7153 0.3213 -1.5854 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0623 -0.0682 -1.7942 S 0 0 0 0 0 0 0 0 0 0 0 0
8.3378 0.7031 0.3040 C 0 0 0 0 0 0 0 0 0 0 0 0
9.3324 1.3464 -0.4485 C 0 0 0 0 0 0 0 0 0 0 0 0
10.5913 1.6060 0.1057 C 0 0 0 0 0 0 0 0 0 0 0 0
10.8633 1.2259 1.4171 C 0 0 0 0 0 0 0 0 0 0 0 0
12.5638 1.5736 2.1593 Br 0 0 0 0 0 0 0 0 0 0 0 0
9.8883 0.5951 2.1844 C 0 0 0 0 0 0 0 0 0 0 0 0
8.6313 0.3380 1.6284 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8659 0.4742 -0.9343 C 0 0 0 0 0 0 0 0 0 0 0 0
0.5160 0.4406 -1.3141 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0
2 3 2 0
2 4 1 0
4 5 1 0
5 6 1 0
6 7 1 0
7 8 1 0
8 9 1 1
9 10 1 0
10 11 1 0
11 12 1 0
12 13 2 0
13 14 1 0
13 15 1 0
15 16 2 0
16 17 1 0
17 18 2 0
18 19 1 0
19 20 1 0
20 21 2 0
21 22 1 0
22 23 2 0
23 24 1 0
22 25 1 0
25 26 2 0
26 27 1 0
27 28 2 0
28 29 1 0
28 30 1 0
30 31 2 0
18 32 1 0
32 33 2 0
8 4 1 0
14 10 2 0
33 15 1 0
24 20 1 0
31 25 1 0
M END
A semi-interpretable 2D image of this 3D conformation, also generated by rdkit, is shown below. For comparsion, the "un-embedded" molecule, optimized to look nice on a 2D display, is also shown.

From the admittedly not-great 2D depiction of the embedded molecule, you can at least tell that the various aromatic rings are not coplanar. For better visualization of 3D conformations, you would want to use a tool like py3dmol.
$endgroup$
$begingroup$
What aboutStandard InChI?
$endgroup$
– 0x90
8 hours ago
1
$begingroup$
InChI has the same limitations as SMILES. It does not encode the 3D arrangement of atoms, only the atom types and bond types between them.
$endgroup$
– Curt F.
8 hours ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
2 hours ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
1 hour ago
2
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=), triple (#) bond and aromaticity with C, N, O, S (C1CCCCC1is not the same asc1ccccc1)) and may indicate molecular configuration (cis / trans double bond by/or backslash ; S or R atom centered chirality by@or@@). It is less frequent to see the notation including configuration, but it is present.
$endgroup$
– Buttonwood
1 hour ago
add a comment |
$begingroup$
SMILES is insufficient
SMILES strings do not encode 3D structure information. They only convey atom type, connectivity and bond types. InChI is like SMILES in this regard.
Thus, you will need either (a) an algorithm to infer or guess a plausible 3D conformation of a molecule or (b) a file type that has already specified the 3D arrangement of the molecule.
File types for storing, reading, and showing 3D conformations
Probably the most standard way to represent the 3D conformation of a molecules is with a *.mol file. There are many tools to read such files. You can read more about the format on Wikipedia.
Estimating a conformation from SMILES
You can also use computational tools to estimate a 3D conformation from a SMILES string. Note I say a conformation rather than the conformation; molecules can in general have many valid conformations. Also, tools for generating conformations rely on molecular force fields, etc. These have many implicit assumptions; there is no guarantee that a computationally generated conformation will be the real conformation of a real molecule in the real world.
Here is some code for generating a plausible conformation from a SMILES string using rdkit
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole
my_mol = Chem.MolFromSmiles('NC(=N)N1CCC[C@H]1Cc2onc(n2)c3ccc(Nc4nc(cs4)c5ccc(Br)cc5)cc3')
my_mol
my_mol_with_H=Chem.AddHs(my_mol)
AllChem.EmbedMolecule(my_mol_with_H)
AllChem.MMFFOptimizeMolecule(my_mol_with_H)
my_embedded_mol = Chem.RemoveHs(my_mol_with_H)
my_embedded_mol
print(Chem.MolToMolBlock(my_embedded_mol))
The printed result is:
RDKit 3D
33 37 0 0 0 0 0 0 0 0999 V2000
-8.0789 -0.7261 -1.9565 N 0 0 0 0 0 0 0 0 0 0 0 0
-8.3618 -0.9375 -0.6556 C 0 0 0 0 0 0 0 0 0 0 0 0
-9.4453 -1.5737 -0.3799 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.4690 -0.4468 0.2422 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.8136 -0.1283 1.6244 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.7632 0.8908 2.0392 C 0 0 0 0 0 0 0 0 0 0 0 0
-5.5246 0.3855 1.3227 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.0688 -0.0733 -0.0461 C 0 0 1 0 0 0 0 0 0 0 0 0
-5.2554 -1.2432 -0.6177 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.8658 -0.8320 -0.9216 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.6647 -0.1417 -2.0770 O 0 0 0 0 0 0 0 0 0 0 0 0
-2.3059 0.1587 -2.1237 N 0 0 0 0 0 0 0 0 0 0 0 0
-1.8139 -0.3885 -1.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.7692 -1.0082 -0.2227 N 0 0 0 0 0 0 0 0 0 0 0 0
-0.4078 -0.3427 -0.6136 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0488 -1.0902 0.4772 C 0 0 0 0 0 0 0 0 0 0 0 0
1.3984 -1.0569 0.8486 C 0 0 0 0 0 0 0 0 0 0 0 0
2.3307 -0.2688 0.1543 C 0 0 0 0 0 0 0 0 0 0 0 0
3.6731 -0.3282 0.5615 N 0 0 0 0 0 0 0 0 0 0 0 0
4.8291 -0.0477 -0.0843 C 0 0 0 0 0 0 0 0 0 0 0 0
5.9334 0.1757 0.5968 N 0 0 0 0 0 0 0 0 0 0 0 0
7.0123 0.4129 -0.2413 C 0 0 0 0 0 0 0 0 0 0 0 0
6.7153 0.3213 -1.5854 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0623 -0.0682 -1.7942 S 0 0 0 0 0 0 0 0 0 0 0 0
8.3378 0.7031 0.3040 C 0 0 0 0 0 0 0 0 0 0 0 0
9.3324 1.3464 -0.4485 C 0 0 0 0 0 0 0 0 0 0 0 0
10.5913 1.6060 0.1057 C 0 0 0 0 0 0 0 0 0 0 0 0
10.8633 1.2259 1.4171 C 0 0 0 0 0 0 0 0 0 0 0 0
12.5638 1.5736 2.1593 Br 0 0 0 0 0 0 0 0 0 0 0 0
9.8883 0.5951 2.1844 C 0 0 0 0 0 0 0 0 0 0 0 0
8.6313 0.3380 1.6284 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8659 0.4742 -0.9343 C 0 0 0 0 0 0 0 0 0 0 0 0
0.5160 0.4406 -1.3141 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0
2 3 2 0
2 4 1 0
4 5 1 0
5 6 1 0
6 7 1 0
7 8 1 0
8 9 1 1
9 10 1 0
10 11 1 0
11 12 1 0
12 13 2 0
13 14 1 0
13 15 1 0
15 16 2 0
16 17 1 0
17 18 2 0
18 19 1 0
19 20 1 0
20 21 2 0
21 22 1 0
22 23 2 0
23 24 1 0
22 25 1 0
25 26 2 0
26 27 1 0
27 28 2 0
28 29 1 0
28 30 1 0
30 31 2 0
18 32 1 0
32 33 2 0
8 4 1 0
14 10 2 0
33 15 1 0
24 20 1 0
31 25 1 0
M END
A semi-interpretable 2D image of this 3D conformation, also generated by rdkit, is shown below. For comparsion, the "un-embedded" molecule, optimized to look nice on a 2D display, is also shown.

From the admittedly not-great 2D depiction of the embedded molecule, you can at least tell that the various aromatic rings are not coplanar. For better visualization of 3D conformations, you would want to use a tool like py3dmol.
$endgroup$
$begingroup$
What aboutStandard InChI?
$endgroup$
– 0x90
8 hours ago
1
$begingroup$
InChI has the same limitations as SMILES. It does not encode the 3D arrangement of atoms, only the atom types and bond types between them.
$endgroup$
– Curt F.
8 hours ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
2 hours ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
1 hour ago
2
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=), triple (#) bond and aromaticity with C, N, O, S (C1CCCCC1is not the same asc1ccccc1)) and may indicate molecular configuration (cis / trans double bond by/or backslash ; S or R atom centered chirality by@or@@). It is less frequent to see the notation including configuration, but it is present.
$endgroup$
– Buttonwood
1 hour ago
add a comment |
$begingroup$
SMILES is insufficient
SMILES strings do not encode 3D structure information. They only convey atom type, connectivity and bond types. InChI is like SMILES in this regard.
Thus, you will need either (a) an algorithm to infer or guess a plausible 3D conformation of a molecule or (b) a file type that has already specified the 3D arrangement of the molecule.
File types for storing, reading, and showing 3D conformations
Probably the most standard way to represent the 3D conformation of a molecules is with a *.mol file. There are many tools to read such files. You can read more about the format on Wikipedia.
Estimating a conformation from SMILES
You can also use computational tools to estimate a 3D conformation from a SMILES string. Note I say a conformation rather than the conformation; molecules can in general have many valid conformations. Also, tools for generating conformations rely on molecular force fields, etc. These have many implicit assumptions; there is no guarantee that a computationally generated conformation will be the real conformation of a real molecule in the real world.
Here is some code for generating a plausible conformation from a SMILES string using rdkit
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole
my_mol = Chem.MolFromSmiles('NC(=N)N1CCC[C@H]1Cc2onc(n2)c3ccc(Nc4nc(cs4)c5ccc(Br)cc5)cc3')
my_mol
my_mol_with_H=Chem.AddHs(my_mol)
AllChem.EmbedMolecule(my_mol_with_H)
AllChem.MMFFOptimizeMolecule(my_mol_with_H)
my_embedded_mol = Chem.RemoveHs(my_mol_with_H)
my_embedded_mol
print(Chem.MolToMolBlock(my_embedded_mol))
The printed result is:
RDKit 3D
33 37 0 0 0 0 0 0 0 0999 V2000
-8.0789 -0.7261 -1.9565 N 0 0 0 0 0 0 0 0 0 0 0 0
-8.3618 -0.9375 -0.6556 C 0 0 0 0 0 0 0 0 0 0 0 0
-9.4453 -1.5737 -0.3799 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.4690 -0.4468 0.2422 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.8136 -0.1283 1.6244 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.7632 0.8908 2.0392 C 0 0 0 0 0 0 0 0 0 0 0 0
-5.5246 0.3855 1.3227 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.0688 -0.0733 -0.0461 C 0 0 1 0 0 0 0 0 0 0 0 0
-5.2554 -1.2432 -0.6177 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.8658 -0.8320 -0.9216 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.6647 -0.1417 -2.0770 O 0 0 0 0 0 0 0 0 0 0 0 0
-2.3059 0.1587 -2.1237 N 0 0 0 0 0 0 0 0 0 0 0 0
-1.8139 -0.3885 -1.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.7692 -1.0082 -0.2227 N 0 0 0 0 0 0 0 0 0 0 0 0
-0.4078 -0.3427 -0.6136 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0488 -1.0902 0.4772 C 0 0 0 0 0 0 0 0 0 0 0 0
1.3984 -1.0569 0.8486 C 0 0 0 0 0 0 0 0 0 0 0 0
2.3307 -0.2688 0.1543 C 0 0 0 0 0 0 0 0 0 0 0 0
3.6731 -0.3282 0.5615 N 0 0 0 0 0 0 0 0 0 0 0 0
4.8291 -0.0477 -0.0843 C 0 0 0 0 0 0 0 0 0 0 0 0
5.9334 0.1757 0.5968 N 0 0 0 0 0 0 0 0 0 0 0 0
7.0123 0.4129 -0.2413 C 0 0 0 0 0 0 0 0 0 0 0 0
6.7153 0.3213 -1.5854 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0623 -0.0682 -1.7942 S 0 0 0 0 0 0 0 0 0 0 0 0
8.3378 0.7031 0.3040 C 0 0 0 0 0 0 0 0 0 0 0 0
9.3324 1.3464 -0.4485 C 0 0 0 0 0 0 0 0 0 0 0 0
10.5913 1.6060 0.1057 C 0 0 0 0 0 0 0 0 0 0 0 0
10.8633 1.2259 1.4171 C 0 0 0 0 0 0 0 0 0 0 0 0
12.5638 1.5736 2.1593 Br 0 0 0 0 0 0 0 0 0 0 0 0
9.8883 0.5951 2.1844 C 0 0 0 0 0 0 0 0 0 0 0 0
8.6313 0.3380 1.6284 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8659 0.4742 -0.9343 C 0 0 0 0 0 0 0 0 0 0 0 0
0.5160 0.4406 -1.3141 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0
2 3 2 0
2 4 1 0
4 5 1 0
5 6 1 0
6 7 1 0
7 8 1 0
8 9 1 1
9 10 1 0
10 11 1 0
11 12 1 0
12 13 2 0
13 14 1 0
13 15 1 0
15 16 2 0
16 17 1 0
17 18 2 0
18 19 1 0
19 20 1 0
20 21 2 0
21 22 1 0
22 23 2 0
23 24 1 0
22 25 1 0
25 26 2 0
26 27 1 0
27 28 2 0
28 29 1 0
28 30 1 0
30 31 2 0
18 32 1 0
32 33 2 0
8 4 1 0
14 10 2 0
33 15 1 0
24 20 1 0
31 25 1 0
M END
A semi-interpretable 2D image of this 3D conformation, also generated by rdkit, is shown below. For comparsion, the "un-embedded" molecule, optimized to look nice on a 2D display, is also shown.

From the admittedly not-great 2D depiction of the embedded molecule, you can at least tell that the various aromatic rings are not coplanar. For better visualization of 3D conformations, you would want to use a tool like py3dmol.
$endgroup$
SMILES is insufficient
SMILES strings do not encode 3D structure information. They only convey atom type, connectivity and bond types. InChI is like SMILES in this regard.
Thus, you will need either (a) an algorithm to infer or guess a plausible 3D conformation of a molecule or (b) a file type that has already specified the 3D arrangement of the molecule.
File types for storing, reading, and showing 3D conformations
Probably the most standard way to represent the 3D conformation of a molecules is with a *.mol file. There are many tools to read such files. You can read more about the format on Wikipedia.
Estimating a conformation from SMILES
You can also use computational tools to estimate a 3D conformation from a SMILES string. Note I say a conformation rather than the conformation; molecules can in general have many valid conformations. Also, tools for generating conformations rely on molecular force fields, etc. These have many implicit assumptions; there is no guarantee that a computationally generated conformation will be the real conformation of a real molecule in the real world.
Here is some code for generating a plausible conformation from a SMILES string using rdkit
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole
my_mol = Chem.MolFromSmiles('NC(=N)N1CCC[C@H]1Cc2onc(n2)c3ccc(Nc4nc(cs4)c5ccc(Br)cc5)cc3')
my_mol
my_mol_with_H=Chem.AddHs(my_mol)
AllChem.EmbedMolecule(my_mol_with_H)
AllChem.MMFFOptimizeMolecule(my_mol_with_H)
my_embedded_mol = Chem.RemoveHs(my_mol_with_H)
my_embedded_mol
print(Chem.MolToMolBlock(my_embedded_mol))
The printed result is:
RDKit 3D
33 37 0 0 0 0 0 0 0 0999 V2000
-8.0789 -0.7261 -1.9565 N 0 0 0 0 0 0 0 0 0 0 0 0
-8.3618 -0.9375 -0.6556 C 0 0 0 0 0 0 0 0 0 0 0 0
-9.4453 -1.5737 -0.3799 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.4690 -0.4468 0.2422 N 0 0 0 0 0 0 0 0 0 0 0 0
-7.8136 -0.1283 1.6244 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.7632 0.8908 2.0392 C 0 0 0 0 0 0 0 0 0 0 0 0
-5.5246 0.3855 1.3227 C 0 0 0 0 0 0 0 0 0 0 0 0
-6.0688 -0.0733 -0.0461 C 0 0 1 0 0 0 0 0 0 0 0 0
-5.2554 -1.2432 -0.6177 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.8658 -0.8320 -0.9216 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.6647 -0.1417 -2.0770 O 0 0 0 0 0 0 0 0 0 0 0 0
-2.3059 0.1587 -2.1237 N 0 0 0 0 0 0 0 0 0 0 0 0
-1.8139 -0.3885 -1.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.7692 -1.0082 -0.2227 N 0 0 0 0 0 0 0 0 0 0 0 0
-0.4078 -0.3427 -0.6136 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0488 -1.0902 0.4772 C 0 0 0 0 0 0 0 0 0 0 0 0
1.3984 -1.0569 0.8486 C 0 0 0 0 0 0 0 0 0 0 0 0
2.3307 -0.2688 0.1543 C 0 0 0 0 0 0 0 0 0 0 0 0
3.6731 -0.3282 0.5615 N 0 0 0 0 0 0 0 0 0 0 0 0
4.8291 -0.0477 -0.0843 C 0 0 0 0 0 0 0 0 0 0 0 0
5.9334 0.1757 0.5968 N 0 0 0 0 0 0 0 0 0 0 0 0
7.0123 0.4129 -0.2413 C 0 0 0 0 0 0 0 0 0 0 0 0
6.7153 0.3213 -1.5854 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0623 -0.0682 -1.7942 S 0 0 0 0 0 0 0 0 0 0 0 0
8.3378 0.7031 0.3040 C 0 0 0 0 0 0 0 0 0 0 0 0
9.3324 1.3464 -0.4485 C 0 0 0 0 0 0 0 0 0 0 0 0
10.5913 1.6060 0.1057 C 0 0 0 0 0 0 0 0 0 0 0 0
10.8633 1.2259 1.4171 C 0 0 0 0 0 0 0 0 0 0 0 0
12.5638 1.5736 2.1593 Br 0 0 0 0 0 0 0 0 0 0 0 0
9.8883 0.5951 2.1844 C 0 0 0 0 0 0 0 0 0 0 0 0
8.6313 0.3380 1.6284 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8659 0.4742 -0.9343 C 0 0 0 0 0 0 0 0 0 0 0 0
0.5160 0.4406 -1.3141 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0
2 3 2 0
2 4 1 0
4 5 1 0
5 6 1 0
6 7 1 0
7 8 1 0
8 9 1 1
9 10 1 0
10 11 1 0
11 12 1 0
12 13 2 0
13 14 1 0
13 15 1 0
15 16 2 0
16 17 1 0
17 18 2 0
18 19 1 0
19 20 1 0
20 21 2 0
21 22 1 0
22 23 2 0
23 24 1 0
22 25 1 0
25 26 2 0
26 27 1 0
27 28 2 0
28 29 1 0
28 30 1 0
30 31 2 0
18 32 1 0
32 33 2 0
8 4 1 0
14 10 2 0
33 15 1 0
24 20 1 0
31 25 1 0
M END
A semi-interpretable 2D image of this 3D conformation, also generated by rdkit, is shown below. For comparsion, the "un-embedded" molecule, optimized to look nice on a 2D display, is also shown.

From the admittedly not-great 2D depiction of the embedded molecule, you can at least tell that the various aromatic rings are not coplanar. For better visualization of 3D conformations, you would want to use a tool like py3dmol.
edited 7 hours ago
answered 8 hours ago
Curt F.Curt F.
17k2 gold badges41 silver badges94 bronze badges
17k2 gold badges41 silver badges94 bronze badges
$begingroup$
What aboutStandard InChI?
$endgroup$
– 0x90
8 hours ago
1
$begingroup$
InChI has the same limitations as SMILES. It does not encode the 3D arrangement of atoms, only the atom types and bond types between them.
$endgroup$
– Curt F.
8 hours ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
2 hours ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
1 hour ago
2
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=), triple (#) bond and aromaticity with C, N, O, S (C1CCCCC1is not the same asc1ccccc1)) and may indicate molecular configuration (cis / trans double bond by/or backslash ; S or R atom centered chirality by@or@@). It is less frequent to see the notation including configuration, but it is present.
$endgroup$
– Buttonwood
1 hour ago
add a comment |
$begingroup$
What aboutStandard InChI?
$endgroup$
– 0x90
8 hours ago
1
$begingroup$
InChI has the same limitations as SMILES. It does not encode the 3D arrangement of atoms, only the atom types and bond types between them.
$endgroup$
– Curt F.
8 hours ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
2 hours ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
1 hour ago
2
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=), triple (#) bond and aromaticity with C, N, O, S (C1CCCCC1is not the same asc1ccccc1)) and may indicate molecular configuration (cis / trans double bond by/or backslash ; S or R atom centered chirality by@or@@). It is less frequent to see the notation including configuration, but it is present.
$endgroup$
– Buttonwood
1 hour ago
$begingroup$
What about
Standard InChI?$endgroup$
– 0x90
8 hours ago
$begingroup$
What about
Standard InChI?$endgroup$
– 0x90
8 hours ago
1
1
$begingroup$
InChI has the same limitations as SMILES. It does not encode the 3D arrangement of atoms, only the atom types and bond types between them.
$endgroup$
– Curt F.
8 hours ago
$begingroup$
InChI has the same limitations as SMILES. It does not encode the 3D arrangement of atoms, only the atom types and bond types between them.
$endgroup$
– Curt F.
8 hours ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
2 hours ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
2 hours ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
1 hour ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
1 hour ago
2
2
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (
=), triple (#) bond and aromaticity with C, N, O, S (C1CCCCC1 is not the same as c1ccccc1)) and may indicate molecular configuration (cis / trans double bond by / or backslash ; S or R atom centered chirality by @ or @@). It is less frequent to see the notation including configuration, but it is present.$endgroup$
– Buttonwood
1 hour ago
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (
=), triple (#) bond and aromaticity with C, N, O, S (C1CCCCC1 is not the same as c1ccccc1)) and may indicate molecular configuration (cis / trans double bond by / or backslash ; S or R atom centered chirality by @ or @@). It is less frequent to see the notation including configuration, but it is present.$endgroup$
– Buttonwood
1 hour ago
add a comment |
Thanks for contributing an answer to Chemistry Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fchemistry.stackexchange.com%2fquestions%2f118460%2fis-it-possible-to-build-or-embed-the-smiles-representation-of-compounds-in-3d%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown