LoginSignup
4
4

More than 3 years have passed since last update.

脂質28(ししつにじゅうはち)

Last updated at Posted at 2020-12-21

掛け算の「九九(くく)」の中に「ししちにじゅうはち」というものがあります。そこから

脂質28(ししつにじゅうはち)

という、しょうもないダジャレを思いついたのでRDKitで出力することにしました。以下のコードは全て Google Colaboratory で動作確認済みです。

RDKit のインストール

!pip install git+https://github.com/maskot1977/rdkit_installer.git

from rdkit_installer import install
install.from_miniconda()
Collecting git+https://github.com/maskot1977/rdkit_installer.git
  Cloning https://github.com/maskot1977/rdkit_installer.git to /tmp/pip-req-build-3o2b74uz
  Running command git clone -q https://github.com/maskot1977/rdkit_installer.git /tmp/pip-req-build-3o2b74uz
Building wheels for collected packages: rdkit-installer
  Building wheel for rdkit-installer (setup.py) ... [?25l[?25hdone
  Created wheel for rdkit-installer: filename=rdkit_installer-0.1.0-cp36-none-any.whl size=2850 sha256=564e84b70833b8ab3d724b5f0dd0b0b81586a7d1d321bfc2cce25caa6c866074
  Stored in directory: /tmp/pip-ephem-wheel-cache-x1ik7i2h/wheels/22/35/68/f3dcba76a2c9080c925b783ddf87a69f63521e0378721aec73
Successfully built rdkit-installer
Installing collected packages: rdkit-installer
Successfully installed rdkit-installer-0.1.0


add /root/miniconda/lib/python3.6/site-packages to PYTHONPATH
python version: 3.6.9
fetching installer from https://repo.continuum.io/miniconda/Miniconda3-4.7.12-Linux-x86_64.sh
done
installing miniconda to /root/miniconda
done
installing rdkit
done
rdkit-2020.03.3 installation finished!

脂質28の選定

https://www.genome.jp/kegg-bin/get_htext?br08002.keg を参考に、名前の短めの脂質28分子をなんとなく選びました。

lipids = [
          ["C13854", "1-Dodecanoyl-sn-glycerol"],
          ["C03199", "1,2-Didecanoyl-sn-glycerol"],
          ["C13870", "Tributyrin"],
          ["C04315", "sn-3-D-Galactosyl-sn-2-acylglycerol"],
          ["C00187", "Cholesterol"],
          ["C18129", "Monolysocardiolipin"],
          ["C00550", "Sphingomyelin"],
          ["C03985", "Linalool"],
          ["C04824", "Lipid X"],
          ["C08490", "cis-Jasmone"],
          ["C04685", "Prostaglandin A1"],
          ["C00909", "Leukotriene A4"],
          ["C02198", "Thromboxane A2"],
          ["C06314", "Lipoxin A4"],
          ["C18171", "Resolvin E1"],
          ["C04849", "Hepoxilin A3"], 
          ["C13807", "Levuglandin E2"],
          ["C13810", "Clavulone I"],
          ["C18178", "Resolvin D1"],
          ["C13821", "1-Hexadecyl hexadecanoate"],
          ["C08545", "Squamocin"],
          ["C12153", "Epothilone A"],
          ["C01848", "Rifamycin B"],
          ["C08725", "Pelargonin"],
          ["C09758", "Isochamaejasmin"],
          ["C00858", "Formononetin"],
          ["C05230", "Phaseollidin"],
          ["C09158", "Calophyllolide"]
]
len(lipids)
28

KEGG からの mol ファイルの取得

import urllib.request
from rdkit import Chem

mols = []
for id, name in lipids:
    url = "https://www.genome.jp/dbget-bin/www_bget?-f+m+compound+" + id
    urllib.request.urlretrieve(url, id + ".mol")
    mol = Chem.MolFromMolFile(id + ".mol")
    mol.SetProp("_Name", name)
    mols.append(mol)

脂質28分子の2D表示

from rdkit.Chem import Draw

Draw.MolsToGridImage(
    mols, 
    molsPerRow=4, 
    subImgSize=(280,280), 
    legends=[x.GetProp("_Name") for x in mols] 
             )

lipid28_7_0.png

脂質28分子の3D表示

!pip install py3Dmol
Collecting py3Dmol
  Downloading https://files.pythonhosted.org/packages/dd/19/dd527b0db65e730e20c3d5e5a7efbb7fbbf8d98f9debfb47962c13f479d6/py3Dmol-0.9.1-py2.py3-none-any.whl
Installing collected packages: py3Dmol
Successfully installed py3Dmol-0.9.1
import py3Dmol
from rdkit.Chem import AllChem

add_mols = []
for m in mols:
    m_h = Chem.AddHs(m)
    AllChem.EmbedMolecule(m_h, AllChem.ETKDG())
    add_mols.append(m_h)

view = py3Dmol.view(width=400, height=680, viewergrid=(7,4), linked=False)
for (n, (i,j)) in enumerate([(a,b) for a in range(7) for b in range(4)]):
    mb = Chem.MolToMolBlock(add_mols[n])
    view.addModel(mb, 'sdf', {'keepH': False}, viewer=(i,j))
    view.setStyle({'stick': {}}, viewer=(i,j))
view.zoomTo()
view.show()

スクリーンショット 0002-12-21 12.33.53.png

脂質28をぐりぐり回して遊べるよ!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4