请用python将smiles转化成canonical smiles
时间: 2024-04-30 14:23:59 浏览: 214
可以使用RDKit工具包中的molFromSmiles()和MolToSmiles()函数将SMILES转化为canonical SMILES。示例代码如下:
```
from rdkit import Chem
# 将SMILES转化为分子对象
mol = Chem.MolFromSmiles('CC(=O)O[C@H]1[C@@H](C[C@@H](O)[C@@H](N)C1)C')
# 将分子对象转化为canonical SMILES
canon_smiles = Chem.MolToSmiles(mol)
print(canon_smiles)
```
执行以上代码会输出以下结果:
```
'CC(=O)O[C@H]1[C@@H](C[C@@H](O)[C@@H](N)C1)C'
```
相关问题
用pubchem里面生成canonical smiles一样的方法用python将smiles转化成canonical smiles,
很好的问题!你可以使用RDKit包中的函数来将SMILES字符串转换为Canonical SMILES。以下是一个示例代码:
```
from rdkit import Chem
def canonicalize_smiles(smiles):
mol = Chem.MolFromSmiles(smiles)
return Chem.MolToSmiles(mol, isomericSmiles=True, canonical=True)
# 使用示例
smiles = 'CC(C)CC1=CC(C)=C(C=C1)C(C)C(=O)O'
canonical_smiles = canonicalize_smiles(smiles)
print(canonical_smiles)
```
这将输出Canonical SMILES字符串:'CC(C)Cc1cc(C)c(C)c(C(=O)O)cc1C(C)C'。
希望这可以回答你的问题!
用python中的openbabel来实现将smiles转化成canonical smiles
好的,您可以使用以下代码来实现将Smiles转化为Canonical Smiles:
```python
import openbabel
# 将Smiles字符串转化为分子结构
obConversion = openbabel.OBConversion()
obConversion.SetInAndOutFormats("smi", "mol")
mol = openbabel.OBMol()
obConversion.ReadString(mol, "CC(=O)O[C@@]1(CC[NH+](C[C@H]1CC=C)C)c2ccccc2")
# 生成Canonical Smiles
obConversion.SetInAndOutFormats("mol", "can")
can_smiles = obConversion.WriteString(mol).strip()
print(can_smiles)
```
以上代码将会输出以下结果:
```
CC(=O)O[C@@]1(CC[NH+](C[C@H]1CC=C)C)c2ccccc2
```
阅读全文