😊
化合物のsmilesから、エナンチオマーsmilesを作成する方法
smilesでの不斉中心
smilesで不斉中心は、@もしくは@@で表記する
この@を@@にして、@@を@にすれば良い。
以下のコードでは、一旦、@をXに置き換えた後、XXを@としてXを@@に変換している。
def replace_chiral(smiles):
new_smiles1 = smiles.replace('@', 'X')
new_smiles2 = new_smiles1.replace('XX', '@')
chiral_reverce_smiles = new_smiles2.replace('X', '@@')
return chiral_reverce_smiles
グルコースの反転を試してみると、
smiles = "OC[C@@H](O1)[C@@H](O)[C@H](O)[C@@H](O)[C@@H](O)1"
replace_smiles = replace_chiral(smiles)
replace_smiles
以下のように立体が全て反転したsmilesが得られる。
この化合物を絵画すると以下の様になる。
google colabolatoryへのリンク
補足説明
smiles記法について
Pythonで文字列を置換
Discussion