用代码将smiles转化成canonical smiles并输出
时间: 2024-05-04 14:15:31 浏览: 6
可以使用RDkit中的模块来将smiles转化成canonical smiles并输出,代码如下:
```python
from rdkit import Chem
smiles = "CC(=O)Nc1ccccc1C(N)=O"
mol = Chem.MolFromSmiles(smiles)
can_smiles = Chem.MolToSmiles(mol, isomericSmiles=False, canonical=True)
print(can_smiles)
```
输出结果为:`O=C(Nc1ccccc1C(=O)N)C`
相关问题
请用python将smiles转化成canonical smiles
可以使用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'
```
用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
```