Python-Handspiel (berechnet voller Mordred)

Was ist dieser Artikel?

Ein Stück Chemoinfomatik-Artikel. Er sagte, dass er Mordred (1.0.0), eine Deskriptor-Berechnungsbibliothek, verwendete und fand schließlich die Inf als Berechnungsergebnis.

Hintergrund

Vor kurzem habe ich mich eine Weile mit dem Ergebnis der Deskriptorberechnung befasst. Es scheint also ein Ergebnis von "inf" zu geben. Aber ich habe es nie gesehen. Ich suchte leicht nach ungefähr 1000, konnte es aber nicht finden. Öffnen wir es dann erneut und berechnen Zehntausende von Fällen, um es zu finden.

Politik

Mordred Berechnung normalerweise. Fügen Sie also hinzu, außer jedes Mal, wenn ein Fehler auftritt. Ich hatte das Gefühl, dass es noch lange funktionieren würde.

Umgebung

Die folgende Umgebung wurde aus Anaconda unter Windows 10 Pro (x64) erstellt.

# Name                    Version                   Build  Channel
python                    3.6.8                h9f7ef89_7
rdkit                     2017.09.2.0      py36he334aed_1    rdkit
mordred                   1.0.0                    py36_0    mordred-descriptor

Ich denke nicht, dass es etwas anderes als das oben Genannte beeinflussen wird.

Ergebnis

Dies ist der Code.

from rdkit import Chem
from mordred import Calculator, descriptors
from mordred import error as err
from datetime import datetime

descs = Calculator(descriptors, ignore_3D=False).descriptors

# ------------------------------------------------------
#  functions
# ------------------------------------------------------


# get compounds
def get_mols(file):
    return Chem.SDMolSupplier(file)


# write text
def output_text(filename, mode, values):
    with open(filename + '.csv', mode) as f:
        f.write(','.join(values) + '\n')


# calculation
def calculate_desc(calc, mol):
    value = None
    try:
        value = calc(mol)
    except ZeroDivisionError as e:
        value = 'errZero'
    except IndexError as e:
        value = 'errIndex'
    except ValueError as e:
        value = 'errValue'
    except NameError as e:
        value = 'errNone'
    except err.Missing3DCoordinate as e:
        value = 'err3D'
    except err.MultipleFragments as e:
        value = 'errMulti'
    return str(value)


# print log
def printlog(value):
    print(str(datetime.now()) + ',' + str(i))

# ------------------------------------------------------
#  main
# ------------------------------------------------------


# get compounds
filename = 'CHEMBL503873'
mols = get_mols(filename + '.sdf')

# get calculators
headers = list()
calcs = list()
headers.append('Name')
for i in range(1824):
    calcs.append(descs[i])
    headers.append(calcs[i].__str__())

# output
output_text(filename, 'w', headers)
printlog(0)
for i, mol in enumerate(mols):
    values = list()
    if mol is not None:
        values.append(mol.GetProp('_Name'))
        for calc in calcs:
            values.append(calculate_desc(calc, mol))
        output_text(filename, 'a', values)
        if i % 100 == 0:
            printlog(i)

Also binde ich es in das Skript ein, aber das ist die Verbindung, die ich gefunden habe.

https://www.ebi.ac.uk/chembl/compound_report_card/CHEMBL503873/

CHEMBL503873 C70H108O24

CO[C@H]1C[C@H](COC[C@@H]2[C@@H](C)O[C@H](C[C@@H]2OC)O[C@H]3CC[C@]4(C)[C@H]5C[C@@H](OC(=O)\C=C\c6ccccc6)[C@]7(C)[C@@](O)(CC[C@]7(O)[C@]5(O)CC=C4C3)C(=O)C)O[C@@H](C)[C@H]1COC[C@H]8C[C@H](OC)[C@H](COC[C@H]9C[C@@H](OC)[C@@H](O[C@H]%10O[C@@H](CO)[C@H](O)[C@@H](O)[C@@H]%10O)[C@H](C)O9)[C@@H](C)O8

Dies ist also eine Bestätigung für alle Fälle.

■ Python-Handspiel (Deskriptoren in mordred-Einheiten berechnen) https://qiita.com/siinai/items/026aad1f05c9f6d51199

(py36) D:\py>python 71-01.py
GRAVH
-------------------------------------

inf

Jep. Sie haben sicherlich inf gefunden.

Impressionen

Ich habe zum ersten Mal seit langer Zeit einen etwas ernsten Artikel veröffentlicht. Aber es ist doch interessant, die Hände zu bewegen. Es braucht jedoch nur Zeit. Obwohl ich eine CPU mit 4 Kernen / 8 Threads verwende, beträgt der CPU-Auslastungsfaktor 30%. Oh, das stimmt. Nun, es wäre schön, ernsthaft einen Multithread zu erstellen und ihn nach Computer oder Verbindung zu teilen. Ich möchte es später versuchen.

Nachtrag

Vorerst werde ich die Berechnungsergebnisse einfügen.

Nun ... Ich habe das Gefühl, dass ich mit dieser Berechnung mehr als einen Tag lang mein Bestes mit 100% CPU-Auslastung geben konnte ... Ich glaube nicht ... Es ist schwer. Ich möchte eine GPU, aber ich möchte auch eine CPU. Das sind 16 Kerne.

CHEMBL10786 CHEMBL263256 CHEMBL503873 CHEMBL501567 CHEMBL500702 CHEMBL501093 CHEMBL501094 CHEMBL505931 CHEMBL444732 CHEMBL444155 CHEMBL445174 CHEMBL445253 CHEMBL444510 CHEMBL501306 CHEMBL502034 CHEMBL499522 CHEMBL500203 CHEMBL498862 CHEMBL503717 CHEMBL503722 CHEMBL504025 CHEMBL504038 CHEMBL502642 CHEMBL500358 CHEMBL500619 CHEMBL500622 CHEMBL500058 CHEMBL500182 CHEMBL500184 CHEMBL504187 CHEMBL525749 CHEMBL525930 CHEMBL526006 CHEMBL526343 CHEMBL526355 CHEMBL526373 CHEMBL499978 CHEMBL499980 CHEMBL500099 CHEMBL500244 CHEMBL508221 CHEMBL500219 CHEMBL500223 CHEMBL506996 CHEMBL507128 CHEMBL525750 CHEMBL503778 CHEMBL503489 CHEMBL503495 CHEMBL507216 CHEMBL502664 CHEMBL502666 CHEMBL503666 CHEMBL503894 CHEMBL525940 CHEMBL525945 CHEMBL526501 CHEMBL500441 CHEMBL500451 CHEMBL502457 CHEMBL525219 CHEMBL525221 CHEMBL527042 CHEMBL525450 CHEMBL526129 CHEMBL526130 CHEMBL508387 CHEMBL508391 CHEMBL498956 CHEMBL503974 CHEMBL503979 CHEMBL507601 CHEMBL504097 CHEMBL524833 CHEMBL525962 CHEMBL525424 CHEMBL525951 CHEMBL526360 CHEMBL525216 CHEMBL525217 CHEMBL509192 CHEMBL501147 CHEMBL501266 CHEMBL503261 CHEMBL526689 CHEMBL526690 CHEMBL498967 CHEMBL501641 CHEMBL500002 CHEMBL500011 CHEMBL524521 CHEMBL506061 CHEMBL504078 CHEMBL508019 CHEMBL500187 CHEMBL500103 CHEMBL445002 CHEMBL525762 CHEMBL525763 CHEMBL525398 CHEMBL525399 CHEMBL526113 CHEMBL526115 CHEMBL526119 CHEMBL526121 CHEMBL526181 CHEMBL502415 CHEMBL502420 CHEMBL502978 CHEMBL505143 CHEMBL501291 CHEMBL502603 CHEMBL503695 CHEMBL504000 CHEMBL504159 CHEMBL526190 CHEMBL526301 CHEMBL501788 CHEMBL506306 CHEMBL500524 CHEMBL499537 CHEMBL501823 CHEMBL504080 CHEMBL504417 CHEMBL507534 CHEMBL502988 CHEMBL500373 CHEMBL500375 CHEMBL505276 CHEMBL500264 CHEMBL526336 CHEMBL525083 CHEMBL525086 CHEMBL525089 CHEMBL503245 CHEMBL503306 CHEMBL501970 CHEMBL503617 CHEMBL503852 CHEMBL503858 CHEMBL502077 CHEMBL501569 CHEMBL504902 CHEMBL526516 CHEMBL526681 CHEMBL526682 CHEMBL525441 CHEMBL501317 CHEMBL501323 CHEMBL502678 CHEMBL503342 CHEMBL507824 CHEMBL499931 CHEMBL499957 CHEMBL500483 CHEMBL500788 CHEMBL525771 CHEMBL503047 CHEMBL503286 CHEMBL504214 CHEMBL504401 CHEMBL525073 CHEMBL525624 CHEMBL526743 CHEMBL526874 CHEMBL526876 CHEMBL524358 CHEMBL524487 CHEMBL524488 CHEMBL527050 CHEMBL524494 CHEMBL524498 CHEMBL525068 CHEMBL525069 CHEMBL525407 CHEMBL525409 CHEMBL527084 CHEMBL591794 CHEMBL592148 CHEMBL592149 CHEMBL1208990 CHEMBL524531 CHEMBL524539 CHEMBL593680 CHEMBL589995 CHEMBL589997 CHEMBL525394 CHEMBL526678 CHEMBL526890 CHEMBL525224 CHEMBL525386 CHEMBL526131 CHEMBL596000 CHEMBL526544 CHEMBL526545 CHEMBL527072 CHEMBL527074 CHEMBL525419 CHEMBL525991 CHEMBL530121 CHEMBL526741 CHEMBL595999 CHEMBL526703 CHEMBL526853 CHEMBL526916 CHEMBL526922 CHEMBL525076 CHEMBL524356 CHEMBL524357 CHEMBL525237 CHEMBL525242 CHEMBL525402 CHEMBL530345 CHEMBL605624 CHEMBL608706 CHEMBL605628 CHEMBL595776 CHEMBL591446 CHEMBL607837 CHEMBL1097890 CHEMBL589278 CHEMBL589762 CHEMBL602303 CHEMBL605828 CHEMBL609471 CHEMBL604989 CHEMBL608415 CHEMBL1097888 CHEMBL1213233 CHEMBL611968 CHEMBL1099238 CHEMBL132931 CHEMBL135376 CHEMBL136703 CHEMBL194552 CHEMBL207341 CHEMBL214100 CHEMBL216830

Recommended Posts

Python-Handspiel (berechnet voller Mordred)
Python Handspiel (Division)
Python-Handspiel (einzeilige Notation von if)
Python-Handspiel (zweidimensionale Liste)
Vollständiges Verständnis des Python-Debuggens
Python-Handspiel (Argparse-Mindestcode)
Python-Handspiel (Pandas / DataFrame-Beginn)
Python-Handspiel (Deskriptorberechnung: seriöse Version)
Vollständiges Verständnis von Python-Threading und Multiprocessing
Python-Handspiel (Beginnen wir mit AtCoder?)
Spielen Sie Python async
Spielen Sie mit 2016-Python
Python-Grundlagen ①
Grundlagen von Python ①
Python-Handspiel (Interoperation zwischen CSV und PostgreSQL)
Kopie von Python
Einführung von Python
Asynchrone Verarbeitung von Python ~ Asynchron vollständig verstehen und warten ~
Python-Handspiel (Spaltennamen aus CSV-Datei abrufen)
[Python] Operation der Aufzählung
Liste der Python-Module
Vereinheitlichung der Python-Umgebung
Kopie der Python-Einstellungen
Grundlagen der Python-Scraping-Grundlagen
[Python] Verhalten von Argmax
Spielen Sie YouTube in Python
Verwendung von Python-Einheimischen ()
der Zen von Python
Installieren von Python 3.3 rc1
Python Bit vollständige Suche
# 4 [Python] Grundlagen der Funktionen
Grundkenntnisse in Python
Nüchterne Trivia von Python3
Zusammenfassung der Python-Argumente
Grundlagen von Python: Ausgabe
Installation von matplotlib (Python 3.3.2)
Anwendung von Python 3 vars
Verschiedene Verarbeitung von Python
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python