In Anlehnung an Bedingte Verzweigung von Python durch Chemoinfomatik werde ich die "Iterationsverarbeitung" mit dem Thema Lipidomik (umfassende Analyse von Lipiden) erläutern. 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 Python-Kontrollanweisungen zusammengefasst
for
kann verwendet werden, um eine vorbestimmte Anzahl von Malen zu wiederholen.
Beschreiben Sie den Verarbeitungsinhalt als "für Variable in iterable (Liste usw.):", indem Sie die Zeile unterbrechen und 4 Leerzeichen mit halber Breite einrücken.
carbon_numbers = [16, 18, 20, 22, 24]
for Cn in carbon_numbers:
print(Cn, 0, sep=':')
In dem obigen Beispiel wird "Kohlenstoffzahlen" als eine Liste von Kohlenstoffatomen (Kettenlänge) von Fettsäuren verwendet, und die entsprechenden Abkürzungen von gesättigten Fettsäuren werden erzeugt.
range
Sie können range
auch als iterable verwenden.
range
ist ein Bild wie eine fortlaufende Liste von Ganzzahlen in einem bestimmten Bereich.
Cn = 22
for Un in range(4, 7):
print(Cn, Un, sep=':')
for Un in range(7):
print(Cn, Un, sep=':')
Im obigen Beispiel gibt "Bereich (4, 7)" eine kontinuierliche ganze Zahl von 4 bis 6 (4, 5, 6) an. Das Schreiben von "Bereich (7)" bedeutet auch aufeinanderfolgende ganze Zahlen von 0 bis 6 (0, 1, 2, 3, 4, 5, 6). Hier wird ein numerischer Wert erzeugt, der den Sättigungsgrad von Fettsäuren (die Anzahl der Doppelbindungen in der Kohlenstoffkette) angibt.
enumerate
Wenn Sie "Aufzählung" wie unten gezeigt verwenden, können Sie die iterierbare Indexnummer und das iterierbare Element als Satz abrufen.
fatty_acids = ['FA 16:0', 'FA 18:0', 'FA 18:1']
for fatty_acid in fatty_acids:
print(fatty_acid)
for i, fatty_acid in enumerate(fatty_acids):
print(f'{i}: {fatty_acid}')
Im obigen Beispiel wird die Indexnummer der Liste "Fettsäuren" in "i" gespeichert, die Werte der Elemente der Liste "Fettsäuren" werden in der Reihenfolge "Fettsäure" gespeichert und von "print" ausgegeben. ..
Sie können ein Wörterbuch auch mit for
durchlaufen.
Ein Beispiel ist unten gezeigt.
fatty_acids = {'Palmitic acid': 'FA 16:0', 'Stearic acid': 'FA 18:0', 'Oleic acid': 'FA 18:1'} #Name der Fettsäure (gebräuchlicher Name) und Abkürzung
for key in fatty_acids.keys(): #Wörterbuchschlüssel
print(key)
for value in fatty_acids.values(): #Wörterbuchwert
print(value)
for key, value in fatty_acids.items(): #Wörterbuchschlüssel und -werte
print(f'{key} is {value}')
exact_mass = {'C': 12, 'H': 1.00783, 'O': 15.99491} #Elementsymbol und Atomgewicht
formula_pa = {'C': 16, 'H': 32, 'O': 2} #Elementsymbol und Anzahl der Atome (Zusammensetzungsformel)
em_pa = 0
for key, value in formula_pa.items():
em_pa += exact_mass[key] * value #Multiplizieren Sie das Atomgewicht und die Anzahl der Atome
print(em_pa)
fatty_acids = {16: [0, 1], 18: [0, 1, 2, 3, 4], 20: [0, 3, 4, 5], 22: [0, 4, 5, 6]} #Ein Wörterbuch mit der Anzahl der Kohlenstoffatome der Fettsäure als Schlüssel und der Anzahl der Doppelbindungen als Wert
for Cn, Uns in fatty_acids.items():
for Un in Uns:
print(Cn, Un, sep=':')
Hier kann "a = a + n" als "a + = n" geschrieben werden. Der Teil "em_pa + = genaue_Masse [Schlüssel] * Wert" bedeutet, dass jedes Atom mit dem Atomgewicht und der Anzahl der Atome multipliziert und zu der Variablen "em_pa" addiert wird, die die genaue Masse berechnet.
Natürlich kann es auch mit "wenn" kombiniert werden.
fatty_acids = ['FA 16:0', 'FA 18:0', 'FA 18:1', 'FA 18:2', 'FA 20:4', 'FA 22:6', 'FA 24:0']
saturated_fatty_acids = [] #Leere Liste (Ich werde Werte in die nachfolgende Verarbeitung eingeben)
unsaturated_fatty_acids = [] #Leere Liste (Ich werde Werte in die nachfolgende Verarbeitung eingeben)
for fatty_acid in fatty_acids:
if fatty_acid[-1] == '0':
saturated_fatty_acids.append(fatty_acid) #Gesättigte Fettsäuren
else:
unsaturated_fatty_acids.append(fatty_acid) #Ungesättigten Fettsäuren
print(saturated_fatty_acids)
print(unsaturated_fatty_acids)
Verwenden Sie "break" wie unten gezeigt, um den iterativen Prozess zu unterbrechen. "else" wird verwendet, um zu beschreiben, was passiert, wenn die iterative Verarbeitung endet, ohne "zu brechen". Es spielt keine Rolle, ob Sie kein "Sonst" haben.
fatty_acids = ['FA 16:0', 'FA 18:0', '', 'FA 18:1']
for fatty_acid in fatty_acids:
if fatty_acid == '':
print('Es ist leer. Bricht die Verarbeitung ab.')
break
print(fatty_acid) # 「FA 18:Ausgabe bis "0"
else:
print('Der Vorgang ist abgeschlossen.') #Hier nicht ausgegeben
Im obigen Beispiel ist das dritte Element von links in der Liste "fat_acids" leer, iteriert also bis zum vorherigen Element und gibt den Wert des Elements aus. In diesem Beispiel werden "else" und darunter nicht ausgeführt, da der Prozess durch "break" unterbrochen wird.
Wenn Sie dagegen "Weiter" verwenden, wird die Iteration übersprungen.
fatty_acids = ['FA 16:0', 'FA 18:0', '', 'FA 18:1']
for fatty_acid in fatty_acids:
if fatty_acid == '':
print('Es ist leer. Überspringen')
continue
print(fatty_acid) #Überspringen Sie die leeren Elemente "FA 18:Ausgänge bis zu 1 "
Im obigen Beispiel werden leere Elemente durch "Weiter" übersprungen, sodass der Elementwert nicht ausgegeben wird, sondern bis zum Ende verarbeitet wird und auch "FA 18: 1" ausgegeben wird. Wenn Sie "else" eingeben, wird auch Folgendes ausgeführt.
Als Anwendung betrachten wir hier die Anzahl der Kohlenstoffatome und die Anzahl der Doppelbindungen der Kohlenstoffkette aus der in SMILES-Notation geschriebenen Zeichenfolge.
smiles_fa = 'OC(CCCCCCC/C=C\C/C=C\CCCCC)=O'
Cn = 0
Un = 0
for i in range(len(smiles_fa)):
if smiles_fa[i] == 'C':
Cn += 1
elif smiles_fa[i] == '=' and smiles_fa[i+1] == 'C':
Un += 1
print(Cn, Un, sep=':')
Wenn Sie in der Zeichenfolge von links "C" sehen, erhöhen Sie die Variable "Cn", die die Anzahl der Kohlenstoffatome zählt, um 1, und wenn "=" und das nächste Zeichen "C" ist (es gibt auch Carbonylkohlenstoff). Weil) wird die Variable "Un", die die Anzahl der Doppelbindungen zählt, um 1 erhöht.
Wenn Sie "while" verwenden, iterieren Sie, solange die angegebenen Bedingungen erfüllt sind. Beschreiben Sie den Vorgang, indem Sie die Linie als "while-Bedingung" unterbrechen und 4 Leerzeichen mit halber Breite einrücken.
saturated_fatty_acids = ['FA 16:0', 'FA 18:0']
unsaturated_fatty_acids = ['FA 18:1', 'FA 18:2', 'FA 18:3', 'FA 20:4', 'FA 22:6']
fatty_acids = []
while len(saturated_fatty_acids) > 0:
fatty_acids.append(saturated_fatty_acids[-1])
saturated_fatty_acids.pop()
while len(unsatturated_fatty_acids) > 0:
fatty_acids.append(unsaturated_fatty_acids[-1])
unsaturated_fatty_acids.pop()
print(fatty_acids)
Im obigen Beispiel werden die Elemente von der Rückseite der ursprünglichen Listen "gesättigte Fettsäuren" und "ungesättigte Fettsäuren" übernommen und in die neue leere Liste "Fettsäuren" verschoben.
Hier bezieht sich "len (Liste)> 0" auf den Fall, in dem die Liste einige Elemente enthält. Nachdem ich das Element nach fat_acids
verschoben habe, versuche ich, das Element mit pop
aus der ursprünglichen Liste zu entfernen. Beachten Sie, dass der Vorgang auf unbestimmte Zeit wiederholt wird, wenn Sie vergessen, dies zu löschen (Endlosschleife).
Lassen Sie uns abschließend als Anwendung die Anzahl der Kohlenstoffatome mit "while" in der SMILES-Notation zählen.
smiles_fa = 'OC(CCCCCCCCCCCCCCC)=O'
Cn = 0
while 'C' in smiles_fa:
if smiles_fa[0] == 'C':
Cn += 1
smiles_fa = smiles_fa[1:]
print(Cn)
Wenn die SMILES-Zeichenfolge das Zeichen "C" enthält und das Zeichen ganz links "C" ist, erhöhen Sie die Variable "Cn", die die Anzahl der Kohlenstoffatome zählt, um 1. Das Zeichen ganz links wird jedes Mal gelöscht, unabhängig davon, ob es "C" ist oder nicht. Auf diese Weise können Sie die Anzahl der C in SMILES zählen.
Wie oben erwähnt, wird "for" verwendet, wenn die Anzahl der Wiederholungen festgelegt ist, und "while" wird verwendet, wenn die Anzahl der Wiederholungen nicht festgelegt ist.
Hier haben wir Pythons iterative Verarbeitung 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.
--for
kann verwendet werden, wenn die Anzahl der Wiederholungen festgelegt ist. Sie können auch "break" oder "continue" verwenden, um die Verarbeitung unter bestimmten Bedingungen zu stoppen oder zu überspringen.
--while
hat keine feste Anzahl von Wiederholungen und kann verwendet werden, um den Vorgang zu wiederholen, bis die voreingestellten Bedingungen erfüllt sind. Es muss darauf geachtet werden, keine "Endlosschleife" zu erstellen.
Im folgenden Artikel werden die Python-Funktionen erläutert.
Mit Chemoinfomatik erlernte Python-Funktionen
Recommended Posts