RDKit 사용 노트

차리다


환경이야, 미리 설치해야 할 물건이야.

컨디션

  • Anaconda
  • Ubuntu 18.04.1(on WSL2)
  • 설치하다.


    conda로 RDKit용 가상 환경 만들기
    $ conda create -c rdkit -n (仮想環境名) rdkit
    
    직접import rdkit사용하면 ○○ 없는 라이브러리라고 해서 다운로드(본인의 경우libxrender1
    $ sudo apt install libxrender1
    
    matplotlib로 추가 scikit-learn 또는 $ conda install XXXX 설치
    (나중에 기사 작성용tabulate

    시험해 보다


    디스플레이 분자

    from rdkit import Chem
    from rdkit.Chem import Draw
    
    # SMILES記法で書いた分子をmolファイルと呼ばれる形式に変更
    molecule_1 = Chem.MolFromSmiles('Cc1ccccc1')
    
    # mol形式ファイルを画像に変換 (display)
    Draw.MolToImage(molecule_1)
    
    [결과 출력]

    지문 생성


    아래 기사를 참고하여 화합물의 SMILES와 용해도를 얻은 데이터.
    RDKit과 Sckit-learn에서 화학정보학에 들어가다
    smile
    XXXX
    logS
    0
    O=C(C)N
    60-35-5
    1.58
    1
    NNC
    60-34-4
    1.34
    2
    O=C(C)O
    64-19-7
    1.22
    3
    N1CCCC1
    123-75-1
    1.15
    4
    O=C(N)NO
    127-07-1
    1.12
    SMILE 형식으로 저장된 것을 MOL 형식으로 변환합니다.이후 지문을 얻었다.
    -radius: 반지름.관심의 원자에서 몇 개의 원자 첨단까지 고려하다.
    smiles = df['smile']
    molecules = [Chem.MolFromSmiles(smile) for smile in smiles]
    
    # 試しに一つだけフィンガープリントを作成
    from rdkit.Chem import AllChem
    molecule_1 = molecules[0]
    
    fingerprint = AllChem.GetMorganFingerprintAsBitVect(mol=molecule_1, radius=2, nBits=2048)
    # -> rdkit.DataStructs.cDataStructs.ExplicitBitVectというクラスのデータが作成
    
    fingerprint.ToBitString()
    # -> 000000000000000100000000000000100のような表現に変更
    # -> あとはこれを使って好きなように機械学習のモデルに突っ込めばOK
    
    
    

    좋은 웹페이지 즐겨찾기