RDKit를 통해 부분 구조 검색 ~ 하이라이트 이미지 표시

1373 단어 RDKit

컨디션

  • Python 3.6
  • RDKit 2018
  • Jupyter Notebook
  • 메서드


    전제로, mols 목록에서 검색 대상의 화합물을 Mol 문자열로 들어간다고 가정합니다.다음 절차에서 일부 구조 검색을 진행하여 찾은 화합물의 일부 구조를 돋보이게 할 수 있다.
    # クエリとなる部分構造を生成
    from rdkit.Chem import AllChem, Draw, Descriptors, PandasTools
    query = AllChem.MolFromSmiles("c1ccccc1c1ccccc1")
    Draw.MolToImage(query)
    
    # 部分構造検索
    result = []
    for i, mol in enumerate(mols):
        molObj = AllChem.MolFromMolBlock(mol)
        if molObj.HasSubstructMatch(query):
            pattern = molObj.GetSubstructMatches(query)
            result.append(molObj)     
    
    이렇게 하면result를 찾은 화합물(mol 대상)을 저장할 수 있다.예를 들어 첫 번째 화합물에서 찾은 부분을 돋보이게 하기 위해서는 다음과 같다.
    # ハイライト表示
    pattern = result[0].GetSubstructMatches(query)
    Draw.MolToImage(result[0], highlightAtoms=pattern[0])
    

    여기서는 패널에 핫한 곳의 목록이 있기 때문에 최초로 핫한 부분을 돋보이게 해야 한다.
    그나저나 여러 화합물을 함께 보여줘야 돼, Draw.MolToImages를 사용합니다.
    대량의 화합물을 검색하는 상황에서 이것은 매우 느리기 때문에 일부 구조의fingerprint를 사용하여 고속화하는 방법을 다시 묘사해야 한다.

    좋은 웹페이지 즐겨찾기