🧪

【ケモインフォマティクス事例】qsar toolboxから毒性アラートを取得する

2023/11/30に公開

QSAR Toolbox(Quantitative Structure-Activity Relationship Toolbox)は、化学物質の毒性や生物活性を予測するためのコンピュータープログラムで、化学物質の評価とリスク評価に役立ちます。QSARはQuantitative Structure-Activity Relationship(量的構造-活性相関)の略で、このアプローチは、化学構造と生物活性との間の数学的な関係を使用して、未知の化学物質の活性や毒性を予測します。

  • QSAR Toolboxの主な機能と用途は以下の通りです:
    1. 化学物質の評価: QSAR Toolboxは、特定の化学物質に関する毒性、生態毒性、生物学的活性などの情報を収集し、その物質のリスクを評価します。これにより、新しい化学物質や製品の安全性が評価できます。
    2. データベースの検索: 化学物質の構造情報を入力し、関連するデータベースを検索して、類似の化合物の活性や毒性データを取得できます。これは化合物のデザインや選択に役立ちます。
    3. 毒性予測: 化学構造をもとに、特定の化学物質の毒性を予測します。これは新しい化合物のリスク評価に役立ち、動物実験を減少させるための代替手法として利用されます。
    4. モデリング支援: QSARモデリングのためのデータセットの作成や、数学的モデルの構築、モデルの評価と検証を支援します。これにより、化合物の活性や毒性の予測精度を向上させることができます。
    5. リスク評価: 化学物質のリスク評価を行い、環境への影響や人間の健康への潜在的なリスクを評価します。これは規制当局や産業界での使用に役立ちます。
      QSAR Toolboxは、特に新しい化学物質や医薬品の開発、環境評価、化学品の規制などの分野で広く使用されています。化学物質の評価とリスク評価は、化学工業や医薬品業界において重要な要素であり、QSARツールはこれらの課題に対処するための有用なツールとして利用されています。

QSAR Toolboxをインストール(https://qsartoolbox.org/download/)

メソッド

import requests
import os
import json
import time
import collections
from shutil import which
from os.path import join
from datetime import datetime
import random
import csv
from subprocess import PIPE, Popen
import traceback

class QSARToolbox:
    def __init__(self, port):
        self.url = f'http://127.0.0.1:{port}/api/v6/'
    def search(self, namespace, identifier=None):
        params = {}
        if namespace == 'cas':
            url = self.url + f'search/cas/{identifier}/false'
        elif namespace == 'ecnumber':
            url = self.url + f'search/ecnumber/{identifier}/false'
        elif namespace == 'name':
            url = self.url + f'search/name/{identifier}/0/false'
        elif namespace == 'smiles':
            url = self.url + f'search/smiles/false/true'
            params = {'smiles': identifier}
        elif namespace == 'chemId':
            url = self.url + f'search/chemical/{identifier}'
        elif namespace == 'databases':
            url = self.url + 'search/databases'
        else:
            print('Invalid namespace')
        res = requests.get(url, params=params)
        if res.text == '':
            return None
        return json.loads(res.text)
    def dart(self, chemId):
        url = self.url + f'profiling/7d637c92-6764-476b-903e-09735c1d3119/{chemId}'
        res = requests.get(url)
        return json.loads(res.text)
    
    def guidRequest(self, guid, chemId):
        url = self.url + f'profiling/{guid}/{chemId}'
        res = requests.get(url)
        return json.loads(res.text)
    
    def guidFromSmiles(self, smiles, guid):
        performs = self.search('smiles', smiles)
        if performs is None:
            return None
        responses = []
        for perform in performs:
            chemid = perform['ChemId']
            res = self.guidRequest(guid, chemid)
            for r in res:
                if not r in res:
                    responses.append(r)
        return responses

    def dartFromSmiles(self, smiles):
        performs = self.search('smiles', smiles)
        if performs is None:
            return None
        darts = []
        for perform in performs:
            chemid = perform['ChemId']
            dart = self.dart(chemid)
            for d in dart:
                if not d in darts:
                    darts.append(d)
        return darts

実装

QSAR Toolbox Websuiteを立ち上げてポート番号を取得する。

port = 'QSAR Toolbox Websuiteのポート番号'
qsar = QSARToolbox(port=port)

SIMILESから化合物のidを取得する

cid = qsar.search('smiles', 'COCCOCCO')[0]['ChemId']
>> cid = '02741aea-6c29-56af-9c37-38c9c62e0136'

QSAR Toolboxで設定されている毒性のidと化合物のidをセットして化合物の毒性情報を取得する。

株式会社piponでは技術でお困りのことがある方はオンライン相談が可能です。
こちらから会社概要資料をDLできます!
お問い合わせ内容に「オンライン相談希望」とご記載ください。
https://share.hsforms.com/19XNce4U5TZuPebGH_BB9Igegfgt

株式会社piponでは定期的に技術勉強会を開催しています。
ChatGPT・AI・データサイエンスについてご興味がある方は是非、ご参加ください。
https://chatgptllm.connpass.com/

株式会社piponではChatGPT・AI・データサイエンスについて業界ごとの事例を紹介しています。ご興味ある方はこちらのオウンドメディアをご覧ください。
https://bigdata-tools.com/

株式会社piponのテックブログ

Discussion