大阪大学医学部 Python会

Now is better than never.

化合物データ処理ソフト RDKit

2018-11-21(Wed) - Posted by 川嶋 in 技術ブログ    tag:Bioinformatics

Contents

    RDkitは化合物(低分子有機化合物)を扱うためのpythonパッケージです。ケモインフォマティクス(Cheminformatics) という創薬系の分野でよく用いられています。今回はこれの簡単な使い方を説明します。

    いつものパッケージのインポート

    In [1]:
    %matplotlib inline
    # coding:utf-8
    
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    

    RDKitのインストールとインポート

    miniconda環境かAnaconda環境を入れた後、conda install rdkitでインストールできると思います。

    In [2]:
    from rdkit import Chem
    from rdkit.Chem.Draw import IPythonConsole
    
    RDKit WARNING: [04:09:51] Enabling RDKit 2019.09.3 jupyter extensions
    

    これで、RDKitのインポートは完了です

    SMILES記法

    有機化合物の構造をグラフ構造を元に線形表現したものがSMILES記法です。これによって、文字列データのみで分子を表現することが可能になりました。 詳しい書き方は http://opensmiles.org/opensmiles.html で厳密に定義されているので参考にすると良いと思います。

    ただ、自分で書くのはしんどいので、wikipediaの該当化合物のページの横に書いてあるやつ(英語版の方が書いてる確率が高い)を使ったり、SMILESを出力するためのソフトウェアなどを使います。

    In [3]:
    benzene = Chem.MolFromSmiles("c1ccccc1")
    benzene
    
    Out[3]:
    In [4]:
    tnt = Chem.MolFromSmiles("Cc1c2cc3cc14.[N+]2(=O)[O-].[N+]3(=O)[O-].[N+]4(=O)[O-]")
    tnt
    
    Out[4]:
    In [5]:
    pna = Chem.MolFromSmiles("[H]OO[N+](=O)[O-]")
    pna
    
    Out[5]:
    In [6]:
    warfarin = Chem.MolFromSmiles("CC(=O)CC(C1=C(/O)c2ccccc2OC1=O)c3ccccc3")
    warfarin
    
    Out[6]:
    In [7]:
    taxol = Chem.MolFromSmiles("CC1=C2C(C(=O)C3(C(CC4C(C3C(C(C2(C)C)(CC1O)O)OC(=O)C5=CC=CC=C5)(CO4)OC(=O)C)O)C)O")
    taxol
    
    Out[7]:

    他にもケモインフォ用の機能がたくさんありますが、今回はこの辺で。 よいケモインフォライフを!