请用python将smiles转化成canonical smiles
时间: 2024-05-06 22:22:01 浏览: 205
当然,我可以回答这个问题。你可以使用RDKit来实现这个转换。以下是一个简单的示例代码:
```python
from rdkit import Chem
smiles = 'CC(=O)OCC(C1=C(C=CC=C1)Cl)N'
mol = Chem.MolFromSmiles(smiles)
canonical_smiles = Chem.MolToSmiles(mol, isomericSmiles=False)
print(canonical_smiles)
```
输出结果应该是:
```
CC(=O)OCC(N)c1ccc(Cl)cc1
```
这是这个分子的canonical SMILES表示。
相关问题
用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
```
阅读全文