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?
Span command across LaTeX environments
Monty Hall Problem with a Fallible Monty
Are gangsters hired to attack people at a train station classified as a terrorist attack?
Why can't a country print its own money to spend it only abroad?
What is the purpose of this "red room" in "Stranger Things"?
How can the artificial womb be made affordable for the common people?
Are glider winch launches rarer in the USA than in the rest of the world? Why?
Where is this photo of a group of hikers taken? Is it really in the Ural?
Is the apartment I want to rent a scam?
Are symplectomorphisms of Weil–Petersson symplectic form induced from surface diffeomorphisms?
Is it OK to accept a job opportunity while planning on not taking it?
dos2unix is unable to convert typescript file to unix format
Other than a swing wing, what types of variable geometry have flown?
Inverse Colombian Function
What Is the Meaning of "you has the wind of me"?
How to correct errors in proofs of an accepted paper
How important is a good quality camera for good photography?
ExactlyOne extension method
Can you drop a weapon/item when it is not your turn?
I have a domain, static IP address and many devices I'd like to access outside my house. How do I route them?
What happens if an IRB mistakenly approves unethical research?
If a check is written for bill, but account number is not mentioned on memo line, is it still processed?
Considerations when providing money to one child now, and the other later?
Character Frequency in a String
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 1 hour ago
0x90
asked 8 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 print
ed 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
7 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.
6 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 - マーチン♦
1 hour ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
45 mins ago
1
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=
), triple (#
) bond and aromaticity with C, N, O, S (C1CCCCC1
is 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
31 mins 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 print
ed 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
7 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.
6 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 - マーチン♦
1 hour ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
45 mins ago
1
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=
), triple (#
) bond and aromaticity with C, N, O, S (C1CCCCC1
is 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
31 mins 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 print
ed 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
7 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.
6 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 - マーチン♦
1 hour ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
45 mins ago
1
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=
), triple (#
) bond and aromaticity with C, N, O, S (C1CCCCC1
is 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
31 mins 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 print
ed 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 print
ed 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 6 hours ago
answered 7 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
7 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.
6 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 - マーチン♦
1 hour ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
45 mins ago
1
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=
), triple (#
) bond and aromaticity with C, N, O, S (C1CCCCC1
is 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
31 mins ago
add a comment |
$begingroup$
What aboutStandard InChI
?
$endgroup$
– 0x90
7 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.
6 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 - マーチン♦
1 hour ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
45 mins ago
1
$begingroup$
@0x90 SMILES provide constitution, bond order (single, double (=
), triple (#
) bond and aromaticity with C, N, O, S (C1CCCCC1
is 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
31 mins ago
$begingroup$
What about
Standard InChI
?$endgroup$
– 0x90
7 hours ago
$begingroup$
What about
Standard InChI
?$endgroup$
– 0x90
7 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.
6 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.
6 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 - マーチン♦
1 hour ago
$begingroup$
Good answer. For the sake of completeness, I'd mention Open Babel, especially if you just need a 'conversion' tool.
$endgroup$
– Martin - マーチン♦
1 hour ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
45 mins ago
$begingroup$
So what does SMILE give? Is it the molecular configuration or chemical confirmation?
$endgroup$
– 0x90
45 mins ago
1
1
$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
31 mins 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
31 mins 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