Python-Variablen und Datentypen, die mit Chemoinfomatik gelernt wurden

Einführung

Die Arbeit von Pharmaunternehmen befasst sich häufig mit der Struktur von Verbindungen. Fähigkeiten zur Messung der Konzentration und Strukturanalyse von intern synthetisierten neuen Wirkstoffkandidatenverbindungen und ihren Metaboliten sowie endogenen Metaboliten (Aminosäuren, Zucker, Lipide usw.), die natürlicherweise im Körper vorhanden sind, sind wichtig.

Daher werden wir hier die Python-Programmierung mit Lipidomics erklären, einer umfassenden Analyse der im lebenden Körper vorhandenen Lipide. Es gibt molekulare Spezies mit verschiedenen Strukturen im Körper von Lipiden, und es gibt mehr als 1 Million molekulare Spezies, die mit * in silico * Strukturen erzeugen können. Es ist praktisch schwierig, die Struktur jeder dieser Molekülspezies manuell zu beschreiben und physikalische Eigenschaftswerte wie Molekulargewicht und Polarität zu berechnen, und die Programmierung ist wesentlich.

Wenn wir die Struktur und die physikalischen Eigenschaften von Lipiden durch Programmierung handhaben können, wird dies auf die Chemoinfomatik für neue Wirkstoffkandidaten anwendbar sein, also hoffe ich, dass Sie es lernen werden.

Dieses Mal werde ich über "Variablen und Datentypen" erklären. Wir werden hauptsächlich praktische Beispiele für Chemoinfomatik erläutern. Wenn Sie also die Grundlagen überprüfen möchten, lesen Sie bitte den folgenden Artikel, bevor Sie diesen Artikel lesen.

Forscher eines Pharmaunternehmens haben die grundlegenden Beschreibungsregeln von Python zusammengefasst Forscher von Pharmaunternehmen haben Variablen in Python zusammengefasst Forscher von Pharmaunternehmen haben die in Python verwendeten Operatoren zusammengefasst

Bitte lesen Sie den folgenden Artikel über Umweltbau.

So installieren Sie Anaconda für Forscher von Pharmaunternehmen

Zeichenfolgen und Zahlen

Variablen erstellen und ausgeben

Sie können eine neue Variable erstellen, indem Sie "Variable = Wert" setzen. Sie können auch print () verwenden, um die Objekte in Klammern zu drucken (Variablenwerte, Programmausführungsergebnisse usw.). Zeichenfolgen nach "#" werden als Kommentare erkannt und aus dem Ausführungsbereich des Programms ausgeschlossen. Es kann verwendet werden, um Notizen in das Skript zu schreiben oder um zu verhindern, dass der Teil, in dem der Fehler auftritt, ausgeführt wird.

lipid_class = 'FA' #String
Cn = 16 #Numerischer Wert
Un = 0 #Numerischer Wert

print(lipid_class) #Variables "Lipid"_Geben Sie den Wert von "class" aus.
print(Cn) #Geben Sie den Wert der Variablen "Cn" aus.
print(Un) #Geben Sie den Wert der Variablen "Un" aus.

Sie können auch mehrere Variablen in einer Zeile erstellen, wie unten gezeigt. Wenn Sie "print (Objekt 1, Objekt 2)" einstellen, wird es auch als "Objekt 1 (Raum halber Breite) Objekt 2" ausgegeben. Wenn Sie den Raum mit halber Breite in ein anderes Zeichen oder Symbol ändern möchten, können Sie ihn mit sep = ändern. Wenn "sep =" gesetzt ist, werden "Objekt 1" und "Objekt 2" verkettet und ohne Leerzeichen ausgegeben.

Cn, Un = 16, 0 # 「Cn = 16、Un =Bedeutet "0"
print(Cn) #"16" wird ausgegeben
print(Un) #"0" wird ausgegeben
print(Cn, Un) #"160" wird ausgegeben
print(Cn, Un, sep='Wann') # 「16Wann0」Wann出力される

So benennen Sie Variablen und Notizen

Erstens verwendet der Variablenname grundsätzlich englische Wörter, und es ist nicht möglich, einen Variablennamen anzugeben, der mit einer Zahl beginnt (es ist auch möglich, eine Zahl zu verwenden, wenn es sich um das zweite Zeichen oder später handelt). Es ist gut, einen Variablennamen zu verwenden, mit dem Sie auf einen Blick sehen können, welcher Wert in der Variablen gespeichert ist. Wenn es mehrere Wörter gibt, trennen Sie sie mit "_" (Unterstrich) und schreiben Sie grundsätzlich jedes Wort in allen unteren Buchstaben.

Wenn Sie Variablennamen angeben, müssen Sie darauf achten, keine Schlüsselwörter (reservierte Wörter) zu verwenden, die im Voraus in Python definiert wurden. Sie können die reservierten Wörter mit dem folgenden Skript überprüfen. (Sie müssen die Details wie "Importieren" vorerst nicht kennen. Ich hoffe, Sie können dies überprüfen, indem Sie einfach das folgende Skript als Copy & Pace ausführen.)

import keyword
import pprint


pprint.pprint(keyword.kwlist, compact=True)

Das Ausführungsergebnis ist wie folgt. Verwenden Sie keine Variablennamen für die unten aufgeführten Elemente.

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue',
 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global',
 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise',
 'return', 'try', 'while', 'with', 'yield']

Hinweise zu Zeichenfolgen und zur Überprüfung des Datentyps

Die Zeichenfolge muss in ' (Anführungszeichen) eingeschlossen sein. Umgekehrt werden in Anführungszeichen eingeschlossene Zahlen auch als Zeichenfolgen behandelt.

Cn_int = 16 #"16" als numerischer Wert
print(type(Cn_int)) # <class 'int'>

Cn_str = '16' #"16" als Zeichenkette
print(type(Cn_str)) # <class 'str'>

Sie können den Datentyp des Objekts in Klammern überprüfen, indem Sie "Typ" verwenden.

Fluchtabfolge

Eine Sonderzeichenfolge (Escape-Sequenz) wird bereitgestellt, wenn Sie ein Angebot schreiben oder eine neue Zeile im Angebot beginnen möchten. Ein Beispiel ist unten gezeigt.

print('molecular species: FA 16:0')
print('\'molecular species: FA 16:0\'') #Zitate hinzufügen
print('molecular species: \nFA 16:0') #Fügen Sie einen Zeilenumbruch ein

Im obigen Beispiel steht "" für "sich selbst". Daher wird das Zitat getrennt von dem Zitat ausgegeben, das die Zeichenfolge umgibt. Außerdem zeigt \ n einen Zeilenumbruch an. Daher wird im Ausgabeergebnis von "Drucken" ein Zeilenumbruch nach "Molekülspezies" eingefügt: ".

String-Verkettung

Hier ist "FA", das in der Variablen "lipid_class" gespeichert ist, eine Abkürzung für "Fettsäure" oder "Fettsäure". lipid_class ist die" Lipidklasse "auf Japanisch und gibt die Kategorie der Lipide an. "Cn" ist auch die "Anzahl der Kohlenstoffatome", dh die Anzahl der Kohlenstoffatome (Länge der Kohlenstoffkette). "Un" gibt die "Anzahl (Grad) der Ungesättigtheit" an, dh den Grad der Ungesättigtheit (die Anzahl der Doppelbindungen).

In der Lipidklasse haben Fettsäuren die einfachste Struktur, und wenn Sie "Cn" und "Un" angeben, ist die Struktur fast bestimmt. Viele der anderen Lipidklassen haben eine chemische Struktur, in der Fettsäuren wie Glycerin an das Gerüst gebunden sind, und der Gerüstteil charakterisiert die Lipidklasse. Durch Kombinieren der Lipidklasse, der Anzahl der Kohlenstoffatome und des Sättigungsgrades wird die molekulare Spezies des Lipids nahezu bestimmt. Betrachten Sie also die Kombination von "lipid_class", "Cn" und "Un" als Zeichenfolge.

Die molekulare Spezies der Fettsäuren mit 16 Kohlenstoffatomen und 0 Doppelbindungen ist übrigens Palmitinsäure. Die chemische Struktur von Palmitinsäure ist auf der unten verlinkten Seite angegeben. Bitte beziehen Sie sich darauf. Palmitic acid (FA 16:0) | LIPID MAPS Structure Database

lipid_class = 'FA'
Cn = 16
Un = 0

molecular_species = lipid_class + ' ' + str(Cn) + ':' + str(Un)
print(molecular_species) # 「FA 16:0 "wird ausgegeben

Sie können Zeichenfolgen mit + kombinieren. Hier ist '' ' ein Raum halber Breite. Außerdem ist "str" eine Abkürzung für "string", die das Objekt in Klammern in Zeichenfolgendaten konvertiert. Dies liegt daran, dass Cn und Un hier Zahlen sind und daher nicht so wie sie sind als Zeichenfolge kombiniert werden können. Darüber hinaus ist es auf dem Gebiet der Lipidomik üblich, "Cn" und "Un" mit ":" zu verbinden.

Verwenden Sie "int" oder "float", um eine Zeichenfolgenummer wieder in numerische Daten umzuwandeln. "int" ist eine Abkürzung für "Ganzzahl" und bezieht sich auf eine Ganzzahl, und "float" bezieht sich auf eine Zahl mit einem Dezimalpunkt (Gleitkommazahl).

Cn = 16

Cn_str = str(Cn)
Cn_int = int(Cn_str)
print(type(Cn_str)) # <class 'str'>
print(type(Cn_int)) # <class 'int'>


exact_mass = 256.2402 #Präzisionsmasse von Palmitinsäure
exact_mass_str = str(exact_mass)
exact_mass_float = float(exact_mass_str)
print(type(exact_mass_str)) # <class 'str'>
print(type(exact_mass_float)) # <class 'float'>

Der Unterschied zwischen der Verwendung des Operators "+" für numerische Daten und der Verwendung für Zeichenkettendaten ist wie folgt.

Cn = 16
Un = 0

print(Cn + Un) #Zahlenwert "16"
print(type(Cn + Un))

print(str(Cn) + str(Un)) #Zeichenkette "160" (Zeichenkette, in der 1s, 6s und 0s aufgereiht sind)
print(type(str(Cn) + str(Un)))

Wenn numerische Variablen addiert werden, erfolgt die Addition normal, aber wenn Stringvariablen addiert werden, werden die Zeichenketten kombiniert. (Das Hinzufügen von "Cn" und "Un" hat keine chemische Bedeutung, aber hier wird es als Beispiel gegeben, um das Verhalten des Programms zu zeigen.)

Sie können Zeichenfolgen auch kombinieren (Variablenwerte in Zeichenfolgen einbetten), indem Sie wie folgt schreiben.

lipid_class = 'FA'
Cn = 16
Un = 0

molecular_species = '{0} {1}:{2}'.format(lipid_class, Cn, Un)
print(molecular_species) #Dies ist auch "FA 16:0 "wird ausgegeben

Schreiben Sie "{}" in das Anführungszeichen, ordnen Sie die Variablen in den Klammern des "Formats" an und setzen Sie die 0, 1 und 2 in die Klammern des "Formats" in der Reihenfolge "{}". Es wird aus der Variablen links eingebettet. In der Welt der Programmierung beginnen Seriennummern häufig bei Nummer 0 anstelle von Nummer 1. Seien Sie also vorsichtig, wenn Sie mit der Programmierung beginnen.

Darüber hinaus ist es in Python 3.6 und höher möglich, Variablen mit einer einfacheren Schreibmethode namens "f-string" in eine Zeichenfolge einzubetten, wie unten gezeigt.

lipid_class = 'FA'
Cn = 16
Un = 0

molecular_species = f'{lipid_class} {Cn}:{Un}'
print(molecular_species)

Legen Sie einfach die Zeichenfolge, die Sie erstellen möchten, als "Zeichenfolge" fest und geben Sie den Variablennamen in "{}" ein. Der Teil "{}" wird durch die angegebene Variable ersetzt.

Ersetzen von Zeichenketten

Sie können replace verwenden, um eine bestimmte Zeichenfolge durch eine andere zu ersetzen.

molecular_species = 'FA 16:0'

print(molecular_species.replace(':', '_')) # 「:"(Doppelpunkt) bis"_"(Unter Punktzahl)
print(molecular_species.replace(' ', '')) #Raum mit halber Breite löschen

Anwendung: SMILES-Notation

Es gibt eine Methode namens "SMILES-Notation (Simplified Molecular Input Line Entry System)" zur Beschreibung der Struktur einer Verbindung. Wie unten gezeigt, kann die chemische Struktur nur mit einer Zeichenkette beschrieben werden.

smiles_pa = 'OC(' + 'C' * (Cn - 1) + ')=O' # 'pa'Ist'palmitic acid'Abkürzung für
print(smiles_pa)

Wie oben erwähnt, beschreibt die SMILES-Notation die chemische Struktur ohne Verwendung des Wasserstoffatoms (H). Mit der SMILES-Notation kann die Molekülstruktur automatisch beschrieben werden, selbst wenn sich der Wert von "Cn" ändert. * kann nicht nur zum Multiplizieren von Zahlen verwendet werden, sondern auch zum Wiederholen derselben Zeichenfolge.

Als nächstes betrachten wir eine molekulare Spezies namens Linolsäure, die 18 Kohlenstoffatome und 2 Doppelbindungen aufweist. Linoleic acid (FA 18:2) | LIPID MAPS Structure Database

smiles_la = 'OC(CCCCCCC/C=C\C/C=C\CCCCC)=O' #Linolsäure

Doppelverknüpfungen werden mit = beschrieben. / und \ geben an, ob die Doppelbindung * cis * oder * trans *, * cis * ist, wenn die Symbole vor oder nach dem Kohlenstoffatom, das die Doppelbindung bildet, unterschiedliche Orientierungen haben und wenn sie dieselbe Orientierung haben. Es wird * trans *.

smiles_la = 'OC(CCCC/C=C\C/C=C\CCCCCCCC)=O' #Linolsäure

smiles_la_oxidized = smiles_la.replace('/C=C\C', 'C(O)CC')
print(smiles_la_oxidized)

Auf diese Weise kann das oben erwähnte "Ersetzen" verwendet werden, um die Oxidation des doppelt gebundenen Teils auszudrücken. Übrigens scheint es als ".replace (" / C = C \ "," C (O) C ")" ersetzt werden zu können, aber der Teil nach "/ C = C" "" \ ". `Wird die Escape-Sequenz oben erwähnt und die Anführungszeichen zum Schließen der Zeichenfolge werden als Anführungszeichen in der Zeichenfolge erkannt, was zu einem Syntaxfehler führt. Also habe ich hier ein weiteres Kohlenstoffatom rechts platziert und es ".replace (" / C = C \ C "," C (O) CC ")" gemacht ".

Boolescher Wert

Ein boolescher Wert (boolescher Typ) bezieht sich auf einen Datentyp, der entweder "True" oder "False" ist. Es kann verwendet werden, um zu vergleichen, ob mehrere Variablen gleich sind, oder um herauszufinden, ob eine bestimmte Bedingung erfüllt ist.

palmitic_acid = 'FA 16:0' #Palmitinsäure (gesättigte Fettsäure mit 16 Kohlenstoffatomen)
stearic_acid = 'FA 18:0' #Stealinsäure (gesättigte Fettsäure mit 18 Kohlenstoffatomen)

print(molecular_species == palmitic_acid) # True
print(molecular_species == stearic_acid) # False

Eine Fettsäure mit 16 Kohlenstoffatomen und 0 Doppelbindungen ist "Palmitinsäure", nicht "Stearinsäure".

Zusammenfassung

Hier haben wir Python-Variablen und Datentypen erklärt, wobei wir uns auf praktisches Wissen konzentrieren, das in der Chemoinfomatik verwendet werden kann. Lassen Sie uns die wichtigsten Punkte noch einmal überprüfen.

Als nächstes erklärt der folgende Artikel die Datenstruktur von Python (Liste, Wörterbuch usw.).

Python-Datenstruktur mit Chemoinfomatik gelernt

Referenzmaterialien / Links

Überraschend wenige! ?? "Minimale" Kenntnisse für die Programmierung in einem Pharmaunternehmen erforderlich

Recommended Posts

Python-Variablen und Datentypen, die mit Chemoinfomatik gelernt wurden
Python-Kurs zum Lernen mit Chemoinfomatik
Python-Funktionen mit Chemoinfomatik gelernt
Python-Datenstruktur mit Chemoinfomatik gelernt
Hashing von Daten in R und Python
Zeichnen Sie Daten einfach in Shell und Python
Empfangen und Anzeigen von HTML-Formulardaten in Python
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse
TensorFlow: Führen Sie in Python gelernte Daten unter Android aus
Organisieren Sie Typen in Python
cv2-Funktionen und Datentypen (OpenCV-Python-Bindung)
Erste Schritte mit Python3 # 2 Erfahren Sie mehr über Typen und Variablen
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Unterschied zwischen Ruby und Python in Bezug auf Variablen
In der Ehe erlernte logische Symbole (und Implementierungsbeispiele in Python)
Behandeln Sie Umgebungsdaten in Python
Python: Klassen- und Instanzvariablen
Mit Python erlerntes Refactoring (Basic)
Informationen zu Python-Variablen und -Objekten
Zeigen Sie UTM-30LX-Daten in Python an
Behandeln Sie Umgebungsvariablen in Python
Python-Klassen- und Instanzvariablen
Stapel und Warteschlange in Python
Python-Variablen und Objekt-IDs
Unittest und CI in Python
Was ich in Python gelernt habe
In Python gelernter Zeichencode
Mit algebraischen Datentypen und FizzBuzz
Referenzreihenfolge von Klassenvariablen und Instanzvariablen in "self. Klassenvariablen" in Python
Zeigen Sie Zahlen und Zeichen an, die Variablen im Python-Druck zugewiesen sind
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Holen Sie sich LeapMotion-Daten in Python.
Hinweise zu Python- und Wörterbuchtypen
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Lesen Sie die Protokollpufferdaten mit Python3
Sortieralgorithmus und Implementierung in Python
In Python-Klassenvariablen versteckte Landminen
Bearbeiten Sie Dateien und Ordner in Python
Über Python und Cython dtype
Behandeln Sie Daten im NetCDF-Format mit Python
Zuweisungen und Änderungen in Python-Objekten
Mit algebraischen Datentypen und Mustervergleich
Überprüfen und verschieben Sie das Verzeichnis in Python
Verwendung globaler Variablen in Python-Funktionen
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Ich habe versucht, den Prozess mit Python zu studieren
Funktionssynthese und Anwendung in Python
Grundlegende ITK-Verwendung mit Python gelernt
Exportieren und Ausgeben von Dateien in Python
Mit algebraischen Datentypen und objektorientierter Programmierung
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
Erstellen und lesen Sie Messagepacks in Python