View
5
Download
0
Category
Preview:
Citation preview
7 Anhang
Anhang 1
7 Anhang
7.1 Sequenzalignments Die Alignments der Phosphattransportergene und der bakteriellen 16 S-rRNA-Gene, auf deren Grundlage die Berechnungen für die phylogenetischen Beziehungen durchgeführt wurden, finden sich im Rich-Text-Format (*.rtf) auf beiliegendem Datenträger.
7.2 Computergestützte Bildbearbeitung eingescannter Autoradiogramme 7.2.1 Grundlagen Prinzipiell hängt die Photoreaktion und damit verbundene Schwärzung eines Röntgenfilms von zwei Bedingungen ab:
a) der Strahlungsintensität und b) dem Abstand des Strahlers von der Filmoberfläche.
Zusätzlich kann das Ausmaß der Photoreaktion durch
c) die Nutzung von Verstärkungsfolien erhöht werden. In diesem Fall regt die Transmissionsstrahlung, die den Röntgenfilm bereits durchdrungen hat, die Beschichtung der Verstärkungsfolie an (früher CaCO3, heute meist Verbindungen der Übergangsmetalle). Die angeregten Moleküle geben die eingestrahlte Energie unter Fluoreszenz im Bereich des sichtbaren Lichts wieder ab (Abbildung 38). Im Idealfall können bis zu 95 % einer Schwärzung durch die Fluoreszenz der Verstärkungsfolie bedingt sein.
Abb. 1: Funktionsschema Wirkungsweise von Verstärkungsfolien
Verändert nach Kodak Scientific Imaging Systems (http://www.kodak.co.uk/US/en/health/scientific/)
In jedem Fall liegt der Schwärzung der Emulsionsbeschichtung eines Röntgenfilms eine Sättigungsfunktion zugrunde, die bei steigender Belichtung zu einer gesteigerten Schwärzung führt. Dies geht soweit, bis auf einer Fläche alle Farbstoffmoleküle reagiert haben, eine weitere Schwärzung dieser Fläche also nicht möglich ist. Bei Verwendung gleicher Strahlungsisotope, gleicher Filme und gleichen Verstärkungsfolien kann die
7 Anhang
Anhang 2
Sättigungsfunktion als konstant angenommen werden. Der Grad der Schwärzung als Produkt aus Größe des Flecks mit seiner Farbtiefe ist somit direkt von der Zahl der Zerfälle auf der entsprechenden dünnschichtchromatographischen Platte abhängig und lässt sich über folgende Proportionalitätsbeziehung beschreiben:
S ∼ A * M Formel 1: Proportionalitätsbeziehung für die Ermittlung der Filmschwärzung
S = Schwärzungsgrad, A = Fläche (Area) des Flecks, M = mittlere Schwärzung (Mean) des Flecks
7.3 Bildanalyse über direkte Graustufenzählung mittels BioPic Zur direkten Auszählung der Graustufen innerhalb eines eingescannten Autoradiogramms und damit Bestimmung von Fläche und Farbtiefe wurde ein Programm entwickelt, das die im Folgenden dargestellten wesentlichen Funktionen beinhaltete. 7.3.1 Beschreibung der Programmstruktur und -funktionen
1. Bestimmung der Hintergrundfärbung des Filmes Innerhalb des Hintergrundbereiches konnte durch subjektive Auswahl dreier Bildpunkte und Berechnung der Steigung zweier sich im ersten Bildpunkt kreuzenden Geraden die Lage der im Idealfall als Ebene im Raum angenommenen Hintergrundfärbung bestimmt werden. Außerdem war es möglich mittels der diesen Geraden zugrunde liegenden Funktionen den Hintergrundwert jedes einzelnen Bildpunktes innerhalb einer Auswahlfläche zu bestimmen. Innerhalb dieser Auswahlfläche konnte somit vom Grauwert jedes Bildpunkts der Hintergrundwert subtrahiert werden. In der dabei zugrunde liegenden Berechnung wurde zunächst die Steigung der beiden Geraden bestimmt:
steigung_in_x_richtung = (backgrey2 - backgrey1) / (backgrey2_x - backgrey1_x) steigung_in_y_richtung = (backgrey3 - backgrey1) / (backgrey3_y - backgrey1_y)
Formel 2: Berechnung der Hintergrundebene
Mittels der auf diese Weise bestimmten Gleichung wurde dann jeder gezählte Grauwert innerhalb eines Bildpunktes um seinen Hintergrundwert in x- und y-Richtung korrigiert:
corrx = (x - backgrey1_x) * steigung_in_x_richtung corry = (y - backgrey1_y) * steigung_in_y_richtung
Formel 3: Korrektur der Grauwerte
Der Korrekturwert wurde nun vom gezählten Grauwert abgezogen und als GREY-BACKGROUND im Ergebnisfeld ausgegeben:
greycorr = tmpcolgrey - (backgrey1 + corrx + corry) Formel 4: Ausgabefunktion des Korrekturwerts
7 Anhang
Anhang 3
2. Markierung eines Auswahlbereichs
Innerhalb dieser Auswahlfläche war es möglich, die Summe der Grauwerte über den Auswahlbereich abzüglich der wie oben angeführt berechneten Hintergrundwerte zu bestimmen.
3. Darstellung der Markierungsfläche als Oberflächendiagramm. 7.3.2 BioPic – Bedienung des Programms
Abb. 2: Screenshot BioPic-Programm
Nach dem Start durch Mausklick auf den Button „Datei öffnen“ eine Bilddatei öffnen. Zulässige Formate sind BMP (Windows-Bitmap), JPG (Joint Photographic Experts Group), GIF (Graphics Interchange Format) oder WMF (Windows Meta-File). Da weitere Grafikfilter nicht implementiert sind, müssen alle anderen Bildformate vorher mit einem Grafikprogramm in eines der o. a. Formate überführt werden.
7 Anhang
Anhang 4
Abb. 3: Screenshot BioPic-Programm mit geöffnetem Beispielbild, Hintergrundwerte bestimmt
Durch Mausklick auf den Button „Hintergrund bestimmen“ können innerhalb des Bildausschnitts drei Grauwerte gesetzt werden. Die Grauwerte des Hintergrundes werden in x-Richtung durch die Steigung einer Geraden durch die Punkte „Black-Grey1“ und „Black-Grey2“, in y-Richtung durch die Steigung einer Geraden durch die Punkte „Black-Grey1“ und „Black-Grey3“ und ihren Abstand von diesen drei Punkten definiert.
Abb. 4: Screenshot BioPic-Programm mit geöffnetem Beispielbild, Grauwerte ausgezählt
Durch Ziehen einer Markierungsmaske mit gehaltener linken Maustaste lässt sich eine Zählmaske (im Bild rot hinterlegt) definieren. Die Zählergebnisse werden automatisch im Ergebnisfenster dargestellt und sind als ASCII-Text markier- und kopierbar.
7 Anhang
Anhang 5
Ergebnisse sind: • Position der Zählmaske (Pixelabstand vom Bildrand links, rechts, oben und unten):
Left / Right / Top / Bottom • Summe der Rot-, Grün-, Blau- und Grauwerte:
Red / Green / Blue / Grey • Summe der vom Hintergrund befreiten Grauwerte:
Grey-Background • Arithmetisches Mittel des Hintergrundes:
Averagebackground
Abb. 5: Screenshot BioPic-Programm mit geöffnetem Beispielbild,
3D-Oberflächenplot der Zählfläche aus Abb. 48
Wird vor der Auswahl einer Zählmaske das Optionsfenster „Diagramm berechnen“ markiert, lassen sich die Grauwerte innerhalb der Zählmaske durch Mausklick auf den Button Diagramm/Bild in einem 3D-Oberflächenplot anschaulich darstellen. Diese 3D-Grafik lässt sich durch Klicken und Ziehen mit der Maus im Kipp- und Drehwinkel verändern.
7 Anhang
Anhang 6
7.3.3 Stärken und Schwächen des Programms 7.3.3.1 Prinzipieller Vorteil des Programms Besonderer Vorteil dieses sehr einfachen Programms war es, dass außer der Konvertierung des Ursprungsbilds in ein Standard-Windows-Format (z. B. Bitmap-Format [*.bmp]) und ggf. einer Invertierung des Grauspektrums keinerlei Operationen am Rohbild durchgeführt werden mussten. Insbesondere auf aufwendige und ggf. fehlerbehaftete Schärfungs- und ähnliche Retuschierarbeiten konnte prinzipiell verzichtet werden. 7.3.3.2 Prinzipielle Schwächen des Programms Bei der testweisen Anwendung stellte sich heraus, dass dieses Programm zwar prinzipiell funktionstüchtig ist, allerdings einige Schwächen ohne erhöhten Programmieraufwand und damit verbundene tiefere Einarbeitung in Spezialfunktionen der Programmiersprache Visual Basic 6.0 (Microsoft, Redmond, USA) nicht auszugleichen waren. Insbesondere waren folgende Probleme ohne weiteres nicht zu lösen:
1. Kreisförmige Markierung der auszuzählenden Fläche. Durch die rechteckige Standardmarkierung war es nur möglich, klar getrennte Färbungen auf dem Autoradiogramm auszuzählen. Ineinander übergehende Flecken waren nicht sinnvoll zu trennen, da dieses außerdem die Möglichkeit beinhalten musste, mehrere Markierungen aneinanderzulegen.
2. Unabhängigkeit des Zählergebnisses von der Größe der markierten Fläche. Durch die ungleichmäßige Hintergrundfärbung des Rohbildes war es mittels der eingesetzten Steigungsfunktionen in x- und y-Richtung nicht möglich, diese sicher und mathematisch korrekt aus den Markierungen auf dem gescannten Autoradiogramm herauszurechnen. Bei korrekter Umsetzung sollte sich eine Änderung der Größe der markierten Fläche nicht in der Summe der Graustufen innerhalb dieser Fläche bemerkbar machen, da der Hintergrund ja gleich Null gesetzt wird und somit nicht eingerechnet werden sollte. Dieses war nur in sehr engen Grenzen zutreffend.
Der Quelltext des Programms findet sich am Schluss des Anhangs.
7.4 Bestimmung der relativen Verbindungsanteile mittels PaintShopPro 7.0 und Scion Image Beta 4.0.2
7.4.1 Methode Neben der bereits wiedergegebenen Bildanalyse der eingescannten Röntgenfilme über Pixelzählung mit einem selbstgeschriebenen Visual-Basic®-Programm (Version 6.0, Microsoft, Redmond USA) wurde versucht, basierend auf in der Arbeitsgruppe vorhandenen (PaintShopPro 7.0) bzw. im Internet frei verfügbaren (Scion Image Beta 4.0.2) Bildbearbeitungsprogrammen eine Methode zur computergestützten Auswertung der Bilddaten entwickelt. Die Vorgehensweise und die einzelnen Schritte der Auswertung der
7 Anhang
Anhang 7
eingescannten Autoradiogramme sind im Folgenden näher beschrieben, die Bearbeitung der eingescannten Autoradiogramme sind ebenfalls als Bilder der einzelnen Teilschritte dargestellt. Wie für die Ergebnisse aus der Szintillationszählung war es möglich, die relativen Anteile der Verbindungen in Abhängigkeit von den jeweiligen Versuchsbedingungen darzustellen. Da sowohl die o. a. Szintillationszählungsergebnisse, als auch die zur Bildbearbeitung eingescannten Autoradiogramme auf denselben 2D-Dünnschichtchromatografischen Auftrennungen der löslichen Phosphatverbindungen beruhen, soll hier beispielhaft nur die Auswertung einer Verbindung aus einer Experimentreihe (Veränderung des relativen Anteils von anorganischem Phosphat im Pulse-Chase-Experiment) dargestellt werden. 7.4.2 Arbeitsschritte Zur computergestützten Auswertung der Autoradiogramme der 2-dimensionalen Dünnschichtchromatographie wurde wie folgt verfahren:
1. Einscannen des Autoradiogramms an Umax-Scanner 1200 mit Durchlichteinheit und Bedienungssoftware VistaScan 3.75 Einstellungen der Software:
• S/W-Foto • Transmissiv • 150 dpi • 100 % • „Magic Match“ und „Auto Jus.“ = off • Gamma-Korrekturwert = 0,5 • Hervorhebungswert = 255 • Schattenwert = 0 • Kontrastwert = 0 • Helligkeitswert = 0
Gescannte Bilder wurden im Tagged Image File Format (*.tif) auf der Festplatte gespeichert.
2. Bilddatei in PaintShopPro 7.0 aufrufen. 3. Spiegeln und Drehen des Bildes.
Durch Spiegeln bzw. Drehen des eingescannten Autoradiogrammes wurde der Startpunkt der Chromatographie nach oben links bei gleichzeitiger Anordnung der 1. Chromatographielaufrichtung von links nach rechts gelegt. Dabei war auf eine genaue Ausrichtung des Bildes zum Arbeitsgitter zu achten. Das so bearbeitete Bild wurde unter der Bezeichnung „RAW – ‚Objekt’ im Licht/Dunkel ‚Inkubationszeit’.tif“ abgespeichert, wobei ‚Objekt’ die Werte Geosiphon oder Nostoc, ‚Inkubationszeit’ die Werte 0 min bis 60 min annehmen konnte.
4. Beschneiden des Bildes auf eine Größe von 1000x1000 Pixel In der Vergrößerungsstufe 1:2 auf einem 19-Zoll Monitor wurde die Bilddatei auf 1000x1000 Bildpunkte zugeschnitten. Dabei war auf einen gleichen Randabstand des Startpunktes vom Bildrand zu achten.
7 Anhang
Anhang 8
Das so bearbeitete Bild wurde unter der Bezeichnung „‚Objekt’ im Licht/Dunkel ‚Inkubationszeit’ – CUT 1000x1000.tif“ abgespeichert.
5. Histogramm strecken. Das Histogramm stellt die Verteilung der Helligkeitswerte innerhalb einer Bilddatei dar. Durch die Streckungsfunktion sorgt dafür, dass ein Grossteil der zur Verfügung stehenden Helligkeitswerte verwendet wird, es wird dem Bild mehr Kontrast zugefügt.
6. Verwischen der Kanten (Gaussian Blur). Durch Verwendung einer auf einer Gauß’schen Normalverteilung beruhenden Verwischungsfilterfunktion mit dem Radius 5 Pixel wird dem Bild etwas Unschärfe zugefügt. Infolgedessen werden die durch das Scannen entstandenen Rasterpunkte verwischt.
7. Histogram strecken. Das so bearbeitete Bild wurde unter der Bezeichnung „‚Objekt’ im Licht/Dunkel ‚Inkubationszeit’ – CUT 1000x1000_histo_blur_histo.tif“ abgespeichert.
8. Kopie des Bildes verwischen (Gaussian Blur). Vom vorliegenden Bild unter Punkt 7 wurde nun eine Kopie angefertigt und mit der oben erwähnten Verwischungsfilterfunktion (in diesem Falle mit Radius 100 Pixel) großflächig verwischt. Auf diese Art entsteht ein Abbild der Hintergrundfärbung des Autoradiogramms.
9. Subtraktion des Bildhintergrunds. Mit Hilfe der Image-Arithmetic-Funktion kann das Hintergrundbild (vgl. 8.) nun vom Originalbild (vgl. 7.) abgezogen werden. Verwendete Einstellungen waren dabei:
• Image #1 = Originalbild, • Image #2 = verwischte Kopie, • Function = „Subtract“, • Channel = „All channels“ • Divisor = 1 • Clip color values = off
10. Bereinigung des Hintergrunds. Der aufgrund der Berechnung entstandene fleckige Bildhintergrund wurde von Hand mittelgrau (50 %) eingefärbt, nur echte Schwärzungen des Autoradiogrammes wurden stehen gelassen. Die mittelgraue Färbung ist insofern wichtig, dass sie beim späteren Strecken des Histogramms keinen Einfluß auf die Funktion hat.
11. Glättung der Bildränder. Mit Hilfe der „Despeckle“-Funktion, die einzelne weiße oder schwarze Pixel an Bildrändern entfernt und die zweimal angewendet wurde, konnte eine Glättung der Bildränder erreicht werden.
12. Histogramm strecken. 13. Einfärbung des Bildhintergrunds.
Der Bildhintergrund wurde mittels der Zauberstabmaske selektiert und schwarz eingefärbt und das so entstandene Bild, das nur noch die reine Information an den geschwärzten Stellen des Röntgenfilms enthielt, unter unter der Bezeichnung „‚Objekt’ im Licht/Dunkel ‚Inkubationszeit’ – cut_subtract_masked.tif“ abgespeichert.
7 Anhang
Anhang 9
14. Trennen der Markierungen. Durch Einziehen schwarzer Linien (Funktion Draw, Tool Options: Type = Single Line, Style = filled, Width = 3, „AntiAlias“) wurden die Markierungen von Hand getrennt und das Bild neu abgespeichert. Dabei waren kurze Datei- und Pfadnamen wichtig, da Scion Image nicht zu langen (Windows-) Datei- und Pfadnamen kompatibel ist.
15. Makro für Scion Image laden. Unter dem Menüpunkt „Special“ wurde der Eintrag „Load Macros“ ausgewählt und das Macro „Measure.txt“ im Ordner „Macros“ unter dem Installationsordner aktiviert.
16. Bilddatei öffnen. Die unter PaintShopPro erstellte Bilddatei wurde in Scion Image geöffnet.
17. Festlegung der Grenzwerte für die Zählung. Nach Laden des „Measure“-Makros war unter dem Menüpunkt „Special“ der Eintrag „Set Threshold“ zu finden. Dieser wurde ausgewählt und als Grenzwerte „0“ für „Lower“ und „255“ für „Upper“ angeben. Die entsprechenden Bildbereiche innerhalb dieser Grenzen wurden durch Scion Image rot hinterlegt.
18. Partikelauswertung. Unter dem Menüpunkt „Analyze“ wurde der Eintrag „Analyze Particles“ ausgewählt, zusätzlich zu den Standardoptionen wurde der Punkt „Outline Particles“ aktiviert.
19. Ergebnisse. Nach Ausführung der o. a. Rechenoperationen konnten die Fläche („Area“) und der arithmetische Mittelwert der Graufärbung der einzelnen Partikel („Mean“) im Ergebnisfenster abgelesen und in Microsoft Excel®, Version 10 (Microsoft, Redmond, USA) kopiert und weiterverarbeitet werden. Durch Anwendung der „Outline Particles“-Funktion wurden außerdem innerhalb des Bildes die Bereiche eingezeichnet, die zur Berechnung herangezogen wurden. Entsprechende Werte konnten somit manuell den Zählungsergebnissen aus der Szintillationszählung zugeordnet und mit diesen verglichen werden.
7 Anhang
Anhang 10
Abb. 6: Teilschritte der Bildbearbeitung und -analyse mit Paint Shop Pro 7.0 und Scion Image Beta 4.0.2
a) gescanntes Autoradiogramm; b) Bild auf 1000x1000 Pixel beschnitten und geradegerichtet; c) Histogramm gestreckt; d) Bild mit Radius „5“ mit Gauß’scher Unschärfe verwischt; e) Histogramm gestreckt;
f) und g) Teilbilder für Subtraktionsfunktion, g) wird von f) subtrahiert; h) Ergebnis der Bildsubtraktion; i) Hintergrund Mittelgrau eingefärbt; j) Bildränder 2x geglättet, Histogramm gestreckt; k) Hintergrund schwarz eingefärbt;
l) Markierungen durch Linien getrennt; m) Schwellenwert gesetzt („0“ bis „255“); n) Ergebnis der Makrofunktion „Analyze Particles“
Zur Bestimmung der relativen Anteile der verschiedenen Verbindungen und Verbindungsgruppen über Bildanalyse wurden die Bilder wie in Abbildung 43 dargestellt bearbeitet und analysiert. Die Bildbearbeitung [Teilbilder a) bis l)] erfolgte dabei in Paint Shop Pro 7.0, die Analyse der Partikel [Teilbilder m) und n)] in Scion Image Beta 4.0.2.
a) b) c) d)
e) f) g) h)
i) j) k) l)
m) n)
7 Anhang
Anhang 11
Zur Berechnung der relativen Anteile wurden die Ergebnisse der Partikelanalyse, die von Scion Image als Werte für die Fläche und mittleren Grauwert einer Markierung dargestellt werden, in Microsoft Excel® 10, 2002 (Microsoft, Redmond, USA) eingelesen und dort weiter verarbeitet. Für den tatsächlichen absoluten Wert einer Markierung wurde das Produkt aus Fläche und mittlerem Grauwert (Area x Mean) gebildet. Da Scion Image bei der Pixelanalyse unter Umständen weitere, sehr kleine oder schwache Partikel erkennt und getrennt analysiert, mussten in diesem Fall mehrere Markierungen von Hand wieder zusammengefasst und die absoluten Werte addiert werden. Mit Hilfe der Summe aller Absolutwerte konnte dann der relative Anteil der einzelnen Markierungen berechnet werden. 7.4.3 Vergleich der Ergebnisse aus Szintillationszählung und Bildauswertung 7.4.3.1 Quantifizierung der Markierungsverluste Zum Vergleich der Ergebnisse aus der Szintillationszählung und der Analyse der gescannten Autoradiogramme wurde zunächst der Anteil der Verbindungen bestimmt, der durch die Bildbearbeitungsschritte verloren ging. Dazu wurde von der Anzahl der Markierungen, die zur Zählung von der 2D-Dünnschichtchromatografieplatte ausgekratzt wurde, die Anzahl der Partikel subtrahiert, die durch die Analysefunktion von Scion Image Beta 4.0.2 erkannt wurde. Die erhaltene absolute Differenz wurde durch Division durch die gezählte Markierungsanzahl in einen prozentualen Anteil umgerechnet und ist in Abbildung 44 dargestellt. Die Standardabweichung wurde auf der Grundlage von 62 zur Bildanalyse und Szintillationszählung herangezogenen Autoradiogrammen berechnet.
Abb. 7: Anzahl [a)] und Verlust [b)] von Markierungen nach Bildanalyse gescannter Röntgenfilme
Es ist erkennbar, dass im Mittel knapp 20 % der Markierungen durch die Bildanalyse nicht erkannt wurden [vgl. Teilbild b)], d.h. bei einer mittleren Anzahl der zur Szintillationszählung ausgekratzen Markierungen von 20,0 (Standardabweichung 5,37 bei n=62) wurden 16,3 Markierungen erkannt (Standardabweichung 4,74 bei n=62) [vgl. Teilbild a)]. Insbesondere beim rechnerischen Entfernen des Bildhintergrundes [vgl. Abb. 43, f) bis h)], bei dem eine stark verwischte Kopie vom Originalbild abgezogen wurde, kam es zum Verlust von schwachen Schwärzungen des Röntgenbildes.
a) b)
7 Anhang
Anhang 12
7.4.3.2 Metabolisierung von 32Pi durch Blasen von Geosiphon pyriformis am Beispiel von anorganischem Phosphat
Abb. 8: Vergleich von Szintillationszählung [a)] und Bildanalyse [b)]:
Relativer Anteil des anorganischen Phosphats (Pi) bei Blasen von Geosiphon pyriformis im Pulse-Chase-Experiment
Einzelexperiment, Fütterungspuls = 1 min
Als ein Beispiel für die Bestimmung des relativen Anteils einer Verbindung in einer Experimentreihe ist in Abbildung 45 der Anteil des anorganischen Phosphats (Pi) aus Blasen von Geosiphon pyriformis im Pulse-Chase-Experiment dargestellt. Das Teilbild a) zeigt dabei das bereits bekannte Ergebnis aus Abschnitt 4.4.3.2.1 und wurde dort schon näher dargestellt. Im Teilbild b) wurde das Autoradiogramm desselben Experiments nun mittels Bildbearbeitung ausgewertet. Dabei zeigten sich zum Teil erhebliche Schwankungen des Anteils des markierten anorganischen Phosphats gegenüber den übrigen markierten Verbindungen. Diese Schwankungen sind größtenteils wohl auf die Übersättigung des Röntgenfilms durch die hohe Strahlungsintensität des großen Pi-Anteils zurückzuführen. 7.4.3.3 Vergleich der Anteile anderer markierter Verbindungen Die prominenteste Markierung (55,96 %, Standardabweichung 24,67 % bei n = 56) auf den 2D-Dünnschichtchromatogrammen war in der Regel wieder aus dem Blasen- bzw. Zellmaterial extrahiertes anorganisches Phosphat (Pi). Da der Anteil der nächsthäufigen Verbindung (Glutaminsäure-Phosphat) nur 8,81 % (Standardabweichung 11,16 % bei n=56) betrug, mussten die Röntgenfilme so lange auf den Chromatographieplatten aufliegen, dass bei den hohen Intensitäten, die als Pi aus dem Zellmaterial extrahiert werden konnten, der Sättigungsbereich der Schwärzung der Filmemulsion erreicht wurde. Aus diesem Grund war zu vermuten, dass in der Regel der relative Anteil von stark markierten Verbindungen, insbesondere dem genannten anorganischem Phosphat (Pi) in der Bildanalyse deutlich zu niedrig ausfallen würde. Deshalb wurde, wie bei der Auswertung der Experimente, durch Szintillationszählung der relative Anteil der markierten löslichen organischen Phosphatverbindungen, d.h. der extrahierbaren Verbindungen ohne Berücksichtigung des anorganischen Phosphats berechnet. Dies ist beispielhaft in Abbildung 46 dargestellt, in der die Anteile von 30 Verbindungen aus dem Pulse-Chase-Experiment mit Blasen von Geosiphon pyriformis, Nachinkubationszeit 60 min nach Fütterungspulse 1 min ohne Berücksichtigung von Pi bei der Berechnung der relativen Anteile gezeigt werden.
a) b)
7 Anhang
Anhang 13
Abb. 9: Vergleich Szintillationszählung und Bildanalyse
Darstellung der Fehlerschwankung Auswertung aller detektierbaren Markierungen eines einzelnen Autoradiogramms,
Pulse-Chase-Experiment mit Blasen von Geosiphon pyriformis, Fütterungspuls = 60sec, Nachinkubationszeit (chase) = 60 min
Neben dem Effekt, dass die relativen Anteile der Verbindungen mit geringer Markierungsintensität deutlicher dargestellt werden, war an diesem Beispiel erkennbar, dass sich auch die Abweichung der Bildanalyse von den Ergebnissen der Szintillationszählung deutlich verbessern könnte, da mit der Filmsättigung durch das stark markierte Pi eine große Fehlerquelle entfernt werden konnte. Trotzdem schwanken die Werte aus der Auswertung über Bildanalyse zum Teil erheblich um die aus Auswertung durch Szintillationszählung. 7.4.3.4 Zusammenfassung Aufgrund der doch erheblichen Abweichungen und vor allem des stark schwankenden Fehlers, der sich beim Vergleich anderer, hier nicht dargestellten Ergebnisse aus Szintillationszählung und Bildauswertung wiederholte, wurde die oben angeführte Methode nicht zur Auswertung herangezogen. Stattdessen wurden die o. a. Ergebnisse wie bereits angeführt durch Szintillationszählung bestimmt.
7 Anhang
Anhang 14
7.4.4 BioPic – Quelltext des Programms
VERSION 5.00
Object = "{65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCHRT20.OCX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form main
Caption = "BioPic"
ClientHeight = 8835
ClientLeft = 60
ClientTop = 345
ClientWidth = 10875
Icon = "main.frx":0000
LinkTopic = "Form1"
ScaleHeight = 589
ScaleMode = 3 'Pixel
ScaleWidth = 725
StartUpPosition = 2 'Bildschirmmitte
Begin VB.PictureBox Picture2
Align = 3 'Links ausrichten
Height = 8835
Left = 0
ScaleHeight = 585
ScaleMode = 3 'Pixel
ScaleWidth = 173
TabIndex = 1
Top = 0
Width = 2655
Begin VB.CheckBox chk_diag
Caption = "Diagramm berechnen"
Height = 375
Left = 240
TabIndex = 15
Top = 8280
Width = 2055
End
Begin VB.CommandButton cmd_chart
Caption = "Diagramm / Bild"
Height = 375
Left = 240
TabIndex = 14
Top = 7800
Width = 2055
End
7 Anhang
Anhang 15
Begin VB.CommandButton cmd_setback
Caption = "Hintergrund bestimmen"
Height = 375
Left = 240
TabIndex = 9
Top = 6840
Width = 2055
End
Begin VB.CommandButton cmd_cancel
Caption = "Zählen abbrechen"
Height = 375
Left = 240
TabIndex = 8
Top = 7320
Visible = 0 'False
Width = 2055
End
Begin VB.CommandButton cmd_load_file
Caption = "Datei öffnen"
Height = 375
Left = 240
TabIndex = 7
Top = 6360
Width = 2055
End
Begin MSComDlg.CommonDialog CMDialog1
Left = 0
Top = 6720
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.TextBox Text1
BeginProperty Font
Name = "Courier New"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 4095
Left = 120
MultiLine = -1 'True
TabIndex = 6
Top = 120
7 Anhang
Anhang 16
Begin VB.CommandButton cmd_down
BackColor = &H00C0C0C0&
Height = 615
Left = 960
Picture = "main.frx":0442
Style = 1 'Grafisch
TabIndex = 5
Top = 5640
Width = 615
End
Begin VB.CommandButton cmd_right
BackColor = &H00C0C0C0&
Height = 615
Left = 1560
Picture = "main.frx":0884
Style = 1 'Grafisch
TabIndex = 4
Top = 5040
Width = 615
End
Begin VB.CommandButton cmd_left
BackColor = &H00C0C0C0&
Height = 615
Left = 360
Picture = "main.frx":0CC6
Style = 1 'Grafisch
TabIndex = 3
Top = 5040
Width = 615
End
Begin VB.CommandButton cmd_up
BackColor = &H00C0C0C0&
Height = 615
Left = 960
Picture = "main.frx":1108
Style = 1 'Grafisch
TabIndex = 2
Top = 4440
Width = 615
End
End
7 Anhang
Anhang 17
Begin VB.PictureBox Picture1
FillColor = &H0080FF80&
Height = 6420
Left = 2880
ScaleHeight = 424
ScaleMode = 3 'Pixel
ScaleWidth = 389
TabIndex = 0
Top = 240
Width = 5895
Begin MSChart20Lib.MSChart MSChart1
Height = 2655
Left = 120
OleObjectBlob = "main.frx":154A
TabIndex = 13
Top = 3600
Visible = 0 'False
Width = 2535
End
Begin VB.Label lbl_back3
BackColor = &H00E0E0E0&
BorderStyle = 1 'Fest Einfach
Caption = "Back-Grey3 ="
Height = 255
Left = 720
TabIndex = 12
Top = 1680
Visible = 0 'False
Width = 1695
End
Begin VB.Label lbl_back2
BackColor = &H00E0E0E0&
BorderStyle = 1 'Fest Einfach
Caption = "Back-Grey2 ="
Height = 255
Left = 720
TabIndex = 11
Top = 1320
Visible = 0 'False
Width = 1695
End
7 Anhang
Anhang 18
Begin VB.Label lbl_back1
BackColor = &H00E0E0E0&
BorderStyle = 1 'Fest Einfach
Caption = "Back-Grey1 ="
Height = 255
Left = 720
TabIndex = 10
Top = 960
Visible = 0 'False
Width = 1695
End
Begin VB.Shape shape_back3
BorderColor = &H0000FF00&
Height = 255
Left = 360
Shape = 3 'Kreis
Top = 1680
Visible = 0 'False
Width = 255
End
Begin VB.Shape shape_back2
BorderColor = &H0000FF00&
Height = 255
Left = 360
Shape = 3 'Kreis
Top = 1320
Visible = 0 'False
Width = 255
End
Begin VB.Shape shape_back1
BorderColor = &H0000FF00&
Height = 255
Left = 360
Shape = 3 'Kreis
Top = 960
Visible = 0 'False
Width = 255
End
Begin VB.Shape Shape1
BorderColor = &H000000FF&
Height = 555
Left = 240
Top = 240
Visible = 0 'False
Width = 555
End
End
7 Anhang
Anhang 19
Attribute VB_Name = "main"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public startx As Long
Public starty As Long
Public endx As Long
Public endy As Long
Public mousedownflag As Boolean
Public setbackflag As Long
Public exitcount As Boolean
Public backgrey1 As Long
Public backgrey2 As Long
Public backgrey3 As Long
Public backgrey1_x As Long
Public backgrey2_x As Long
Public backgrey3_x As Long
Public backgrey1_y As Long
Public backgrey2_y As Long
Public backgrey3_y As Long
Public diagcalculated As Boolean
Private Sub chk_diag_Click()
MSChart1.Visible = False
diagcalculated = False
End Sub
Private Sub cmd_left_Click()
Picture1.Left = Picture1.Left + main.ScaleWidth / 4
If Picture1.Left > Picture2.Width Then
Picture1.Left = Picture2.Width
End If
Picture1.Refresh
End Sub
Private Sub cmd_right_Click()
Picture1.Left = Picture1.Left - main.ScaleWidth / 4
If Picture1.Left + Picture1.Width < main.ScaleWidth Then
Picture1.Left = main.ScaleWidth - Picture1.Width
End If
Picture1.Refresh
End Sub
Private Sub cmd_up_Click()
Picture1.Top = Picture1.Top + main.ScaleHeight / 4
If Picture1.Top > 0 Then
Picture1.Top = 0
7 Anhang
Anhang 20
Private Sub cmd_down_Click()
Picture1.Top = Picture1.Top - main.ScaleHeight / 4
If Picture1.Top + Picture1.Height < main.ScaleHeight Then
Picture1.Top = main.ScaleHeight - Picture1.Height
End If
Picture1.Refresh
End Sub
Private Sub cmd_cancel_Click()
exitcount = True
enable_btns
Shape1.Visible = False
End Sub
Private Sub cmd_load_file_Click()
Dim str_datei As String
On Error GoTo endfunction
CMDialog1.DialogTitle = "BioPic Datei öffnen"
'CMDialog1.InitDir = str_Verzeichnis
CMDialog1.Filter = " " + "*.bmp|*.bmp|*.jpg|*.jpg|*.gif|*.gif|*.wmf|*.wmf"
CMDialog1.CancelError = True
CMDialog1.Flags = &H1000& Or &H4&
CMDialog1.FilterIndex = 1
CMDialog1.ShowOpen
str_datei = CMDialog1.FileName
Picture1.Picture = LoadPicture(str_datei)
Me.Caption = "BioPic - " & str_datei
cmd_setback_Click
endfunction:
End Sub
Private Sub cmd_setback_Click()
Text1.Text = ""
Shape1.Visible = False
hidebackparams
cmd_load_file.Enabled = False
setbackflag = 4
End Sub
7 Anhang
Anhang 21
Private Sub count_pic()
Dim x As Long
Dim y As Long
Dim col As Long
Dim red As Long
Dim green As Long
Dim blue As Long
Dim grey As Long
Dim tmpcol1 As Long
Dim tmpcol2 As Long
Dim tmpcol3 As Long
Dim tmpcolgrey As Long
Dim greycorr As Long
Dim greycorr_count As Long
Dim corrx As Long
Dim corry As Long
Dim pixelcounter As Long
Dim averageback As Long
Dim steigung_in_x_richtung As Single
Dim steigung_in_y_richtung As Single
Dim diagrammwerte() As Long
Dim diagcountx As Long
Dim diagcounty As Long
Dim i As Long
'speicher anlegen
ReDim diagrammwerte(Shape1.Width, Shape1.Height)
exitcount = False
disable_btns
red = 0
green = 0
blue = 0
grey = 0
greycorr_count = 0
pixelcounter = 0
hidebackparams
Picture1.DrawMode = 9
steigung_in_x_richtung = (backgrey2 - backgrey1) / (backgrey2_x - backgrey1_x)
steigung_in_y_richtung = (backgrey3 - backgrey1) / (backgrey3_y - backgrey1_y)
DoEvents
7 Anhang
Anhang 22
diagcounty = 0
For y = (Shape1.Top + 1) To (Shape1.Top) + (Shape1.Height - 2)
diagcountx = 0
For x = (Shape1.Left + 1) To (Shape1.Left) + (Shape1.Width - 2)
pixelcounter = pixelcounter + 1
If (exitcount = True) Then
Exit Sub
End If
col = Picture1.Point(x, y)
tmpcol1 = col And &H1FF0000
tmpcol1 = tmpcol1 / &H10000
blue = blue + tmpcol1
tmpcol2 = col And &H100FF00
tmpcol2 = tmpcol2 / &H100
green = green + tmpcol2
tmpcol3 = col And &H10000FF
'red1 = tmpcol / &H1
red = red + tmpcol3
tmpcolgrey = ((tmpcol1 + tmpcol2 + tmpcol3) / 3)
grey = grey + tmpcolgrey
'jetzt von grey den hintergrundwert für diesen punkt abziehen
'es werden die steigungen pro pixel für die x und y richtung benötigt
'(von shape_back1 aus nach x richtung und y richtung)
corrx = (x - backgrey1_x) * steigung_in_x_richtung
corry = (y - backgrey1_y) * steigung_in_y_richtung
averageback = averageback + (backgrey1 + corrx + corry)
greycorr = tmpcolgrey - (backgrey1 + corrx + corry)
greycorr_count = greycorr_count + greycorr
diagrammwerte(diagcountx, Shape1.Height - diagcounty - 3) = greycorr
diagcountx = diagcountx + 1
Next x
Picture1.Line ((Shape1.Left + 1), y)-(((Shape1.Left) + (Shape1.Width - 1)), y), RGB(200, 0, 0)
DoEvents
diagcounty = diagcounty + 1
Next y
7 Anhang
Anhang 23
If chk_diag.Value = 1 Then
MSChart1.ChartData = diagrammwerte()
MSChart1.RowCount = Shape1.Width - 2
MSChart1.ColumnCount = Shape1.Height - 2
diagcalculated = True
End If
For i = 1 To MSChart1.ColumnCount
MSChart1.Plot.SeriesCollection(i).DataPoints(-1).Brush.FillColor.Set 255, 0, 0
'MSChart1.Plot.Light.AmbientIntensity = 0
'MSChart1.Plot.Light.EdgeIntensity = 1
'MSChart1.Plot.Light.LightSources(1) = 0
Next i
averageback = averageback / pixelcounter
showbackparams
Text1.Text = "Left : " & (Shape1.Left + 1) & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "Right : " & (Shape1.Left) + (Shape1.Width - 2) & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "Top : " & (Shape1.Top + 1) & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "Bottom: " & (Shape1.Top) + (Shape1.Height - 2) & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "RED : " & red & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "GREEN: " & green & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "BLUE : " & blue & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "---------------" & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "GREY : " & grey & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "GREY-BACKGROUND:" & Chr$(13) & Chr$(10) & greycorr_count & Chr$(13) & Chr$(10)
Text1.Text = Text1.Text + "AVERAGEBACKGROUND:" & Chr$(13) & Chr$(10) & averageback
'freigeben
ReDim diagrammwerte(0)
enable_btns
End Sub
7 Anhang
Anhang 24
Private Sub cmd_chart_Click()
MSChart1.Top = 0
MSChart1.Left = 0
MSChart1.Width = Me.ScaleWidth - Picture2.Width
MSChart1.Height = Me.ScaleHeight
If MSChart1.Visible = True Then
MSChart1.Visible = False
Else
If chk_diag.Value = 1 Then
If diagcalculated = True Then
MSChart1.Visible = True
End If
End If
End If
End Sub
Private Sub Form_Load()
Picture1.Height = 1000
Picture1.Width = 1000
Picture1.Top = 0
Picture1.Left = Picture2.Width
Shape1.Left = 5
Shape1.Top = 5
Shape1.Width = 5
Shape1.Height = 5
backgrey1_x = 0
backgrey1_y = 0
backgrey2_x = 10
backgrey2_y = 0
backgrey3_x = 0
backgrey3_y = 10
diagcalculated = False
End Sub
Private Sub Form_Resize()
Picture1.Left = Picture2.Width
Picture1.Top = 0
Picture1.Refresh
End Sub
7 Anhang
Anhang 25
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
endx = 0
endy = 0
If setbackflag = 4 Then
backgrey1 = (getgreyval(x, y) + getgreyval(x + 1, y) + getgreyval(x - 1, y) + getgreyval(x, y + 1) + getgreyval(x, y - 1)) / 5
shape_back1.Visible = True
shape_back1.Left = x - (shape_back1.Width / 2)
shape_back1.Top = y - (shape_back1.Height / 2)
backgrey1_x = x
backgrey1_y = y
lbl_back1.Top = shape_back1.Top
lbl_back1.Left = shape_back1.Left + (shape_back1.Width * 1.2)
lbl_back1.Caption = "Back-Grey1 = " & backgrey1
lbl_back1.Visible = True
setbackflag = 3
Exit Sub
End If
If setbackflag = 3 Then
If x < backgrey1_x + lbl_back1.Width + (shape_back1.Width * 1.2) Then
Exit Sub
End If
y = backgrey1_y
backgrey2 = (getgreyval(x, y) + getgreyval(x + 1, y) + getgreyval(x - 1, y) + getgreyval(x, y + 1) + getgreyval(x, y - 1)) / 5
shape_back2.Visible = True
shape_back2.Left = x - (shape_back2.Width / 2)
shape_back2.Top = shape_back1.Top
backgrey2_x = x
backgrey2_y = y
lbl_back2.Top = shape_back2.Top
lbl_back2.Left = shape_back2.Left + (shape_back2.Width * 1.2)
lbl_back2.Caption = "Back-Grey2 = " & backgrey2
lbl_back2.Visible = True
setbackflag = 2
Exit Sub
End If
7 Anhang
Anhang 26
If setbackflag = 2 Then
If y < backgrey1_y + lbl_back1.Height + 2 Then
Exit Sub
End If
x = backgrey1_x
backgrey3 = (getgreyval(x, y) + getgreyval(x + 1, y) + getgreyval(x - 1, y) + getgreyval(x, y + 1) + getgreyval(x, y - 1)) / 5
shape_back3.Visible = True
shape_back3.Left = shape_back1.Left
shape_back3.Top = y - (shape_back3.Height / 2)
backgrey3_x = x
backgrey3_y = y
lbl_back3.Top = shape_back3.Top
lbl_back3.Left = shape_back3.Left + (shape_back3.Width * 1.2)
lbl_back3.Caption = "Back-Grey3 = " & backgrey3
lbl_back3.Visible = True
setbackflag = 1
enable_btns
Exit Sub
End If
Text1.Text = ""
mousedownflag = True
startx = x
starty = y
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If (x > startx) And (y > starty) And (mousedownflag = True) Then
'die nächsten vier if abfragen werden benötigt um sicherzustellen
'dass das selektierte feld innerhalb des bildes liegt
If x > ((Me.ScaleWidth - Picture1.Left) - 5) Then
x = (Me.ScaleWidth - Picture1.Left) - 5
End If
If x > Picture1.Width Then
x = Picture1.Width - 5
End If
If y > ((Me.ScaleHeight - Picture1.Top) - 5) Then
y = (Me.ScaleHeight - Picture1.Top) - 5
End If
If y > Picture1.Height Then
y = Picture1.Height - 5
End If
7 Anhang
Anhang 27
endx = x
endy = y
Shape1.Left = startx
Shape1.Top = starty
Shape1.Width = x - startx
Shape1.Height = y - starty
Shape1.Visible = True
Shape1.Refresh
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If setbackflag > 0 Then
If setbackflag = 1 Then
setbackflag = 0
End If
Exit Sub
End If
mousedownflag = False
If (endx > startx + 3) And (endy > starty + 3) Then
Shape1.Left = startx
Shape1.Top = starty
Shape1.Width = endx - startx
Shape1.Height = endy - starty
count_pic
Else
endx = startx + 3
endy = starty + 3
Shape1.Visible = False
End If
End Sub
Private Sub disable_btns()
cmd_up.Enabled = False
cmd_down.Enabled = False
cmd_left.Enabled = False
cmd_right.Enabled = False
cmd_load_file.Enabled = False
cmd_setback.Enabled = False
cmd_cancel.Visible = True
End Sub
7 Anhang
Anhang 28
Private Sub enable_btns()
cmd_up.Enabled = True
cmd_down.Enabled = True
cmd_left.Enabled = True
cmd_right.Enabled = True
cmd_load_file.Enabled = True
cmd_setback.Enabled = True
cmd_cancel.Visible = False
End Sub
Private Function getgreyval(x As Single, y As Single) As Long
Dim col1 As Long
Dim red1 As Long
Dim green1 As Long
Dim blue1 As Long
Dim tmpcol As Long
col1 = Picture1.Point(x, y)
tmpcol = col1 And &H1FF0000
tmpcol = tmpcol / &H10000
blue1 = blue1 + tmpcol
tmpcol = col1 And &H100FF00
tmpcol = tmpcol / &H100
green1 = green1 + tmpcol
tmpcol = col1 And &H10000FF
'red1 = tmpcol / &H1
red1 = red1 + tmpcol
getgreyval = (red1 + green1 + blue1) / 3
End Function
Private Sub showbackparams()
shape_back1.Visible = True
shape_back2.Visible = True
shape_back3.Visible = True
lbl_back1.Visible = True
lbl_back2.Visible = True
lbl_back3.Visible = True
Recommended