Das Sience Magazin Nature stellt seit 2005 einen wöchentlichen Podcast online, der sich mit aktuellen Themen aus dem Magazin beschäftigt. Chris Smith stellt in der halb stündigen Sendung die Highlights aus der aktuellen Ausgabe vor. Auf der Internetseite von Nature gibt es alle bis jetzt veröffentlichten Sendungen im mp3-Format zum herunterladen. Der Podcast ist frei verfügbar.
Aufgabe
Eine Spielzeugeisenbahn besteht aus 2 Gleisen, die jeweils kreisförmig sind. Auf jeder Strecke soll der Blockstreckenverkehr durch ein Java-Programm simuliert werden. Jeder der Kreise ist in n Blockstrecken unterteilt, wobei n als Parameter implementiert werden soll, der beim Programmstart angegeben wird (z.B. als Kommandozeilen-Argument). Auf jedem der Kreise stehen beim Start k Züge, und zwar jeweils auf den Abschnitten 0 bis k-1. Die Züge fahren alle in die gleiche Richtung, beim inneren Kreis jedoch in die Gegenrichtung des äußeren Kreises.
Ihre Aufgabe besteht darin, Kollisionen zu verhindern. In jedem Streckenabschnitt darf sich zu einem Zeitpunkt höchstens ein Zug befinden. Jeder Zug soll als eigenständiger Thread implementiert werden. Erzeugen Sie sinnvolle Ausgaben, die das Geschehen nachvollziehbar machen.
Achtung: Sie dürfen die Parallelität nicht unnötig einschränken. Ihr Programm muss auch im Spezialfall k = n-1 funktionieren. Lediglich im Spezialfall k = n darf es zu einem Deadlock kommen.
Übungsblatt 1 (einfache unbestimmte Integrale, Integration durch Substitution, Partielle Integration, Integration durch Partialbruchzerlegung, Bestimmte Integrale, Rotationsflächen, Differentialgleichungen)
Übungsblatt 2 (weitere Übungsaufgaben zur Partialbruchzerlegung mit Lösungsweg)
Übungsblatt 3 (gemischte Übungsaufgaben zur Integration mit Lösungsweg)
WINDOWS: Windows eXPerience kurz XP kommt auf den Markt. Es ist sowohl eine Weiterentwicklung von Windows 2000 als auch von Windows ME. Mit XP wird die NT und DOS Linie vereint. Deswegen ist es in zwei Versionen „Home“ und „Professional“ erhältlich. Um die Kompatibilität älterer nicht-NT Programme zu gewährleiste entwickelt Microsoft ein Kompatibilitätsmodus namens Personality, der bei Bedarf Routinen älterer Systeme emuliert. Oft sind jedoch alte DOS Anwendungen nicht mehr lauffähig, da die technische Umsetzung dieses Konzept zu wünschen übrig lässt.
WINDOWS: Windows Millennium Edition kurz ME, das wohl letzte Betriebssystem aus der MS-DOS Linie, erscheint. Es ist eine Weiterentwicklung von Windows 98 SE und bietet unter anderem ein Tool zur Systemwiederherstellung. Wenige Monate vorher wird Windows 2000 veröffentlicht. Es ist eine Weiterentwicklung von Windows NT 4.0 und wird Microsoft intern auch als NT 5.0 bezeichnet. Es gibt neue Protokolle zu verschlüsselten Netzwerkkommunikation, Das NTFS-Dateisystem Version 5 ermöglicht Datenkompression und Verschlüsselung und USB Peripherie wird unterstützt.
WINDOWS: Windows 98 bringt keine neuen Konzepte mit sich. Auf Microsofts Liste der wichtigsten Neuerungen steht bereits auf Platz zwei: Anwendungen lassen sich schneller öffnen und schließen. Viele bezeichnen Windows 98 auch als „kostenpflichtiges Update zu Windows 95“.
WINDOWS: Mit Windows NT 4.0 setzt Microsoft seine New Technology Reihe soft. Es ist aufgebaut wie Windows 95 besitzt jedoch verbesserte Netzwerkfähigkeiten. Der Zugriff auf das Internet und Firmenintranets wird sicherer und einfacher.
WINDOWS: Windows 95 erscheint. Im August bring Microsoft mit einer riesigen Werbekampagne sein Betriebssystem auf den Markt. Die Verkaufszahlen übersteigen jetzt noch die von Windows XP. Es Ist das erste System, das die 32-Bit-Technologie optimal ausnutzt. Microsoft kreiert den Begriff Plug & Play, der suggerieren soll, dass man jetzt Peripherie ohne großen Installationsaufwand in betrieb nehmen kann. Weitere Features des neuen Betriebssystems war die erstmalige Unterstützung von Multimediaanwendungen für Videos, Musik und Spiele. Dies machte eine API Sammlung, die unter dem Namen DirectX zusammen gefasst wurde möglich. Windows 95 ist Netzwerkfähig.
UNIX: Der Linux-Kernel erscheint in der Version 1.0.
WINDOWS: Windows New Technology kurz NT erscheint in der Version 3.1. Es ist für Unternehmen gedacht und setzt Schwerpunkte auf Sicherheit und Netzwerkfähigkeit. Es unterstützt bereits NTFS-Dateisysteme.
UNIX: Das von SunOS entwickelte Betriebssystem Solaris 2.x wird vermarktet. Es bietet durchgängig 64-Bit-Unterstützung.
UNIX: Der Linux Kernel von Linus Trowalds, eine völlig neue Implementation eines UNIX-Systems, verbreitete sich im Internet. Es orientiert sich an POSIX, System V und BSD. Dank der Verbreitung im Internet konnte Linux sich schnell weiterentwickeln.
WINDOWS: Windows 3.1 erscheint. Es unterstützt nur noch Prozessoren ab dem 80286. Wichtigste Neuheiten sind TrueType-Fonts und OLE (Objekt Linking and Embedding).
UNIX: Das IEEE Konsortium entwickelt einen neuen POSIX Standart auf Basis des System V und BSD.
OS/2: Microsoft zieht sich aus der Entwicklung von OS/2 zurück und überlässt IBM die Weiterentwicklung.
WINDOWS: Windows 3.0 erscheint. Es ist die erste Windows Version die als Platform für größere Anwendungen dienen kann. Man kann jetzt 16 MB Speicher adressieren, man kann zwischen mehrere DOS- und Windows-Anwendungen umschalten, Programm- und Filemanager entstehen. Windows Anwendungen für ältere Versionen führen allerdings häufig zu Abstürzen.
UNIX: Der AT&T Standart (System V) wird um viele Elemente des BSD UNIX Systems erweitert
WINDOWS: Windows 2.1 erscheint in zwei Versionen. Jetzt können mehrere DOS-Anwendungen sicher in virtuellen Maschinen laufen.
DOS: MS-DOS 3.3 erscheint. Es entstehen jedoch auch in weiteren Versionen keine Strukturändernden Neuerungen.
OS/2: OS/2 1.0 ist fertig. Es kann 16 MB Arbeitsspeicher adressieren, auf einen virtuellen Speicher von 512 MB zugreifen und unterstützt präemptives Multitasking. Definition „präemptiv“: in einer Weise organisiert, die sicherstellt, dass die Ausführung einer Aufgabe jederzeit von einer höheren Instanz unterbrochen werden kann.
WINDOWS: Windows 2.0 erscheint mit überarbeitetem „Look and Feel“.
UNIX: AT&T gibt einen UNIX Standart heraus, der das Aussehen von Systemaufrufe, Bibliotheksroutinen und Hilfsprogramme Festlegt. Diese Standardisierung wird von BSD ignoriert.
OS/2: IBM gibt wieder einmal ein Betriebssystem bei Microsoft in Auftrag. Es sollte nicht auf MS-DOS Basieren.
WINDOWS: Windows 1.1 erscheint. Es ist ein Abklatsch der Apple Oberfläche. Fenster dürfen sich nicht überlappen sonder müssen entweder vollständig nebeneinander oder übereinander liegen.
UNIX: Das IEEE Konsortium versucht ein standardisiertes UNIX System genannt POSIX zu etablieren.
DOS: MS-DOS 3.0 wird veröffentlicht. Es unterstützt jetzt HD-Disketten, größere Festplatten und ist etwas schnellte. Der gleichzeitig erschienene neue IBM PC mit 80286 Prozessor ist Multitasking fähig und bietet Unterstützung für 16 MB Hauptsspeicher. Davon macht MS-DOS 3.0 aber keinen Gebrauch.
UNIX: Viele Herstelle benutzen UNIX auf ihren Systemen, wodurch eine große Vielfalt von UNIX Systemen entstand.
DOS: IBM kündigt ein neues System mit integrierter 10MB Festplatte an. Das erforderte ein hierarchisches Dateisystem da MS-DOS 1.1 jedoch nur aus einer Ebene bestand wurde MS-DOS 2.0 mit Hierarchischem Dateisystem entwickelt. Microsoft orientierte sich dabei stark an UNIX, das schon längst ein Hierarchisches Dateisystem hatte. Man übernahm viele Systemaufrufe. Um sich gegenüber UNIX abzugrenzen, benutzte man den Backslash „\“als Trennzeichen im Dateipfad, anstatt den normalen Slash „/“. Zusätzlich ist ab 2.0 noch einfaches Spooling möglich.
WINDOWS: Als Antwort auf Apples Lisa kündigt Microsoft ein fenster-orientierte Benutzeroberfläche für PCs an.
DOS: MS-DOS 1.1 wird fertiggestellt. Es sind zwar noch nicht mehrere Programme gleichzeitig lauffähig, jedoch können schon verschieden Programme gleichzeitig in den Arbeitsspeicher geladen werden. Dies war mit dem alten .com Format nicht möglich, deswegen entwickelte man das .exe Format. Da der Arbeitsspeicher knapp war, wurde er aufgesplittet in einen Teil, der nach dem Booten permanent im Speicher verbleibt und einen Teil der nachgeladen werden konnte. Für Programme wie FORMAT oder CHKDSK.
DOS: Im August bringt IBM einen PC zusammen mit dem fertiggestellten MS-DOS 1.0 auf den Markt. MS-DOS 1.0 ist nur 12 KByte groß und umfasst 4000 Assembler befehle.
DOS: IBM plant eine 16-Bit-Mikrocomputer. Das Betriebssystem CP/M-86 steckt jedoch in großen Entwicklungsschwierigkeiten und man entscheidet sich, Microsoft mit der Entwicklung eins kompakten und einfachen Betriebssystems zu beauftragen. Microsoft kauft darauf hin ein fast fertiges Produkt namens 86-DOS, das sich stark an CP/M anlehnt. Es unterstützt nur ein 5¼''-Disketten Laufwerk und das Dateisystem hat nur eine Ebene!
UNIX: Microsoft entwickelt eine UNIX-Version für Mikrocomputer namens XENIX. Sie weicht vom ursprünglichen UNIX stark ab.
AT&T entwickeln eine bessere Unterstützung für große Dateien, eine erweiterte Version der Programmiersprache C und eine neue Shell.
UNIX: Zum ersten mal gelingt es, UNIX auf ein Rechnersystem, das nicht zur PDP Serie gehört zu portieren. Dafür war einige an Arbeit nötig, da einige rechnerabhängige Parameter benutzt worden waren.
Eine große Weiterentwicklung war der „portable C Compiler“ von Steve Johnson. Dieser Compiler ermöglichte die Erzeugung von Maschinencode für fast jede Rechnerarchitektur. Dies ermöglichte die Weiterverbreitung auf verschiedene Systeme.
An der Universität in Kalifornien wird, unterstützt vom amerikanischen Verteidigungsministerium, wird eine UNIX Variante namens BSD entwickelt. Hier entsteht auch unter anderem der Editor vi und die Shell csh.
UNIX: Fast das ganze UNIX System wird in C umgeschrieben. Dadurch wurde es zwar minimal größer, jedoch war auch der Grundstein für eine schnelle Weiterentwicklung gelegt. Durch das Umschreiben war UNIX jetzt auch besser auf andere Rechnersysteme zu übertragen.
Erstmals testen 25 Mitarbeiter der Bell-Laboratories das Betriebsystem von Thompson und Ritchie.
Die UNIX Lizenz wird günstig an diverse Universitäten in den USA verkauft. Da dort viele PDP-11 verwendet werden, kann sich das System schnell verbreiten. Es werden viele neue Entwicklungen eingebaut, da der komplette Sourcecode zur Verfügung steht. Zu dieser Zeit entsteht das Textformatierungsprogramm „toff“.
UNIX: UNIX wir auf eine PDP-11 portiert. Es entstehen erste Compiler auf diesem System. Da sich Thompson nicht mit der Programmiersprache Fortran anfreunden konnte, entwickelte er die Sprache B. Diese Sprache verfügte über nur einen Datentyp: Integer. Dennis Ritchie erweiterte dann die Sprache um Datenstrukturen und andere Elemente. Er nannte seine neue Sprache C.
UNIX: Zwei der MULTICS Entwickler, Ken Thompson und Dennis Ritchie wurden von den Bell-Laboratories beauftragt, ein verbessertes Dateisystem zu entwickeln. Als Nebenprodukt entstand ein kleiner Systemkern. Thompson hat einen freie PDP-7 ( Programmable Digital Processor model 7, Rechnersystem ) gefunden und Kernel und Dateisystem auf den Computer übertragen. Das Dateisystem hatte damals schon ziemlich viel Ähnlichkeiten mit dem heutigen, denn es war bereits hierarchisch geordnet. Aus dem Kernel entwickelt sich ein System, das zunächst nur für einen User gedacht war. Deswegen hat es auch scherzhaft den Namen UNIX bekommen.
UNIX: Das MIT (Massachusetts Institute of Technology), Packard Bell und GE (General Electrics) kündigen die Entwicklung eines Rechners mit Betriebssystem an. Sie nennen das Betriebssystem MULITCS. Es soll erstmals für eine breitere Masse bedienbar sein. Unter breiterer Masse stellte man sich damals Hunderte oder Tausende Benutzer vor. Man entschied sich für die Programmiersprache PL/1 anstatt Fortran. Es gab jedoch große Entwicklungschwierigkeiten. Der PL/1-Compiler wurde nicht rechtzeitig fertiggestellt und war dann trotzdem noch fehlerhaft. Letztendlich hat man nie die angestrebten Benutzerzahlen erreichen können. So kam es, dass MULITCS erst 1969 halbwegs lauffähig war und nie kommerziell genutzt wurde.
Ein Myosinmolekül besteht aus insgesamt 6 Untereinheiten. Diese Untereinheiten werden in zwei schwere und vier leichte Untereinheiten bzw. Ketten unterteilt.
Die beiden schweren Ketten bestehen aus einem fibrösen, langen alpha-helikalen Teil mit einer globulären Domäne am Aminoterinalen Ende. Die Helikalen Teile der beiden schweren Ketten sind linksgängig um einander superspiralisiert. Zwei der vier leichten Ketten sind jeweils an die globuläre Domäne einer schweren Kette gebunden. Man bezeichnet die globulären Teile der schweren Ketten zusammen mit den leichten Ketten auch als Myosin Kopfgruppe.
In Muskelzellen sind jeweils viele Myosinmoleküle so aneinander gelagert, dass die Kopfgruppen leicht versetzt nach außen gucken. Sie bilden das dicke Filament in den kontraktilen Einheiten von Muskeln.
Die meisten Enzyme benötigen für ihre katalytische Aktivität zusätzliche chemische Komponenten. Dabei kann es sich entweder um anorganische Ionen (Fe2+, Mg2+, Mn2+ oder Zn2+) oder um komplexere organische oder metallorganische Moleküle handeln. Im letzteren Fall spricht man von Koenzymen, eine Untermenge der Kofaktoren. Sind Kofaktoren fest an ein Enzym gebunden, bezeichnet man sie auch als prosthetische Gruppe. Enzyme die durch Bindung an all ihre Kofaktoren ein aktives Enzym bilden werden als Holoenzyme bezeichnet. Liegt das Enzym ohne seine Kofaktoren, also katalytisch inaktiv vor, bezeichnet man es als Apoenzym.
Die katalytische Aktivität von Enzymen beruht im wesentlichen auf drei verschiedenen Typen der Katalyse.
Viele Reaktionen laufen nicht vollständig ab, weil das Zwischenprodukt in wässriger Lösung nicht stabil genug vorliegt, um weiter in die Produkte umgesetzt zu werden. So stellt sich ein Gleichgewicht zwischen Edukten und Zwischenprodukten ein. In manchen Fällen reichen die vom Wasser gebildeten Ionen H3O und OH- als Protonen Donatoren bzw. Akzeptoren aus, um das Zwischenprodukt zu stabilisieren und damit die Reaktion in die Endprodukte zu ermöglichen. In diesem Fall spricht man von spezifischer Säure-Base-Katalyse.
Für viele Reaktionen reicht das beschränkte katalytische Potenzial von Wasserionen jedoch nicht aus. In diesem Fall können Aminosärereste im aktiven Zentrum von Enzymen bei der Katalyse als Protonen Akzeptoren oder Donatoren dienen. Dies bezeichnet man als allgemeine Säure-Base-Katalyse
Bei der kovalenten Katalyse geht das Enzym während der Katalyse eine temporäre kovalente Bindung mit dem Substrat ein oder es werden bestimmte Gruppen des Substrates temporär an das Enzym gebunden. Diese wird in einem zweiten Schritt wieder gespalten um das Enzym zu regenerieren. Die kovalente Bindung kommt mit Hilfe einer nukleophilen Gruppe am Enzym zustande. Einige der Aminosäuren haben nukleophile Gruppen die Enzyme zur kovalenten Katalyse befähigen (z.B. Serin oder Histidin).
Die katalytische Aktivität von ca. einem Drittel aller bekannten Enzyme beruht auf einer Metall-Ionen-Katalyse[1]. Ein oder mehrere enzymgebundene Metall-Ionen können durch schwache Wechselwirkungen und/oder die räumliche Ausrichtung des Substrats die Katalyse fördern. Metall-Ionen können dies durch eine bestimme Ausrichtung des Substrates oder durch die Stabilisierung von Übergangszuständen erreichen. Siehe Häm-Gruppe im Hämoglobin und Myoglobin.
Quellen:
1: Lehniger Biochemie, 2001
Eine effiziente Methode zur DNA Sequenzierung ist die Kettenabbruchmethode auch Didesoxymethode genannt. Sie erlaubt die Squenzierung von DNA-Fragmenten mit mehreren hundert Nukleotiden. DNA-Polymerase ist dabei das Enzym das die Sequenzierung ermöglicht, deshalb gehört die Kettenabbruchmethode zu den enzymatischen Sequenzierungsverfahren. Das Verfahre Basiert auf der Verwendung von Didesoxynukleosidtriphosphaten (ddNTP) zum gezielten Abbruch von DNA-Polymerisationen.
Sie unterscheiden sich von den normalerweise zur Polimerisation von DNA verwendeten desoxynukleosidtriphosphaten (dNTP) darin, dass der enthaltene Zucker nicht Desoxyribose, sondern Didesoxyribose ist. Mit anderen Worten fehlt gegenüber der Ribose an diesem Zucker nicht ein Sauerstoff Atom (wie bei der Desoxyribose) sondern zwei. Das zweite Sauerstoffatom sitzt bei der Ribose und Desoxyribose am C3' Atom und bildet dort eine OH Gruppe. Wird ein ddNTP anstatt einem dNTP bei der Kopie eines DNA-Fragmentes durch DNA-Polymerase verwendet, wird auf Grund der fehlenden OH-Gruppe die Polymerisation an diese Stelle abgebrochen.
Diesen Abbruch kann man sich zur Sequenzierung zu Nutze machen. Man setzt zunächst vier verschiedene Lösungen an, die alle DNA-Polymerase, einen zum DNA-Fragment passenden Primer und alle vier verschiedenen dNTPs (dCTP, dATP, dTTP, dGTP) enthalten. Zusätzlich gibt man in eine Lösung eine Konzentration von ddNTP mit Cytosin im Nukleosid (ddCTP); in eine andere ddNTP mit Adenin im Nukleosid (ddATP) und in die beiden verbleibenden Lösungen entsprechend jeweils ddTTP und ddGTP.
Die DNA-Polymerase beginnt nun in allen vier ansätzen die Fragmente zu polymerisieren. In jedem Ansatz wird sie jedoch bei einer bestimmten Base am Matrizenstrang mit einer von der Konzentration des jeweiligen ddNTPs abhängigen Wahrscheinlichkeit abbrechen.
Nimmt man zum Beispiel die Sequenz "GGATTC" werden in dem ddATP-Ansatz folgende Fragmente zu finden sein: CCTA, CCTAA und CCTAAG. Im ddTTP-Ansatz: CCT und CCTAAG. Im ddCTP-Ansatz: C, CC und CCTAAG. Und im ddGTP: CCTAAG. Insgesamt sind dann Fragmente jeder möglichen länge vorhanden (jedoch in verschiedenen Ansätzen):
C
CC
CCT
CCTA
CCTAA
CCTAAG
Man kann nun die Fragmente mit Hilfe von Gelelektrophorese nach ihrer Größe auftrennen, dabei benötigt man ein Gel das DNA-Sequenzen mit einem Größenunterschied von nur einer Base noch sauber auftrennen kann. Man setzt vier Laufansätze an die jeweils für A, G, T und C stehen. In dem oberen Beispiel wird die Bande die am weitesten gelaufen ist bei C zu sehen sein. Die zweit weiteste auch bei C, dann bei T, dann bei A, dann wieder bei A und dann zuletzt bei G. So kann man auf die komplementäre Sequenz der Ausgangs-DNA zurückschließen.
Heutige enzymatische Sequenzierungen werden nicht mehr mit einem Gel ermittelt. Man markiert die ddNTP-Moleküle jeweils mit einem Farbstoff um sie optisch während einer chromatographischen Auftrennung detektieren zu können. Dies läuft computergestützt und automatisiert ab.
Eine Übersicht über die verschiedenen Enzyminhibitoren und Modulatoren regulatorischer Enzyme. Die Begriffe sind teilweise zu weiterführenden Artikeln verlinkt.
Irreversible Inhibitoren sind Moleküle die Enzyme irreversible hemmen. Das Enzym kann nach einer irreversiblen Hemmung nicht mehr in den aktiven Zustand zurückgeführt werden. Inhibitoren, die Enzyme auf diese Weise hemmen binden entweder kovalent an das Enzym oder zerstören für die katalytische Aktivität wichtige funktionelle Gruppen. Eine besondere Form dieser Inhibitoren sind Suicide Inhibitoren oder auch Selbstmord-Inhibitoren. Sie befinden sich generell in einem inaktiven Zustand, werden aber von dem Enzym, dass sie inhibieren, in eine aktivere Form überführt. Daraufhin inaktivieren sie das Enzym irreversibel. Das Enzym katalysiert somit seine eigene Zerstörung. Aufgrund dieses Prozesses werden solche Inhibitoren auch als mechanismusgestützte Inhibitoren bezeichnet.
Die häufigste reversible Hemmung ist die kompetitive Hemmung. In diesem Fall konkurrieren das Substrat und ein kompetitiver Inhibitor um das Aktive Zentrum des Enzyms. Der Inhibitor ist häufig ein Struktur Analogon zum Substrat wodurch er reversibel an das aktive Zentrum des Enzyms binden kann. Aus dem Enzym-Inhibitor-Komplex folgt keine enzymatische Spaltung. Der Inhibitor bleibt unverändert. Das Binden des Inhibitors blockiert im eigendlichen Sinne nicht das Enzym, sondern verringert lediglich bei zunehmender Konzentration die Wahrscheinlichkeit, dass das Substrat an das Aktive Zentrum binden kann. Dies kann insgesamt jedoch eine effektive Herabsetzung der katalytischen Effizienz des Enzyms zur Folge haben. Kompetetive Hemmung hat keinen Einfluss auf Vmax, verändert jedoch Km.
Die nicht-kompetitive Hemmung spielt eine Rolle bei Enzymen mit zwei oder mehr Substraten. Dabei behindert der Inhibitor die Enzymfunktionalität nicht indem er an das Enzym bindet sonder an den Enzym-Substrat-Komplex. In diesem Fall ändert sich Vmax und Km, die Grade im Lineweaver-Burk-Diagramm ist bei verschiedenen Inhibitor Konzentrationen parallel verschoben.
Eine dritte Form der Hemmung ist die gemischte reversible Hemmung. Ein gemischter Inhibitor kann entweder an das aktive Zentrum binden um einen kompetitiven Inhibitor-Enzym-Komplex zu bilden, oder an einen Enzym-Substrat-Komplex um als nicht-kompetitiver Inhibitor zu wirken.
Einige Enzyme entstehen bei der Biosynthese in einer katalytisch inaktiven Form, die auch als Zymogen bezeichnet wird. Sie werden erst nach einer irreversiblen kovalenten Spaltung in ihre aktive Konformation überführt. Da diese Aktivierung irreversibel ist gibt es für die Hemmung andere Mechanismen. Sinn macht dies bei Enzymen, deren katalytische Aktivität am Ort ihrer Synthese schädlich wären, wie zum Beispiel Chymotrypsin oder Trypsin (Verdauungsenzyme die durch proteolytische Spaltung erst im Magen aktiv werden). Ein anderes Beispiel ist Kollagen, dass im Gegensatz zu seiner Vorstufe (Prokollagen) ein hydrophobes Molekül ist. Prokollagen ist somit, bis zu seiner Umwandlung zu Kollagen, wasserlöslich.
Phosphorylierung ist eine reversible kovalente Modifikation. Am Beispiel der Glycogen-Phosphorylase kann man den Einfluss von Phosphorylierungen auf die katalytische Aktivität und die Struktur von Enzymen veranschaulichen. Sind die beiden Untereinheiten der Phosphorylase an jeweils einem Ser Rest Phosphoryliert spricht man von Phosphorylase a. Dies ist die enzymatisch aktive Form. Wird Phosphorylase durch Phosphorylase-Phosphatase dephosphoryliert ändert sich die Struktur des Porteins in eine weniger aktive Form um. Man spricht dann von Phosphorylase b.
Allosterische Enzyme bestehen meist aus mehreren Untereinheiten. Die Bindung von einem oder mehreren Modulatoren bewirkt oft Konformationsänderungen in anderen Domänen. Dies führt zu einer positiven bzw. negativen Modulation der Enzymaktivität. Dieser Effekt ähnelt der Kooperativen Bindung bei nicht-Enzym-Proteinen (vergleiche O2-Bindung an Hämoglobin) und weißt deshalb ebenfalls oft eine sigmoide Reaktionskinetik auf.
Die Reaktionskinetik von homotrophen allosterischen Enzymen reagiert stark auf die Modulatorkonzentraion. Das Verhalten von heterotropen allosterischen Enzymen ist schwer zu verallgemeinern. Oft verändert sich mit der Modulatorkonzentration der Km Wert ohne dass sich Vmax verschiebt. So kann ein nahezu hyperbolischer Verlauf bei Verringerung von Km auftreten. Bei manchen Enzymen verändert sich jedoch der Wert für Km, bei gleichzeitiger Verschiebung von Vmax, kaum.
Das allosterisch regulierte Enzym ist meist das erste in einem Stoffwechselweg. Um eine bestimmte Konzentration des Endproduktes eines Stoffwechselweges zu halten wird oft das erste Enzym eines Stoffwechselweges durch das Endprodukt gehemmt. So wird der Ablauf des kompletten Stoffwechselweges bei zu hoher Endproduktkonzentration unterdrückt. Diese Art der Regulierung nennt man Feedback- oder auch Rückkopplungshemmung.
Regulatorische Enzyme stehen meist am Anfang von Multienzym-Systemen um die Bildung unnötiger Metabolite zu vermeiden. Man kann regulatorische Enzyme in zwei Klassen unterteilen.
Zum einen allosterische Enzyme, die durch reversible, nicht-kovalente Bindung von allosterischen Modulatoren (meist Cofaktoren oder kleine Methabolite) reguliert werden können. Ist das Substrat gleichzeitig der allosterische Modulator spricht man von homotropen allosterischen Enzymen (vergleichbar mit der Bindung von O2 an das nicht-enzymatische Protein Hämoglobin). Ist der Modulator ein anderes Molekül als das Substrat handelt es sich dementsprechen um ein heterotopes allosterisches Enzym. Eine besondere Form der allosterischen Modulation ist die Feedback Hemmung.
Die zweite Klasse sind Enzyme die über reversible kovalente Modifikation reguliert werden. Bei diesem Prozess werden funktionelle Gruppen (Phosphat-, Adenyl-, Uridyl-, Adenosindiphospatribosyl- oder Methylgruppen) kovalent an das Enzym gebunden bzw. abgespalten. Phosphorylierung ist dabei die wichtigste kovalente Modifikation (siehe Phosphorylierung von Glycogen-Phosphorylase). Eine Sonderform der kovalenten Modifikation ist die porteolytische Spaltung, sie ist irreversibel.
Quelle: Biochemie Lehninger, 2001
Aufgabe
Über den eingleisigen Streckenabschnitt AB sollen die Züge so koordiniert fahren, dass kein Unfall entsteht. In den Streckenabschnitt passen maximal 3 Züge gleichzeitig. Sie können annehmen, dass außerhalb des Abschnitts immer genügend neue Züge bereit stehen; nach dem Verlassen des Abschnitts fahren sie rechtzeitig ohne Unfälle weg.
Achtung! Ein Zug kann unterwegs nicht die Richtung wechseln! Rückwärts fahren darf er auch nicht!
Sie können zur Vereinfachung davon ausgehen, dass die Züge, die sich bereits im Streckenabschnitt befinden, nicht aufeinanderfahren können.
Implementieren Sie eine Klasse Zug, die pro Instanz einen Thread startet und zufällig (siehe Math.random()) eine der beiden Methoden GoEast() oder GoWest() aufruft. Hinweis: wo sollten diese Methoden sinnvollerweise implementiert werden: ebenfalls in Zug oder besser woanders? Denken Sie daran, dass mehrere Züge gleichzeitig starten können! Ihre Aufgabe besteht darin, Kollisionen durch Gegenverkehr zu verhindern!
Hinweis: überlegen Sie sich, welche Zustände der Streckenabschnitt annehmen kann. Formulieren Sie erst dieses Zustandsmodell! Setzen Sie es dann in möglichst einfache und möglichst wenige Zustands-Variablen um.
Hinweis: es gibt viele verschiedene Lösungsmöglichkeiten. Sie können frei entscheiden, welche der in der Vorlesung behandelten Konzepte Sie einsetzen wollen. Es kommt jedoch auf die Korrektheit an! Die Lösung muss einerseits frei von Deadlocks sein, darf aber andererseits die Züge nicht unnötig blockieren!
Testen Sie ihr System zuerst mit 10 parallel gestarteten Zügen, später mit 100 und mehr Zügen. Es sollen sinnvolle Ausgaben erzeugt werden, aus denen klar hervorgeht, wo sich jeder Zug (mit einer Nummer oder Namen) jeweils befindet bzw wohin er fährt.
Freiwillige Zusatzaufgabe: sorgen Sie dafür, dass die Züge, die sich innerhalb des Streckenabschnitts befinden, nicht aufeinander fahren können. Sie können dazu das Prinzip des Blockstrecken-Betriebs benutzen, das auch bei der realen Eisenbahn eingesetzt wird.
Aufgabe
Vor einer Autowerkstatt befindet sich eine Warteschlange mit beliebiger Kapazität. In der Werkstatt arbeiten 10 Mechaniker-Threads jeweils parallel. Eine Auto-Reparatur dauert zufällig verteilt zwischen 10 und 20 Sekunden (Math.random() verwenden). Neue Autos werden von einem einzigen Liefer-Thread (alternativ auch vom Haupt-Thread) zufällig verteilt alle 1000 bis 2000 Millisekunden angeliefert und gelangen als erstes stets in die Warteschlange.
Achtung! falls die Warteschlange leer ist, muss der jeweilige Mechaniker warten, bis er ein Auto aus der Warteschlange abholen kann. Dieses Warten darf nicht durch eine feste Mindest-Wartezeit verlängert werden (verstecktes Busy-Wait mittels sleep() ist unzulässig)! Sobald ein neues Auto ankommt, muss mindestens einer der wartenden Mechaniker sofort mit der Reparatur beginnen!
Setzen Sie dieses System in ein Java-Programm mit aussagekräftigen Bildschirmausgaben um. Sie können annehmen, dass reparierte Autos sofort wegfahren und nicht weiter stören.
Freiwillige Zusatzaufgabe: protokollieren Sie jeweils den Füllstand der Warteschlange mit und beobachten Sie das System über einen längeren Zeitraum. Wenn Sie die oben genannten Zeit-Parameter ändern (z.B. die mittlere Reparaturdauer verkleinern oder vergrößern), welche Effekte treten dann ein? Haben Sie derartige Effekte bereits im realen Leben beobachten können?
Effekt aus dem Leben: Egal welche Anzahl von Mechanikern die Werkstatt einstellt, es kann nicht sichergestellt werden, dass es zu keiner Zeit eine Warteschlange gibt und gleichzeitig immer alle Mechaniker beschäftigt sind.
Aufgabe 1
Beim Tischtennis spielen sich zwei Gegner abwechselnd den Ball zu. Dabei kann der eine Spieler ("Hans") den Ball nur dann schlagen, wenn der andere Spieler ("Vera") den Ball geschlagen hat. Mit Ausnahme des Beginns des Spiels: Vera beginnt.
Implementieren Sie eine Klasse Spieler, die bei der Instantiierung jeweils einen parallel laufenden Thread erzeugt, der die Aktionen des jeweiligen Spielers (mit einem bestimmten Namen und einem Gegner) ausführt. Implementieren Sie weiterhin eine Klasse Ball, die als Hilfsklasse zur Durchführung der Synchronisation dienen soll.
Beachten Sie, dass im Spiel stets immer nur genau 1 Ball unterwegs sein muss; mehrere Bälle oder kein Ball sind verboten! Es darf zu einem Zeitpunkt immer nur genau 1 Spieler-Thread den Ball schlagen!
Die Ausgabe des Programms sollte folgendermaßen aussehen:
Ping! Hans
Pong! Vera
Ping! Hans
Pong! Vera
Ping! Hans
Pong! Vera
...
Hinweis: verwenden Sie nicht den Spieltisch zur Synchronisation, da sich dieser während des Spiels ja nicht ändert. Überlegen Sie stattdessen, welche Zustände der Ball annehmen kann. Finden Sie für diese Zustände eine möglichst einfache Zustands-Repräsentation (möglichst wenige und einfache Variablen, d.h. halten Sie den Zustands-Raum so klein wie möglich).
Aufgabe 2
Beim Federball spielen sich drei Mitspieler ("Hans, "Vera" und "Peter") reihum den Ball (genau 1 Stück) zu. Implementieren Sie wie eben eine Klasse Spieler, die pro Spieler einen Thread erzeugt, und eine Klasse Ball.
Die Ausgabe des Programms sollte folgendermaßen aussehen:
Hans -> Vera
Vera -> Peter
Peter -> Hans
...
Hinweis: findige Programmierer schreiben für beide Aufgaben ein einziges Programm, dem man beim Aufruf nur noch sagen muss, für welches Spiel es sich intern konfigurieren soll. Dies ist aber keine Pflicht; Sie können auch 2 getrennte Programmcodes abgeben!
Achtung! Programmieren Sie kein "busy wait", sondern verwenden Sie wait() und notify() bzw. notifyAll()!
Der Smith-Waterman-Algorithmus ermittelt lokale Alignments für zwei Sequenzen. Die Sequenzen bilden eine Matrix in der Übereinstimmungen bzw. Unterschiede bewertet werden. Ist die Matrix erstellt, wird das Feld mit der höchsten Position gesucht (können auch mehrere sein) und von dort aus diagonal die Sequenz rückwärts abgelesen, bis man auf eine 0 stößt.
Beim Smith-Waterman-Algorithmus wird ein Übereinstimmen zweier Sequenzelemente mit +2 bewertet. Gaps und Mismatches werden mit -1 bewertet. Fällt die Bewertung negativ aus, wir sie 0.
Beispiel:
Sequenz A: AAAGAGTAGT
Sequenz B: TTTTAGTTTT
D - A A A G A G T A G T
- 0 0 0 0 0 0 0 0 0 0 0
T 0 0 0 0 0 0 0 2 1 0 2
T 0 0 0 0 0 0 0 2 1 0 2
T 0 0 0 0 0 0 0 2 1 0 2
T 0 0 0 0 0 0 0 2 1 0 2
A 0 2 2 2 1 2 1 1 4 3 2
G 0 1 1 1 4 3 4 3 3 6 5
T 0 0 0 0 3 3 3 6 5 5 8 <--
T 0 0 0 0 2 2 2 5 5 4 7
T 0 0 0 0 1 1 1 4 4 4 6
T 0 0 0 0 0 0 0 3 3 3 6
Das Ergebnis ist eine maximale Bewertung von 8 (Sieh Pfeil). Das lokale Alignment liefert: T G A T
Eine Implementierung in PHP mit Quelltext gibt es hier:
(Achtung: das Backtracking habe ich hier diagonal gemacht, das entspricht nicht dem Smith-Waterman-Algorithmus)
Variablen und Deklarationen
(1) Welche der folgenden Deklarationen sind korrekte Skalar Variablen Deklarationen?
1. my $var = 4;2. var = 4;3. my $var = "atgctga";(2) Welche der folgenden Deklarationen sind syntatisch korrekte Array Variablen Deklarationen?
1. my array = (1, 2, 3, 44);2. my @arr = (1, 2, 3, 4, 5 );3. my @avar = qw("atgctga", "tga", "atc" );4. my @avar = 4;(3) Welche der folgenden Deklarationen sind syntatisch korrekte Hash Variablen Deklarationen?
1. my hash = ('a' => 24, 'b' => 36);2. my %hash = ('a' => 24, 'b' => 36);3. my %hash = qw( 1 => atc, 2 => tgc );4. my %hash = qw( 1 => 'atc', 2 => 'tgc' ) + ;(4) Bezogen auf (3): Was ist der korrekte Weg, um an den Wert des Schlüssels 'b' zu kommen?
1. my $val = $hash{'b'};2. my $val = %hash{'b'};3. my $val = $hash{b};(5) Was ist der Wert von $sub in diesem Codestück?
my $sub = substr("atgcatgcagtgc", 4, 4 );
1. "catg"2. "atgc"3. "c"(6) Wie ist der korrekte Weg, das vierte Element aus diesem Array zu bekommen?
my @a = qw( a b c d e );
1. my $el = $a[ 4 ];2. my $el = $a[ 3 ];3. my $el = @a[ 3 ];(7) Wie sortiert man das Array in absteigender Rheihenfolge?
my @a = (1.3, 5.7, 9.8, 11.2, 2.5 );
1. my @sorted = sort {$a cmp $b} @a;2. my @sorted = sort {$b <=> $a} @a;3. my @sorted = sort {$a <=> $b} @a;Reguläre Ausdrücke
(8) Welche der folgenden Ausdrücke sind syntatiksch korrekt?
1. $str =~ /$my_regexp/;2. $str ~= /$my_regexp/;3. $str =~ /atgctga/;4. $str =~ m/atgtag/i;(9) Welche der folgenden regulären Ausdrücke wir den Substring "atgct" in dem String "aaaaatgctacgt" finden?
1. /(\w\w\w\w\w)/2. /(at..t)/3. /^(atgct)/4. /(a\w{3}[at])/(10) Was ist der Wert von $a in dem folgenden Ausdruck?
my $string = "id:123 seq:atcgat conc:5.5mM";
my ($a) = $string =~ /^(\S+)/;
1. 'id:123'2. 'id'3. 'id:123 seq:atcgat conc:5.5mM(11) Was ist der Wert von @a in dem folgenden Ausdruck?
my $string = "id:123 seq:atcgat conc:5.5mM";
my @a = $string =~ /(\S+)/g;
1. ( 'i', 'd' )2. ( 'id:123', 'seq:atcgat', 'conc:5.5mM' )3. ( 'id:123seq:atcgatconc:5.5mM' )(12) Was ist der Wert von %a in dem folgenden Ausdruck?
my $string = "id:123 seq:atcgat conc:5.5mM";
my %a = $string =~ /(\w+):(\S+)/g;
1. ( id => 123, seq => 'atcgat', conc => '5.5mM' )2. Undefined or and error3. (id123 => Undef, seq:atcgat => Undef, conc5.5mM => Undef)Datenstrukturen
Gegeben ist folgende Datenstruktur:
my $data_ref = [
{seq => 'atgctagcta', id => 'seq1' },
{seq => 'ccttcgctgc', id => 'seq2' },
{seq => 'agtgtgtgatct', id => 'seq3' }
];
(13) Der Wert von $data_ref->[0]{'id'} ist:
1. 'seq1'2. 'undefined'3. 'atgctagcta'(14) Der Wert von $data_ref[0]{'id'} ist:
1. 'seq1'2. "@data_ref" requires explicit package name3. 'ARRAY(0x1281e4)' (oder ähnlich)(15) Um jede einzelne Sequenz in der Datenstruktur auszugeben funktioniert welcher Code?
1. for my $seqhash ( @$data_ref ) { print "$seqhash->{'seq' }" };2. for my $seqhash ( % { @$data_ref } ) { print "$seqhash->{'seq' }" };3. while ( my $seqhash = shift @$data_ref ) { print "$seqhash->{'seq' }" };(16) Um die Schlüssel für den zweiten Hash im Array zu bekommen funktioniert welcher Code?
1. my @keys = keys % { $data_ref -> [1] };2. my @keys = keys % $data_ref -> [1];3. map{ push @keys, keys($_) }@$data_ref; };
Lösung:
(1) 1, 3 (2) 2, 3, 4 (3) 2, 3 (4) 1, 3 (5) 2 (6) 2, 3 (7) 2 (8) 1, 3, 4 (9) 2 (10) 1 (11) 2 (12) 1 (13) 1 (14) 2 (15) 1, 3 (16) 1
ASCII und Binär
In jedem Computersystem wird zwischen ASCII- und Binärdateien unterschieden. Im Grunde handelt es sich dabei um Dateitypen. Das ausschlaggebende ist hierbei die Lesbarkeit. Binärdateien werden, wie der Name schon sagt, im Binärcode gespeichert. Diese stellt eine Kombination von Einsen und Nullen dar. Diese Dateien können normalerweise von einem Menschen nicht gelesen und verstanden werden. ASCII-Dateien hingegen enthalten menschenlesbare Daten. Diese können in einem Editor geöffnet und gelesen werden. Es müssen sich allerdings nicht immer nur um lesbare Buchstaben handeln, auch hier können sich Maschinenzeichen aufhalten. Allerdings liegen diese immer im Rohformat vor
Genau an diesem Punkt liegt das eigentliche Problem. Damals, als die verschiedensten Betriebssysteme entwickelt wurden, war man sich nicht so ganz einig, wie eine Textdatei auszusehen hat. So wurden dann durch die Programmierer der verschiedenen Systemen unterschiedliche Spezifikationen für Textdateien festgelegt. Daraus folgte, dass Dateien von verschiedenen Spezifikationen nicht miteinander kompatibel sind. Das größte Problem dabei ist der Zeilenumbruch. Die Programmiersprachen kennen 3 verschiedene Arten dessen: CR, LF und NL. Prinzipiell haben alle drei Arten die gleiche Aufgabe. Der Cursor soll nach Betätigen der Enter-Taste in die nächste Zeile springen. Unter UNIX ist LF (linefeed, Zeilenvorschub) der Standard. Alle Dateien die in der UNIX-Welt geschrieben wurden, sind miteinander kompatibel.
Unter Windows hingegen hat sich die Kombination LF und CR (carriage return, Wagenrücklauf) durchgesetzt. Das hat zur Folge, dass neben einer neuen Zeile auch noch ein neuer Absatz markiert wird.
Deswegen sind Textdateien unterschiedlicher Betriebssysteme nicht kompatibel. Kopiert man Beispielsweise eine Textdatei von UNIX nach Windows, können viele Windows-Texteditoren die Zeichen nicht eindeutig verstehen und produzieren eine falsche Darstellung. Sehr oft wird der Text in nur einer langen Zeile dargestellt.
Bei diesen Problemen wird ein so genanntes Konvertierungsprogramm verwendet. Das ist eigentlich nicht weiter kompliziert, da lediglich die Zeichen CR, LF und NL in das Zeichen des entsprechenden Betriebssystems übertragen wird.
Die Kommandozeile
Der wesentlichste Unterschied zwischen Linux und Windows besteht in der Bedeutung der Kommandozeile. In den Zeiten von MS-DOS wurden die Befehle noch am DOS-Prompt eingetippt und ausgeführt. Mit Windows hat sich dies grundlegend geändert. Fast alle Programme werden mittels Mausklick ausgeführt. Es existiert zwar noch ein MS-DOS-Fenster, aber es hat fast keinerlei Bedeutung mehr.
Unter Linux / UNIX stellt die Kommandozeile nach wie vor ein sehr wichtiges Arbeitsmittel dar. Sämtliche Funktionen können hieraus gesteuert werden, und man kann von der Shell aus direkt auf das System zugreifen. Die Kommandozeile ist um ein vieles mächtiger als unter Windows, da sie Funktionen besitzt, die sie zu einer wahren Kontrollzentrale machen. Zu dem ist die Shell kein vorgeschriebenes Programm, mit dem man arbeiten muss. Man kann aus einer Vielzahl von Kommandozeilen-Interpretern auswählen. Diese bieten aber auch sehr unterschiedliche Funktionen.
Selbst wenn man unter der grafischen Benutzeroberfläche arbeiten, kann man sehr oft nicht auf die Konsole verzichten. Es werden z.B. die meisten Serverdienste über die Kommandozeile ausgeführt und auch gesteuert, da sie ja keine direkte Benutzeroberfläche besitzen oder gar benötigen. Programme, die für die grafische Benutzeroberfläche konzipiert wurden, werden oft auch über die Shell gestartet.
Es gibt unter den Window-Managern auch die Möglichkeit, ein so genanntes X-Term zu starten. Es sieht wie die MS-DOS Eingabeaufforderung aus, aber in Wirklichkeit steckt der volle Umfang der Kommandozeile dahinter. Es wird lediglich in einem Fenster ausgeführt.
Programme - Server und Client
Windows 95/98/ME sind Einzel-Benutzer-Systeme. Dies wirkt sich auch auf die Programme aus. Fast alle Anwendungen, die man benutzt sind auch auf dem lokalen PC selbst installiert und für den lokalen Betrieb ausgelegt. Sie sind mit allen notwendigen Komponenten ausgestattet.
Auf einem Linux-Server ist das allerdings nicht immer so einfach. Es gibt Anwendungen, die nach dem Windows-Prinzip funktionieren und ganz für sich alleine stehen. In diesem Punkt unterscheiden sich die Linux- und Windows-Programme nur minimal oder meist überhaupt nicht.
Sehr viele Programme sind allerdings als Netzwerkdienste geschaffen worden, und funktionieren auf eine ganz andere Weise. Sie werden als Server installiert. Wie der Name bereits verrät, bedient der Server die Anfragen von anderen Arbeitsplätzen und Benutzern. Um dies ermöglichen zu können, laufen auf dem Server so genannte Dienste. Diese Programme stellen Daten und Funktionen bereit, und stellen selbst keine Anwendersoftware dar, mit dem ein Benutzer direkt arbeiten könnte. Um diese Dienste nutzen zu können, benötigen man eine so genannte Clientsoftware. Diese verbindet sich beim Start mit dem Server und holt sich von ihm die notwendigen Daten und Funktionen. Der Server stellt den Dienst zu Verfügung, und der Client ruft ihn ab.
Dieses Prinzip bietet sehr viele Vorteile. So muss z.B. die Server-Software nur ein mal auf dem Server installiert werden und nicht auf jedem einzelnen Arbeitsplatz. Auf diesen wird lediglich ein viel weniger komplizierte Anwendersoftware installiert. Es haben also viele Benutzer die Möglichkeit auf eine einzige Anwendung zuzugreifen. In der Praxis kommt dies z.B. bei zentralen Datenbanken vor. Ein weiterer Vorteil liegt darin, dass es eine größere örtliche Freiheit gibt. Sie müssen nicht am Server sitzen um auf die Daten zuzugreifen. Ein gutes Beispiel wäre ein EMail-Server. Die Serversoftware bietet die Möglichkeit, mit einer Clientsoftware wie Outlook oder Netscape von überall auf ein Postfach zu zu greifen.
Der Desktop
Bei den heutigen modernen Betriebssystemen fällt es meist schwer, zwischen System und grafischer Benutzeroberfläche zu unterscheiden. In den damaligen Zeiten vom MS-DOS war das ganze noch sehr einfach. Hier bildete MS-DOS das eigentliche Betriebssystem und Windows wurde aus dem Prompt heraus als eine grafische Benutzeroberfläche nachgeladen. Seit Windows 95 sind die beiden Komponenten zu einer Einheit verschmolzen. Die grafische Oberfläche war und ist ab diesem Zeitpunkt fester Bestandteil des Systems, und lässt sich weder abschalten noch umgehen.
In der Linux-Welt wird hier nach wie vor sehr stark unterschieden und auch sehr großen Wert darauf gelegt.
Das Betriebssystem ist vollkommen Textorientiert, MS-DOS erinnert sehr stark daran. Diese Umgebung nennt man die Textkonsole oder auch die Shell. Sämtliche Programme und Funktionen lassen sich problemlos in dieser Umgebung ausführen, so dass das System in keiner Weise auf den Desktop angewiesen ist. Da die grafische Oberfläche viele Vorteile hat, ist diese auch unter UNIX verfügbar. Der wesentliche Unterschied liegt daran, dass dieses X-Window-System kein fester Bestandteil des Betriebssystems ist, sondern wie jedes andere Programm gestartet werden muss. Unter UNIX gibt es nicht wie unter Windows nur ein Window-System, sondern Sie können eine Vielzahl von verschiedenen X-Window-Systemen installieren und benutzen. Der Standard unter Linux ist die kostenlose Variante XFree.
Unter Linux kann man sich aussuchen, welchen Window-Manager man benutzen möchte. Die Bekanntesten sind fvwm, CDE, Afterdark, KDE und Gnome. Sie alle bieten verschiedene Funktionen und meist ein anderes Aussehen. Besonders beliebt ist der Window-Manager KDE, da er sich sehr stark an Microsoft Windows orientiert und so den meisten Benutzern ein intuitives Arbeiten ermöglicht. KDE wird heute mit fast jeder Distribution ausgeliefert.
Zugriffsrechte
Unter dem Dateisystem von Windows 95 bis ME besteht das Problem, dass jeder alle Daten sehen, öffnen, ausführen, verändern und sogar löschen kann. Egal, ob es nun System Dateien oder Private Dateien sind. Davor schützen auch Anmeldeprofile nicht. Sie laden lediglich persönliche Einstellungen, man kann jedoch auf alle Daten der Mitbenutzer zugreifen.
Unter UNIX muss man sich immer mit einer Benutzerkennung anmelden. Das System weiß also immer wer gerade am Bildschirm sitzt. Jeder einzelne Benutzer bekommt vom Administrator bestimme Rechte, die regeln auf welche Dateien man welche Zugriffsrechte hat.. Systemdateien sind standardmäßig für normale Benutzer unsichtbar, dadurch kann kein Benutzer, ob absichtlich oder unabsichtlich, etwas an dem System verändern. Selbst auf Lokale Dateien anderer Benutzer ist kein Zugriff für Unbefugte möglich.
Unter Linux gibt es außerdem die Möglichkeit verschiedene Benutzer in Gruppen einzuteilen. So kann man allgemein gültige Regeln komfortabel direkt einer ganzen Gruppe zuweisen, anstatt die Rechte jedes einzelnen Benutzers neu einzustellen. Dies ist bei großen Netzen eine erhebliche Erleichterung.
Seit der Windows NT Reihe stellt auch Microsoft ein Produkt zur Verfügung, das ähnliche Möglichkeiten hat. Da jedoch noch sehr viele Desktop Systeme mit Betriebssystemen der DOS-Linie arbeiten ist der Flächendeckende Einsatz dieses Benutzersystems oftmals nicht sinnvoll möglich.
Homedirectory
Ein Heimatverzeichnis gibt es in dem Sinne unter Windows 95 bis ME nicht. Wenn der Computer gestartet ist, hat man Zugriff auf alle Dateien. Systemeinstellungen werden für das komplette Betriebssystem übernommen.
Unter UNIX/Linux existiert für jeden Benutzer ein so genanntes Heimat- bzw. Homeverzeichnis. Wenn man sich einloggt, landet man automatisch im persönlichen Verzeichnis. Hier kann man seine Daten speichern und kleinere Programme installieren. Die individuellen Einstellungen für den Desktop und für viele andere Programme werden hier ebenso gespeichert. Ändert man Einstellungen am Desktop oder in Programmen, betreffen diese Änderungen keinen anderen Benutzer. Auch das Betriebssystem an sich wird dadurch nicht verändert. Wenn man sein Heimatverzeichnis löscht, hat das keine Auswirkungen auf andere Benutzer.
In größeren Netzwerken oder Firmen wird das Heimatverzeichnis in der Regel für private Dateien und Einstellungen verwendet, und die relevanten Firmendaten liegen gesammelt an einer anderen Stelle. Das soll gewährleisten, dass die privaten und die geschäftliche Dateien getrennt gehalten werden.
Das Dateisystem
Bei Windows und UNIX findet man verschiedene Dateisystemtypen bei der Formatierung von Disketten und Festplatten. Microsoft Windows 95 bis ME arbeiten ausschließlich mit den Dateisystemen FAT16 und FAT32. Windows NT / 2000 / XP arbeiten auch mit NTFS-System. Unter Linux ist das Dateisystem EXT2 am weitesten verbreitet, wobei ReiserFS auch immer häufiger eingesetzt wird. Allerdings gibt es unter UNIX viel mehr UNIX-Dateisysteme wie z.B. FFS (Fast File System) unter BSD. Durch das Dateisystem wird bestimmt, wie groß eine Festplatte oder Partition sein darf. Bei den aktuelleren Windows-Versionen liegt die Grenze bei einigen hundert Gigabyte, darüber ist das System nicht mehr in der Lage die Daten zu verwalten. Anders sieht es bei Linux/UNIX aus. Diese Systeme sind auf sehr viel größere Datenmengen konzipiert. So sind Festplatten mit einigen TeraByte überhaupt kein Problem.
Linux ist aufgrund des Dateisystems schon sehr viel länger in der Lage, lange Dateinamen zu verarbeiten. Bei den Vorgängern von Windows 95 war es nicht möglich, Dateien mit einem Namen der länger als acht Zeichen ist zu erstellen. Die Endung hinter dem Punkt durfte nur 3 Zeichen lang sein. Windows identifiziert den Typ einer Datei durch seine Endung. Ändert man die Dateiendung weiß das Betriebssystem nicht mehr womit die Datei geöffnet werden soll.
Unter UNIX kann man Dateien benennen wie man möchte, vorausgesetzt man benutzt keine verbotenen Zeichen. Der Punkt spielt dabei keine besondere Rolle. UNIX identifiziert den Dateityp durch dateiinterne Kennzeichnungen. Man muss jedoch auf Klein- und Großschreibung achten.
Einzel- und Mehrbenutzersysteme
UNIX ist von Anfang an als ein Mehrbenutzersystem konzipiert. Daher braucht man, bevor man mit dem System arbeiten kann, ein Benutzerkonto, einen Benutzernamen und ein dazugehöriges Passwort. Anders als bei Windows kann man sich selbst kein Konto eröffnen. Dieses Aktion ist unter Unix normalerweise nur dem Administrator erlaubt. Erst wenn man einen Account besitzt kann man sich auf dem Computer anmelden und damit arbeiten. Genauso ist es möglich, dass mehrere Benutzer gleichzeitig auf ein und demselben Rechner arbeiten. Man hat bei Linux die Wahl, per Netzwerk auf einem Server und dessen Festplatten zuzugreifen, oder auf dem lokalen Computer zu arbeiten. Linux verwaltet die vorhandenen Ressourcen so, dass alle angemeldeten Benutzer angenehm nebeneinander arbeiten können.
Windows ist dagegen ursprünglich ein Einzelplatzsystem. Die ersten Windows Versionen erfordern keinen Login. Es gibt jedoch inzwischen ebenfalls Funktionen wie das Netzwerk- oder Family-Logon, jedoch dienen diese Dienste nur dazu, dass der Desktop und andere persönliche Dinge individuell gespeichert werden. Windows 95 bis ME besitzt zwar eine gewisse Netzwerkfunktion, das hat jedoch mit einem Mehrbenutzersystem nur wenig zu tun. Es ist nicht in der Lage, mit mehreren Benutzern gleichzeitig umzugehen. Diesen Nachteil versucht Microsoft seit einigen Jahren mit seiner NT-Serie auszugleichen.
Aufgabe
Ein Parkhaus hat zwei Ausfahrten mit Schranken. Die Schranken werden von Motoren angetrieben, die schwach dimensioniert sind und deshalb im Dauerbetrieb den Geist aufgeben, was teure Reparaturen nach sich zieht. Sie als findiger Programmierer kommen auf die Idee, eine Wartezeit vor dem Öffnen und eine weitere Wartezeit vor dem Schließen einzubauen, damit die Motoren nicht zu heiß werden können.
Da das Parkhaus ständig in Betrieb ist und die Autos es viel schneller verlassen wollen als die Schranken arbeiten können, werden die Schranken zum Flaschenhals des Systems. Sie können also davon ausgehen, dass ständig ein Auto vor jeder Schranke wartet und dass es nach dem Öffnen sofort wegfährt.
Das Öffnen dauert bei jeder Schranke 4 Sekunden, das Schließen 3 Sekunden. Die Schranke A öffnet nach 21 Sekunden und schließt nach 13 Sekunden. Die Schranke B öffnet nach 23 Sekunden und schließt nach 15 Sekunden.
Schreiben Sie ein Java-Programm mit 2 parallelen Threads, von denen jeder eine Ausgabe nach folgendem Muster in Echtzeit erzeugt:
Schranke A: Start Öffnen
Schranke A: Ende Öffnen
Schranke A: Start Schließen
Schranke A: Ende Schließen
...
Das Programm soll enden, wenn jede Schranke 10 Autos durchgelassen hat (ansonsten müssten Sie es abbrechen).
Hinweis: gute Programmierer schreiben das Programm vom inneren Aufbau her so, dass es für beliebig viele Schranken mit beliebigen Schranken-Namen und beliebigen Wartezeiten funktioniert.
Das Genom von Escherichia coli (der beliebteste Einzeller für jede Art von Untersuchung) ist komplett sequenziert und im Internet frei verfügbar.
Schreibt man ein Perl Programm, dass es ermöglicht, Sequenzen in dem Genom zu suchen, kann man damit ziemlich viele nutzlose Sachen machen. Zum Beispiel nach der Sequenz "gataca" suchen um herauszufinden wie oft sie im Genom vorkommt.

Und das Ergebnis ist: 632 mal. Hier geht es zum kompletten Genom von E. coli: E. coli Genom (Vorsicht groß)
Wer kennt das nicht? Man hat mal wieder eine von diesen viel zu großen funktional von einander abhängen Wertemengen vorliegen und soll ein buntes Bild daraus machen, interaktiv natürlich, und mit allen Schikanen. Außerdem darf es selbstverständlich nicht an Performanz mangeln. Mit anderen Worten eine Interpolation muss her. Anstatt sich jetzt ein Computer Algebra System zu installieren bietet folgendes Applet Abhilfe:

Wer sich schon immer gefragt hat, was der Mathe Prof eigentlich genau meint, wenn er von Interpolation redet, dem hilft folgendes Applet bestimmt. Man kann per Mausklick Punkte zur Interpolation hinzufügen.
Im Nachfolgenden gibt es die Übungblätter aus zwei Semestern Physik an der FH-Bingen bei Prof. Dr. Zimmerschied. Unten gibt es noch die Lösungen bzw. Lösungsansätze zu fast allen Aufgaben. Viel Spaß beim lernen.
Übungsblatt 01 (100, 102, 106, 108)
Übungsblatt 02 (111, 112, 116, 117)
Übungsblatt 03 (122, 123, 124, 126)
Übungsblatt 04 (128, 130, 132, 133)
Übungsblatt 05 (134, 135, 140, 143)
Übungsblatt 06 (147, 150, 154, 155)
Übungsblatt 07 (156, 157, 160, 163)
Übungsblatt 08 (203, 208, 209, 214)
Übungsblatt 09 (215, 216, 218, 219)
Übungsblatt 10 (221, 222, 223, 224)
Übungsblatt 11 (243, 244, 246, 248)

Die Microarray Gene Expression Data Society, kurz MGED Society, beschäftigt sich mit der Spezifikation für die Speicherung von Experimentdaten die bei dem Einsatz von Mikroarrays anfallen. Die MGED Society hat einen Minimum Standard für die Speicherung entwickelt. In dem Standard wird festgehalten welche Daten mindestens in einem Format enthalten seinen müssen, um Mikroarray Daten sinnvoll zu speichern. Dazu gehören bestimmte Aspekte des Experiment Designs, der benutzen Proben sowie die Beschriftung und Aufbereitung, Hybridisierungs Prozeduren und Parameter, Messdaten und Spezifikationen und das Array Design. Auf der Website der MGED Society erhält man eine Checkliste mit der genauen Minimalanforderung für die Speicherung von Mikroarray Daten. [1]
Neben dem Minimalstandard hat die MGED auch noch eine Markup Language sowie ein Objektmodell für den Datenaustausch entwickelt. Die Markup Language (MGED-ML) basiert auf XML und das Objektmodell (MGED-OM) auf der Unified Modelling Language (UML). [2]
Realisiert wurde die MGED Spezifikationen in ArrayExpress, einem Projekt des European Bioinformatics Institute. ArrayExpress ist eine öffentliche Datenbank dessen Ziel es ist, wohl dokumentierte Experiment Daten zu speichern und zur Verfügung zu stellen. [3]
Quellen:
1. Website, MGED Society, http://www.mged.org
2. Website, Object Management Group, http://www.omg.org
3. Website, European Bioinformatics Institute, http://www.ebi.ac.uk
Gesellschaften, Institute, usw.:
(Bonn)
Deutsche Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie e.V. (GMDS) (Finden)
(Sonstige)
Bioinformatik Verbund, Franken (Finden)
Hochschulen:
(Berlin)
Technische Fachhochschule Berlin (Finden)
FU-Berlin (Finden)
(Bielefeld)
Universitaet Bielefeld (Finden)
International NRW Graduate School in Bioinformatics and Genome Research (Finden)
(Bonn)
Bonn-Aachen International Center for Information Technology (BIT) (Finden)
(Dresden)
Berufakademie Dresden (Finden)
(Düsseldorf)
Heinrich-Heine-Universität Düsseldorf (Finden)
(Frankfurt)
Uni Frankfut (Finden)
(Freiburg)
Albert-Ludwigs-Universität Freiburg (Finden)
(Freising)
Fachhochschule Weihenstephan (Finden)
(Giessen)
Fachhochschule Giessen (Finden)
(Halle)
Martin-Luther-Universität (Finden)
(Hamburg)
Zentrum für Bioinformatik Hamburg (Finden)
(Hannover)
Naturwissenschaftliche Fakultät, Institut für Bioinformatik, Uni Hannover (Finden)
(Jena)
Lehrstuhl für Bioinformatik, Biologisch-Pharmazeutische Fakultät, Friedrich-Schiller-Universität Jena (Finden)
Fachschaft Bioinformatik Jena (Finden)
(Konstanz)
Bioinformatics and Drug Research, Uni Konstanz (Finden)
(Köln)
Cologne University Bioinformatics Center (Finden)
(Leipzig)
Lehrstuhl für Bioinformatik, Universität Leipzig (Finden)
(Lübeck)
Institut für Neuro- und Bioinformatik, Universität Lübeck (Finden)
(München)
Technische Universität München (Finden)
(Oldenburg)
FH Oldenburg/Ostfriesland/Wilhelmshaven (Finden)
(Saarbrücken)
Universität des Saarlandes (Finden)
(Tübingen)
Fachschaft Informatik / Bioinformatik, Wilhelm-Schickard-Institut für Informatik Universität Tübingen (Finden)
(Ulm)
Forschungsschwerpunkt Bioinformatik (Finden)
(Wildau)
Technische Fachhochschule Wildau (Finden)
(Würzburg)
Department of Bioinformatics at the University of Würzburg (Finden)
Der Wnt Signalweg (engl. Wnt signaling pathway) ermöglicht interzelluläre Kommunikation in Vielzellern. Er ist hoch konserviert, das heißt man findet ihn in allen Organismen des Tierreiches, von Schwämmen bis zum Menschen. Ausgelöst wird er an der Zellaußenwand durch Wnt Moleküle. Konkret geht Wnt mit zwei Membranproteinen einen Komplex ein und überträgt so das Signal in das Cytoplasma. Der Komplex besteht aus Wnt, einem Protein der Frizzled-Familie, und einem Rezeptorprotein aus der LDL Familie, Lrp5/6.
Ist dieser Komplex nicht gebildet, wird das Schlüsselprotein für die Signalübertragung, β-catenin (Beta-catenin), durch einen Enzymkomplex (Dsh, Axin, APC und GSK3-β) abgebaut. Bindet Wnt an seine Rezeptorproteine in der Zellwand wird dieser Vorgang unterbunden (wie genau dies geschieht ist noch nicht bekannt). β-catenin kann sich dadurch im Cytoplasma der Zelle anreichern und dringt letztendlich auch in den Zellkern ein. Dort schaltet es eine Reihe von "Wnt targeted genes" ein und sorgt so für die Anpassung der Genexpression an die äußeren Verhältnisse. Der Wnt Signalweg scheint besonders bei der Differenzierung von Stammzellen eine Rolle zu spielen.
Quellen:
1. Tannishtha Reya, and Hans Clevers "Wnt signalling in stem cells and cancer" in Nature 434, 843-850 (14 April 2005)
2. Roel Nusse (2005) "Cell biology: relays at the membrane" in Nature Volume 438, pages 747-749.
Seit etwa einem halben Jahr gibt es ein Projekt, das versucht, eines der größten Geheimnisse der Naturwissenschaft mit Computerunterstützung zu lösen. Es geht um die Vorhersage der Dreidimensionalen Struktur von Proteinen anhand ihrer Aminosäuresequenz. Das Projekt mit dem Namen Rosetta@Home wird von Dr. David Baker, Professor für Biochemie an der Universität in Washington geleitet. Er bezeichnet es auch als "die Suche nach dem Heiligen Gral der Biologie".
Proteine sind die miniatur Maschinen die fast alle wichtigen Funktionen in Lebewesen ausführen. Sie bestehen aus einer unverzweigten Aminosäuresequenz die sich fast wie von selbst zu einer ganz bestimmten dreidimensionalen Struktur zusammenknäult. In der Sequenz steckt die Information, wie sie sich zusammenfaltet.

Das eigentliche Problem ist nun, dass die Berechnung der 3D-Konformation bisher viel zu aufwendig war. Und eigentlich noch ist. Das Projekt Rosetta@Home basiert jedoch auf einem neuen Ansatz, der die Berechnung des Problems über das Internet dezentralisiert. Dank einer frei verfügbaren Software können CPU Ressourcen auf Heim PCs zur Berechnung eines Teils des 3D-Konformations-Problemes benutzt werden. Ungenutzte CPU Zeit kann jeder zur Verfügung stellen, denn Rosetta@Home ersetzt einfach den Bildschirmschoner durch die Berechnung von Proteinstrukturen.
Desto mehr Strukturen man berechnet, desto mehr Credit Points bekommt man. Mehrere User können sich zu Teams zusammenschließen um möglichst viele Credit Points zu verdienen. Zur Belohnung kommt man, mit entsprechend vielen Credit Points, in eine Highscore die auf Internet Seite des Projektes veröffentlicht wird. Findet ein Computer zufällig, Baker vergleicht es mit Lotto spielen, eine bessere 3D-Struktur als alle vorangegangenen gibt es Bonuspunkte.
Hat ein Computer eine Teillösung gefunden, wird sie automatisch hochgeladen und ein neues Teilproblem heruntergeladen. So wird mit Hilfe des Internets, eine Rechenkapazität erreicht, die sonst nicht möglich wäre.
Baker verspricht sich von dem Projekt ein genaueres Verständnis über Proteinstrukturen und ihre Funktionalität. Dies könnte von enormerm Wert für die Entwicklung neuer Medikamente sein.
Google bietet seit einiger Zeit die Möglichkeit, Statistiken zu erstellen, die für beliebige Keywords zurückgibt, wie sich das Suchvolumen in der letzten Zeit verhalten hat. Erstellt man eine Statistik für den Suchbegriff "flagge" (sieh hier) kann man zur Fußball Weltmeisterschaft einen klaren Peak erkennen. Füttert man Google Trends mit dem Suchbegriff "bioinformatics" ergibt sich unten stehende Grafik. Kann man darauch nun schließen, dass es abwärtz mit der Bioinformatik geht?

Die weitaus meisten Suchanfragen kommen übrigens aus Indien. Ob also Google Trends wirklich Trends widerspiegelt bleibt fraglich. Man kann allerdings nicht von der Hand weisen, dass Google wohl genügend Daten zur Verfügung hat um repräsentative Statistiken zu erstellen. Für die detaillierte Auswertung siehe: Google Trends
Japanische Institute, die im Rahmen der Bioinformatik gegründet wurden.
Tokyo:
The Japanese Society for Bioinformatics (JSBi)
Japan Science and Technology Agency (JST)
Osaka:
Protein Research Foundation (PRF)
Sonstige:
Institute for Advanced Biosciences
RIKEN Genome Sciences Center
Institute für Bioinformatics Research and Development (BIRD)
Australische und neuseeländische Institute, die im Rahmen der Bioinformatik gegründet wurden.
Perth, Western Australia:
Centre for Comparative Genomics (CCG)
Canberra, New South Wales:
Centre for Bioinformation Science (CBiS)
Brisbane, Queensland:
Australian Research Council Centre in Bioinformatics (ACB)
Advanced Computational Modelling Centre (ACMC)
The Institute for Molecular Bioscience (IMB)
Melbourne, Victoria:
The Walter and Eliza Hall Institute of Medical Research (WEHI)
Newcastle, New South Wales:
The Newcastle Bioinformatics Initiative (NBI)
Auckland, New Zeeland:
New Zealand's Bioinformatics Institute
Die Universität von Newcastle in NSW (New South Wales) Australia beschäftig sich seit 2003 mit Problemstellungen der Bioinformatik. Laut eigener Aussage kann das Institut signifikante Ergebnisse im Zusammenhang mit Krankheiten wie Alzheimer, Parkinson und Schizophrenie sowie einigen Krebsformen nachweisen. Der aktuelle Fokus liegt auf vier Kerngebieten:
- Identification of Novel Optimization Problems in Bioinformatics
- Distributed Computing for Bioinformatics
- Algorithmics for Single Nucleotide Polymorphism (SNP) Data Analysis
- Metaheuristics for Life Sciences Problems
Weitere Informationen gibt es auf der Internetseite der NBI

Eigenschaften: keine Ahnung. Aber falls es jemand weiß ...
Als Aromaten bezeichnet man eine Klasse von zyklischen Verbindungen in der organischen Chemie. Sie unterscheiden sich in ihren Eigenschaften stark von den restlichen organischen Verbindungen, den Aliphaten. Charakteristisch für Aromaten sind delokalisierte Doppelbindungen in einer zyklischen Kohlenwasserstoff Verbindung. Der bekannteste Aromat ist das Benzol (IUPAC: Benzen). Es besteht aus sechs Kohlenstoffatomen die in einem Kreis (zyklisch) miteinander verbunden sind. An jedes C-Atom ist jeweils ein Wasserstoffatom gebunden.
Aufgrund der Vierbindigkeit von Kohlenstoff kann diese Verbindung nur existieren, wenn zwischen den Kohlenstoffatomen alternierend Einfach- und Doppelbindungen vorkommen. Diese Vorhersage lässt zwei Zustände zu:


Abb. 1: Links: Benzolring; Rechts: Theoretisch mögliche Anordnung der Doppelbindungen in einem Benzol Molekül
Tatsächlich existiert Benzol weder in der einen noch in der anderen Konformation. Die Elektronen der Doppelbindung liegen in einer Elektronenwolke die keine eindeutige Bestimmung bezüglich der Lokalität der Doppelbindungen zulässt. Man sagt auch, die Doppelbindungen sind delokalisiert. Die mittlere Bindungslänge zwischen zwei Kohlenstoffatomen in einem Aromatenring beträgt 0,139 nm und liegt damit zwischen der Länge einer Einfach- und einer Doppelbindung beim Kohlenstoff. Die Anordnung von kovalent gebundenen Kohlenstoffatomen zu einem Aromatenring ergibt gewöhnlich ein sehr günstiges Energieniveau und gibt so den Aromaten reaktionsträge Eigenschaften.
Aromatische Kohlenwasserstoffe, oder auch Arene genannt, sind Aromaten die nur aus Kohlenstoff- und Wasserstoffatomen aufgebaut sind. Fügt man einen Methylrest an einen Benzolring ergibt sich Toloul (IUPAC: Methylbenzen).

Abb. 2: Chemische Struktur von Toluol
Fügt man zwei Methylreste an einen Benzolring, ergibt sich Xylol (IUPAC: Dimethylbenzen). Die Methylreste können in drei verschiedenen Konformationen an den Benzolring gebunden werden. Para-Xylol (die Methylgruppen stehen sich gegenüber), Meta-Xylol (zwischen den beiden C-Atomen, an die die Methylreste gebunden sind, liegt ein weiteres C-Atom) und Ortho-Xylol (die beiden Methylgruppen sind an direkt benachbarte Kohlenstoffatome gebunden). Benzol, Toloul und Xylol werde oft auch als BTX-Aromaten bezeichnet. Man fasst sie zusammen weil sie die technisch bedeutendsten Aromaten sind.
Substituiert man an einen Benzolring eine Carboxylgruppe ergibt sich Benzoesäure (IUPAC: Carboxybenzen). Benzoesäure ist nur ein Beispiel für viele Derivate des Benzols, die man durch Substitution erreichen kann. Aromaten neigen generell eher zu Substitutionsreaktionen als zu Additionsrektionen.


Abb. 3: Benzoesäure; Links: Strukturformel; Rechts: Raumfüllendes Kugelmodell
Benzol ist ein so genannter einkerniger Aromat. Besteht ein Aromat aus zwei oder mehr Ringen spricht man von mehrkernigen bzw. polyzyklischen Aromaten. Ein einfacher mehrkerniger Aromat ist das Naphthalin.

Abb. 4: Naphthalin
Im Gegensatz zu Benzol besitzt Naphthalin nicht drei, sonder fünf delokalisierte Doppelbindungen. Dabei ist zu beachten, dass sich die Delokalisierung über das ganze Molekül streckt. Anthracen ist ein Beispiel für einen dreikernigen Aromaten, der gegenüber dem Naphthalin noch einen weiteren fünfer Ring besitzt. In dem dreikernigen System befinden sich sieben delokalisierte Doppelbindungen.
Naphthalin und Anthracen sind Mehrkernige Aromaten, in denen sich zwei Ringe jeweils eine Kohlenstoff-Kohlenstoff Bindung teilen. Man sagt die Ringe sind kondensiert oder anneliert. Es gibt jedoch auch die Möglichkeit, dass die Ringe getrennt voneinander liegen (isoliert). Das Diphenyl (auch Biphenyl) trennt seine Ringe durch eine Kohlenstoff-Kohlenstoff Bindung (Ring-Ring System).


Abb. 5: Diphenyl; Links: 3D Ansicht in der die Elektronenwolken gut zu erkennen sind; Rechts: Strukturformel von Diphenyl
Fügt man einen weiteren Penylrest an das Diphenyl erhält man eine dreikernige aromatische Verbindung mit dem Name 1,3-Triphenyl. Das Präfix 1,3 steht dabei für die Nummern der beiden C-Atome, an denen die Phenylreste gebunden sind.
Sind die Ringe über Ketten von einem oder mehreren Atomen verbunden spricht man von einem Ring-Kette-Ring System. Sind zum Beispiel zwei der vier Wasserstoffatome des Methans durch Penylreste substituiert (ersetzt) ergeben sich zwei Benzolringe die über ein Kohlenstoff Atom verbunden sind. Die Namensgebung erfolg jedoch nach der Ansticht, dass es sich um ein Methanmolekül mit zwei Penylresten als Substituenten handelt. Dies führt zu der Bezeichnung Diphenylmethan.
Bei den bis jetzt betrachteten Ringsystemen handelte es sich ausschließlich um identische Ringsysteme. Das heißt, dass alle Ringe aus der gleichen Anzahl von Kohlenstoffatomen bestehen. Ist dies nicht der Fall, spricht man von nichtidentischen Ringsystemen. Ein einfaches Beispiel für eine nichtidentisches Ringsystem ist das Inden. Es besteht aus einem sechser und einem fünfer Ring und besitzt somit vier delokalisierte Doppelbindungen. Ein weiteres zweikerniges nichtidentisches Ringsystem stellt das Azulen dar. Es besteht aus einem siebener und einem fünfer Ring mit fünf delokalisierten Doppelbindungen.

Abb. 6: Beispiel für ein zweikerniges, nichtidentisches, aromatisches Ringsystem: Azulen
Schließlich ist Fluoren noch als Beispiel für ein dreikerniges nichtidentisches Ringsystem zu nennen. Es besteht aus zwei sechser Ringen und einem fünfer Ring (der sich zwischen den beiden sechser Ringen befindet). Dies führt zu sechs delokalisierten Doppelbindungen.

Abb. 7: Strukturmodell von Fluoren
Die oben genannten Kategorien für aromatische Verbindungen lassen bereits eine große Vielfalt an verschieden Verbindungen zu. Dies ist jedoch noch nicht alles. Bis jetzt haben wir nur aromatische Verbindungen aus Kohlenstoff und Wasserstoff betrachtet, die so genannten carbozyklischen Aromaten. Berücksichtigt man, dass eine oder mehrere Ring-Kohlenstoffatome durch Fremdatome (Heteroatome) ersetzt sein können, ergibt sich eine sehr große Zahl an verschiedenen Aromatenverbindungen. Befindet sich in einem Aromaten ein Ring mit einem Fremdatom, wird er als heterozyklisch bezeichnet. Die wichtigsten Heteroatome sind Stickstoff (N), Sauerstoff (O), Schwefel (S) und Phosphor (P).
Ersetzt man eines der Kohlenstoffatome von Benzol durch Stickstoff ergibt sich eine heterozyklische Verbindung mit der Bezeichnung Pyridin.

Abb. 8: Verschiedene Darstellungen des Pyridinrings
Pyridin hat drei delokalisierte Doppelbindungen. Bindet an den Stickstoff ein Wasserstoffatom ergibt dies Pyrrol mit nur zwei Doppelbindungen.

Abb. 9: Verschiedene Darstellungen des Pyrrolrings
Furan und Thiophen sind jeweils Beispiele für fünfer Heterozyklen mit einem Fremdatom. Bei Furan ist es Sauerstoff bei Thiophen Schwefel. Kommen zwei oder mehr Heteroatome in einem Aromaten vor, kann die Bezeichnung des Stoffes von der Positionierung im Ring abhängen. Für das Ersetzen von zwei Kohlenstoffatomen durch zwei Stickstoffatome in einem Benzolring ergeben sich drei verschiedene heterozyklische Aromaten: Pyrazin (Stickstoffatome stehen sich gegenüber), Pyrimidin (zwischen den beiden Stickstoffatomen liegt ein Kohlenstoffatom) und Pyridazin (die beiden Stickstoffatome liegen nebeneinander).



Abb. 10: Von links nach rechts: Pyrazin, Pyrimidin und Pyridazin
Eine Liste der Codes bzw. Abkürzungen für Aminosäuren. Es gibt einmal Abkürzungen mit drei Buchstaben und einmal einen Ein-Buchstaben-Code. der Drei-Buchstaben-Code wird meist in der Literatur verwendet, der Ein-Buchstaben-Code um Sequenzen von Aminosäuren darzustellen.
| Ein Buchstabe | Drei Buchstaben | Aminosäure |
| A | Ala | Alanin |
| C | Cys | Cystein |
| D | Asp | Aspartat |
| E | Glu | Glutamat |
| F | Phe | Phenylalanin |
| G | Gly | Glycin |
| H | His | Histidin |
| I | Ile | Isoleucin |
| K | Lys | Lysin |
| L | Leu | Leucin |
| M | Met | Metionin |
| N | Asn | Asparagin |
| P | Pro | Prolin |
| Q | Gln | Glutamin |
| R | Arg | Arginin |
| S | Ser | Serin |
| T | Thr | Threonin |
| V | Val | Valin |
| W | Trp | Tryptophan |
| Y | Tyr | Tyrosin |
| X | --- | Unbekannt oder nicht Standardaminosäure |
Peptide bzw. Polypeptide entstehen wenn Aminosäuren Bindungen untereinander eingehen. Ein Dipeptid sind also zwei über eine Peptidbindung verbundene Aminosäuren. Verbinden sich mehrere Aminosäuren über Peptidbindungen zu einer Kette von Aminosäuren spricht man von einem Polypeptid oder auch nur Peptid.
Der Kern einer jeden Aminosäure ist das Alpha Kohlenstoffatom (C[Alpha]). Bei allen 20 biologisch relevanten Aminosäuren ist an das Alpha Kohlenstoffatom eine Carboxylgruppe (Alpha-Carboxylgruppe: -COOH), eine Aminogruppe (Alpha-Aminogrupp: -NH2), ein Wasserstoff (H) und ein von Aminosäure zu Aminosäure unterschiedlicher Rest (R) gebunden.
Polymerisieren zwei Aminosäuren, kommt es zu einer kovalenten Bindung zwischen der Alpha-Carboxylgruppe der einen Aminosäure und der Alpha-Aminogruppe der anderen Aminosäure unter Abspaltung von einem Wassermolekül.
Ist die kovalente Bindung eingegangen sind die beiden Alpha-Kohlenstoffatome der Aminosäuren über eine Kohlenstoff-Stickstoff Brücke miteinander verbunden (C[Alpha]-C-N-C[Alpha]). An dem mittleren "Brücken-Kohlenstoffatom" ist ein Sauerstoffatom (O) gebunden. Die C-N Bindung in
einem Dipeptid ist etwas kürzer als die in einer freien Aminosäure. Dies deutet darauf hin, dass sich ein schwacher Dipol bildet, bei dem das Sauerstoffatom negativ und das Stickstoffatom positiv geladen ist.
Die sechs Atome einer Peptidbindung (2 x C[Alpha], C, N, H, O) liegen in einer Ebene innerhalb der keine Drehungen möglich sind. Der Wassertoff (H) der an das Stickstoffatom (N) gebunden ist liegt in einer trans-Stellung zum Sauerstoffatom. Eine Möglichkeit zur Rotation ergibt sich an dem Alpha-Kohlenstoffatom, dass sich in beiden Ebenen der vor und nach ihm liegenden Peptidbindungen befindet. Die N-C[Alpha] und C[Alpha]-C Bindungen erlauben also Drehwinkel, wodurch ein Polypeptid verschiedene Konformationen annehmen kann. Durch sterische Beeinflussung der Reste (R) der Aminosäuren untereinander sind zwei Aminosäuren jedoch nicht frei zueinander drehbar.
Aufgabe: Gegeben seien die folgenden vier Tabellen einer relationalen Datenbank, die zum Ausleihsystem einer Bibliothek gehört. Die Attribute, die zum Primärschlüssel gehören, sind jeweils unterstrichen. Geben Sie für die folgenden Anfragen entsprechende SQL-Terme an.


a) Namen und Benutzernummern aller Benutzer mit Wohnort Bern.
SELECT Name, Bnr
FROM Benutzer
WHERE Wohnort = 'Bern'
b) Titel aller Bücher sowie den Namen des jeweiligen Verlags.
SELECT Buch.Titel, Verlag.Name
FROM Buch, Verlag
WHERE Verlag.Vnr = Buch.Verlagsnr
c) ISBN und Leihfrist aller Bücher, die der Benutzer Meier ausgeliehen hat.
SELECT Ausleihe.ISBN, Ausleihe.Leihfrist, Benutzer.Name
FROM Ausleihe, Benutzer
WHERE Benutzer.Name = 'Meier'
Aufgabe: Stellen Sie bitte den folgenden Sachverhalt in einem einfachen konzeptionellen Datenschema nach dem Entity-Relationship-Modell dar, wobei keine Attribute angegeben werden sollen:
Lösung:
Hier gibt es das Skript zur Mikrobiologie (Mibi) Vorlesung von Prof. Dr. Steinmüller an der FH-Bingen.
Kurze Übersicht über den Inhalt
Das folgende Beispiel malt auf die Zeichenfläche eines Applets ein paar geometrische Figuren. Darauf zu achten ist, dass bei einem Kreis bzw. Viereck die letzten beiden Parameter nicht die untere rechte Ecke der Figur angeben, sondern die Größe. Die Angaben sind also relativ zu der Position der Figuren (die ersten beiden Parameter). Das Ergebnis sieht aus wie unten stehend.

import java.applet.*;
import java.awt.*;
public class firstapplet extends Applet {
public void paint (Graphics g){
g.drawRect( 10, 10, 40, 40 ); //Viereck
g.drawOval( 10, 10, 40, 40 ); //Kreis
g.drawLine( 10, 10, 50, 50 ); //Linie
}}
Dies ist ein Beispiel für einen PHP Code, der die Tatsache umsetzt, dass Organismen zwei verschiedene Alphabete benutzen um genetische Information zu speichern: DNA und RNA. Die Information ist die gleiche, es gibt nur einfach ein Alphabet für den Zellkern (DNA) und eins für das Zytoplasma (RNA):
PHP Code:
<font face="Courier New">
<?php
$length = 100;
$DNAAlphabet = array( 1 => 'A', 2 => 'T', 3 => 'G', 4 => 'C' );
$RNAAlphabet = array( 1 => 'A', 2 => 'U', 3 => 'G', 4 => 'C' );
for ( $i = 0; $i < $length; $i++ ) $Sequence[ $i ] = rand( 1, 4 );
echo( 'Need a random piece DNA?<br>DNA: ' );
for ( $i = 0; $i <= count( $Sequence ); $i++ )
echo($DNAAlphabet[ $Sequence[ $i ] ] );
echo( '<br>RNA: ' );
for ( $i = 0; $i <= count( $Sequence ); $i++ )
echo( $RNAAlphabet[ $Sequence[ $i ] ] );
?>
</font>
Die Ausgabe sieht dann zum Beispeil so aus:

Alternativer Java Code:
import java.util.*;
public class BioAlphabet {
public static void main(String[] args) {
char[] DNAAlphabet = { 'A', 'T', 'G', 'C' };
char[] RNAAlphabet = { 'A', 'U', 'G', 'C' };
int[] Sequence = new int[ 100 ];
Random rand = new Random();
for ( int i = 0; i < Sequence.length; i++ )
Sequence[ i ] = rand.nextInt( 4 );
System.out.print( "DNA: " );
for ( int i = 0; i < Sequence.length; i++ )
System.out.print( DNAAlphabet[ Sequence[ i ] ] );
System.out.print( "\nRNA: " );
for ( int i = 0; i < Sequence.length; i++ )
System.out.print( RNAAlphabet[ Sequence[ i ] ]);
}}
Berufsgenossenschaften sollen "mit allen geeigneten Mitteln"
Definition: Statistische Wahrscheinlichkeit des Eintretens eines Störfalles mit Sach- bzw. Personenschaden.
Einteilung in:
Technischer Bereich:
Aufgabe: Den Unternehmer vor Ort in Fragesellungen des Arbeitsschutzes zu unterstützen.
Beispielaufgaben
Auftrag: Überwachung des gesamten Arbeitsschutzes und Nachbarschutzes in der Bundesrepublik.
Die Grundlage für Stoffwechsel ist das Eingehen und Lösen von Bindungen zwischen Molekülen. Durch den geregelten Ablauf dieser Prozesse schafft es eine Zelle die Ordnung gegenüber der Außenwelt zu erhalten, neue Moleküle zu synthetisieren und sich zu vermehren.
Trotz der offensichtlichen Vielfalt von Organismen beruhen die biochemischen Prozesse auf einer sehr überschaubaren Anzahl von Bindungstypen. Man kann die Bindungen bzw. Wechselwirkungen generell in zwei verschiedene Gruppen einteilen: schwache und starke Wechselwirkungen.
Starke Wechselwirkungen sind dabei die kovalenten- bzw. Atombindungen. Wenn zwei Atome kovalent gebunden werden bilden sie somit ein Molekül. Im Wasser zum Beispiel sind zwei Wasserstoff Atome und ein Sauerstoff Atom über Atombindungen miteinander verbunden. Die Bindungsenergie einer einfachen kovalenten Bindung zweier Kohlenstoff Atome beträt 348kJ/mol.
Somit sind starke Bindungen geeignet um Makromoleküle aufzubauen und für eine ausreichende thermodynamische Stabilität zu sorgen. Die Zelle benötigt zum Auftrennen kovalenter Bindungen ein passendes Enzym, das die Spaltung katalysiert. Die Polymerisation von Peptiden sowie DNA bzw. RNA funktioniert durch kovalentes Anfügen von Monomeren (Aminosäuren bzw. Nukleotiden).
Deutlich weniger Bindungsenergie haben die schwachen Bindungen. Da diese Bindungen sehr kurzlebig seien können spricht man hier oft besser von Wechselwirkungen. Die dreidimensionale Struktur von Proteinen wird fast ausschließlich von schwachen Wechselwirkunken bestimmt und auch die beiden Stränge der DNA Doppelhelix werden durch schwache Wechselwirkungen zusammen gehalten. Die DNA Doppelhelix bildet jedoch so viele Wechselwirkungen aus, dass sie insgesamt wieder eine stabile Struktur ergibt. Das gleiche gilt für die 3D-Konformation von Proteinen.
Die Wasserstoffbrücken- oder H-Brückenbindung ist die wichtigste der schwachen Wechselwirkungen im wässrigen Milieu. Sie beruht darauf, dass ein partial positiv geladenes Wasserstoffatom (H) in einem Molekül mit einem partial negativ geladenem Atom eines anderen Moleküls wechselwirkt, typischerweise Sauerstoff (O) oder Stickstoff (N). Zwei Wasser Moleküle können zum Beispiel eine H-Brücke bilden, in dem ein H-Atom eines Wassermoleküls mit einem O-Atom eines anderen Wassermoleküls wechselwirkt. So neutralisieren sich die gegensätzlichen Partialladungen und ergeben eine Bindung mit einer Stärke von etwa 10-20kJ/mol. Die Bindungsenergie ist so gering, dass H-Brücken in einem Glas Wasser bei Raumtemperatur permanent gespalten und wieder neu gebildet werden.
Noch deutlich schwächer sind die Van-der-Waals Bindungen. Sie wirken nur, wenn sich zwei ungeladene Atome sehr nahe kommen. Die Bindungsenergie liegt bei 0.5-5Kj/mol. Durch das Annähern zweier Atome aneinander kann ein Atom, durch eine zufällig eintretende, temporäre Ungleichverteilung der Ladungen in seiner Elektronenhülle, zu einem leichten Dipol werden und einen entgegengesetzten Pol in seinem Nachbaratom induzieren. An dem Punkt an dem die Van-der-Waals Kraft im Gleichgewicht mit der Abstoßungskraft der Elektronenhüllen stehet verharren die Atome nebeneinander in einer Van-der-Waals Bindung. Da diese Wechselwirkung sehr schwach ist, spielt sie meist nur eine Rolle, wenn viele dieser Bindungen gleichzeitig eingegangen werden. Dies ist zum Beispiel im Inneren von globulären Proteinen der Fall. Dort füllen Aminosäuren mit den passenden Resten den Proteinkörper so aus, dass er durch eine maximale Van-der-Waals Wechselwirkung zusammen gehalten wird.
Der Hydrophobe Effekt ist keine wirkliche Bindung und führt doch dazu, dass sich Moleküle "anziehen". Hydrophobe Moleküle versuchen in wässrigen Lösungen immer eine möglichst kleine Oberfläche gegenüber dem Milieu zu bilden was sie durch Aggregierung erreichen. Dieser Effekt ist besonders wichtig für die Proteinfaltung. Nach der Biosynthese der Aminosäuresequenz faltet das Protein sich spontan so, dass Aminosäuren mit unpolaren Resten innen und Aminosäuren mit polaren Resten außen liegen.
Zuletzt können auch noch ionische Wechselwirkungen in Molekülen eine Rolle spielen. Ein Ionenpaar bildet eine Salzbrücke, indem der eine Bindungspartner ein Elektron an den Anderen abgibt. Dies verursacht eine Polarität die eine Bindungskraft zwischen den Ionen auslöst. Ionische Wechselwirkungen findet man in Proteinen zwischen vollständig oder partiell ionisierten Seitenketten saurer und basischer Aminosäuren.
Viele grundlegende Prozesse und Mechanismen in Zellen beruhen auf schwachen Wechselwirkungen. So werden zum Beispiel Proteine, die aus mehreren Peptidketten bestehen, nach deren Faltung, zur Quartiärstruktur zusammengesetzt, wobei die Bindung durch eine Vielzahl von schwachen Wechselwirkungen zustande kommt. Die DNA Doppelhelix wird durch H-Brücken zusammengehalten, was eine leichte Auftrennung der Stränge für die Replikation ermöglicht. Die Nukleotide hingegen sind kovalent Polymerisiert, da in Ihrer Sequenz Information liegt. Die Spezifität von Enzymen beruht darauf, dass das Substrat das passende Gegenstück zur Bindungsstelle sein muss, um genügend schwache Wechselwirkungen für eine Bindung ausbilden zu können.
So überschaubar die Wechselwirkungen und Bindungen in der Biochemie sind, so komplex sind die Strukturen und Prozess Kaskaden die sie bilden können.
Zwei Zahlen sind dann pythagoräisch, wenn die Wurzel aus der Summe ihrer Quadrate eine natürliche Zahl ergibt. Die pythagoräischen Zahlen zwischen 1 und 1000 listet folgender PHP Code auf:
?php
$max = 1000;
for ( $i = 1; $i = $max; $i++ )
for ( $j = $i; $j = $max; $j++ ){
$result = sqrt( pow( $i, 2 ) + pow( $j, 2 ) );
$x = pow( 10, 5 );
if ( $result * $x % $x == 0 ) echo( $i . ', ' . $j . ': ' . $result . 'br' );
}
?
Genaue Aufgabe: Ein Java Applet soll die Summe der natürlichen Zahlen von 500 bis 1000 in einem Fenster der Größe 200 mal 100 Bildschirmpunkte ausgeben.
Java Applet Quellcode:
import java.applet.*;
import java.awt.*;
public class Sum extends Applet {
public void paint (Graphics test){
int Anfang = 500;
int Ende = 1000;
int A = Ende * ( Ende + 1 ) / 2;
int B = ( Anfang - 1 ) * Anfang / 2;
test.drawString( "von " + Anfang + " bis " + Ende + ": " + (A - B), 50 , 50 );
} }
Applet eingebettet in HTML Code :
html
head
titleHello World Applet/title
/head
body
applet code="Sum.class" width="200" height="100"
/applet
/body
/html
Alternativer PHP Code:
?php
$Anfang = 5;
$Ende = 10;
$A = $Ende * ( $Ende + 1 ) / 2;
$B = ( $Anfang - 1 ) * ( $Anfang ) / 2;
echo( 'von ' . $Anfang . ' bis ' .$Ende . ': ' + ( $A - $B ) );
?
Genaue Aufgabe: Die Flächen von Kreisen sind zu berechnen. Es gelten strikt folgende Bedingungen. 1) Die Durchmesser werden durch die natürlichen Zahlen von 1 bis 10 festgelegt. 2) Die Mittelpunkte der Kreise liegen übereinander. Das Verhältnis der Flächen zweier aufeinanderfolgender, so beschriebener, Kreise ist zu berechnen und zu listen!
Lösung (Kreisfläche = d * d * PI * 0.25):
?php
for ( $i = 1; $i = 9; $i++ ){
echo( $i . ' zu ' . ( $i + 1 ) . ': ' . pow( $i, 2 ) / ( pow( $i + 1, 2 ) ). 'br' );
}
?
oder (ohne vorher zu kürzen):
?php
for ( $i = 1; $i = 9; $i++ ){
echo( $i . ' zu ' . ( $i + 1 ) . ': ' . ( pow( $i, 2 ) * pi() * 0.25 ) / ( pow( $i + 1, 2 ) * pi() * 0.25 ). 'br' );
}
?
Genaue Aufgabe: Die Fläche gleichschenkliger Dreiecke sind zu berechnen. Es gelten strikt folgende Bedingungen. 1) Die Länge der Grundseite wird durch die natürlichen Zahlen von 1 bis 10 festgelegt. 2) Die Schenkel sind um den Faktor 2 länger aks die jeweilige Grundseite. Das Verhältnis der Flächen zweier aufeinanderfolgender, so beschriebener, Dreiecke ist zu errechnen und zu listen!
Lösung (Fläche: 0.5 * b * sqrt( a * a - (b * b) / 4; mit b = Schänkellänge, a = dritte Seite) :
?php
$flaecheA = 0;
$flaecheB = 0;
for($i = 1; $i 10; $i++){
// erstes Dreieck
$schenkellaengeA = $i * 2;
$flaecheA = 1/2 * $i * sqrt ( pow($schenkellaengeA, 2)-(pow($i,2)/4)) ;
// zweites Dreieck
$a = $i +1;
$schenkellaengeB = $a * 2;
$flaecheB = 1/2 * $a * sqrt ( pow($schenkellaengeB, 2)-(pow($a,2)/4)) ;
echo('Differenz'.$i.'/'.$a.' : '. ( $flaecheA / $flaecheB ).'br') ;
}
?
oder:
?php
for ( $i = 1; $i = 9; $i++ ){
$A1 = $i * sqrt( pow( $i * 2, 2 ) - pow( $i, 2 ) / 4 );
$A2 = ( $i + 1 ) * sqrt( pow( ( $i + 1 ) * 2, 2 ) - pow( ( $i + 1 ), 2 ) / 4 );
echo( $i . ' zu ' . ( $i + 1 ) . ': ' . ( $A1 / $A2 ) . 'br' );
}
?
$zahl = 0;). Es liegt also in der Verantwortung des Programmierers, in einer Variable zur richtigen Zeit den richtige Typ zu speichern. In einem Java Programm muss der Typ einer Variable bei der Deklaration angegeben werden (z.B. int zahl = 0;).BioJava ist ein Open Source Projekt, dass sich zur Aufgabe gemacht hat, ein Java Framework für das Arbeiten mit biologischen Daten bereitzustellen. Zum Leistungsumfang gehört das Manipulieren biologischer Sequenzen, das Parsen von Dateien, der Zugriff auf BioSQL und Ensembl Datenbanken und Werkzeuge zur statistischen Analyse von Sequenzen.
Was BioJava besonders flexibel macht, ist die Verwendung von Referenzen anstatt fester Alphabete. So ist man z.B. nicht gezwungen zur Darstellung einer Basensequenz das Alphabet 'G,T,A,C' zu verwenden sonder könnte stattdessen auch 'Gua,Tym,Ade,Cyt' benutzen.
Bei der Entwicklung von Java wurde zunächst ein Eventmodell verwendet das vorsah, alle Events die auftraten, an alle laufenden Anwendungen zu schicken. Es lag dann an der Anwendung selbst, zu entscheiden, ob sie von dem Ereignis betroffen war, oder nicht. In diesem Zusammenhang wird dieses Verfahren auch als Broadcasting bezeichnet. Sun ging sogar so weit, unter dem Motto "The Network is The Computer", Ereignisse über das Netzwerk zu verschicken.
Broadcasting hat jedoch einen entscheidendenden Nachteil: Desto mehr Programme auf einem Rechner laufen desto mehr Ereignisse müssen verschickt werden, wobei die meisten Ereignisse von den Anwendungen ignoriert werden. Deswegen geht man heute den Weg, dass sich eine Anwendung für eine Klasse von Ereignissen bei dem Betriebssystem registrieren muss. So erhält zum Beispiel eine Anwendung im Hintergund nicht laufend die aktuelle Mausposition in einem OnMouseMove Ereignis.
Unterschiede
java.applet.Applet, die das Framework für die Darstellung und Kontrolle in der Hostanwendung enthält.main() Routine ab. Appletcode läuft in von Ereignissen ausgelösten Methoden ab z.B. in public static void init(); eingefügter Code wird bei der Initialisierung einer Instanz einer Applet Klasse ausgeführt.Java Code:
import java.math.*;
public class main {
public static void main(String[] args) {
int kante = 9;
double flaeche = 0;
flaeche = Math.sqrt( 3 ) / 4 * kante;
System.out.println( "Fläche: " + flaeche );
}
}
PHP Code:
?php
$kante = 9;
$flaeche = 0;
$flaeche = sqrt( 3 ) / 4 * $kante;
echo( 'Fläche: ' . $flaeche );
?
Sinuswerte, Java Code:
public class sin {
public static void main(String[] args) {
for ( int i = 0; i = 200; i++)
System.out.println( Math.PI / 100 * i + ": " + Math.sin( Math.PI / 100 * i ) );
}
}
Sinuswerte, php Code:
?php
for( $i; $i = 200; $i++ ){
echo( round( sin( pi() / 100 * $i ), 4 ).'br' );
}
?
Cosinuswerte, Java Code:
public class cos {
public static void main(String[] args) {
for ( int i = 0; i = 200; i++)
System.out.println( Math.PI / 100 * i + ": " + Math.cos( Math.PI / 100 * i ) );
}
}
Cosinuswerte, php Code:
?php
for( $i; $i = 200; $i++ ){
echo( round( cos( pi() / 100 * $i ), 4 ).'br' );
}
?
Jave Quellcode (Hallo.class):
import java.applet.Applet;
import java.awt.Graphics;
public class Hello extends Applet {
public void paint(Graphics gc) {
gc.drawString("Hello, world!", 65, 95);
}}
HTML Einbettung:
html
head
titleHello World Applet/title
/head
body
applet code="Hello.class" width="200" height="200"
/applet
/body
/html
Eine Auflistung der fünf wichtigsten Phänomene die zur katalytischen Eigenschaft von Enzymen beitragen:
Oft wird Aktivierungsenergie (Was ist Aktivierungsenergie?) im Zusammenhang mit der Biochemie als die "lästige" Energiedifferenz, die zum Ablauf einer Reaktion überwunden werden muss, dargestellt. So muss erst ein komplexes biochemisches Makromolekül, ein Enzym, zum Einsatz kommen um die Reaktion zu ermöglichen bzw. beschleunigen. Jedoch ist diese Energiebarriere für das Leben unersetzlich! Sie stellt sicher, dass vom Organismus augebaute, komplexe Makromoleküle wie zum Beispiel die DNA nicht spontan wieder zerfallen. So ist das selektive (!) Überwinden der Aktivierungsenergie ein grundlegender Mechanismus des Anabolismus und Katabolismus.
Oft wird ein Enzym als ein Katalysator dargestellt, der die Reaktion eines Substrates in ein Produkt S -> P beschleunigt. Das ist nicht falsch und doch nur die halbe Wahrheit. Enzyme katalysieren nämlich immer auch die Gegenreaktion P -> S. So wird lediglich das Erreichen des Gleichgewichtes zwischen S und P beschleunigt.
Die Aktivierungsenergie eines Substrates ist die Energie die benötigt wird, um ein Substrat auf das Energielevel zu bringen, in dem es mit gleicher Wahrscheinlichkeit in den Zustand des Produktes übergeht oder in den Zustand des Substrates zurückkehrt. Die Geschwindigkeit dieser Reaktion ist ein Maß für die Aktivierungsenergie, da eine Reaktion um so langsamer abläuft um so größer die benötigte Aktivierungsenergie ist. Durch Anstieg der Temperatur können Reaktionsgeschwindigkeiten gesteigert werden, da das durchschnittliche Energielevel der Moleküle steigt. Katalysatoren oder speziell Enzyme (Wie katalysiert ein Enzym genau?) können Reaktionen beschleunigen indem sie die Aktivierungsenergie senken.
![]()
Wie der Name schon sagt, geht es hierbei um den Zerfall der Ionen nach dem Verlassen der Innenquelle des Massenspektrometers, also während der Flugzeit. Ausgelöst wird die Auftrennung der Moleküle durch eine zu hohe Energie innerhalb des Moleküls, was letztendlich zum aufbrechen von kovalenten Bindungen führt.
Dieser Effekt kann zur Sequenzbestimmung von Proteinen genutzt werden. Die Proteine müssen allerdings vorher in Peptidbruchstücke zerlegt werden und die ermittelten Sequenzen anschließend per Alignment wieder zusammengesetzt werden.
Für eine möglichst hohe Auflösung einer Massensprektrometischen Messung wird eine möglichst lange Flugstrecke benötigt. Auf den ersten Blick würde dies eine Verlängerung des Flugrohres vorschlagen. Da das Rohr jedoch unter hoch Vakuum steht, werden ganz besondere Anforderungen an die Statik und Abdichtung des Rohres gestellt. Bei einem immer länger werdenden Rohr wird das Oberfläche-zu-Volumen-Verhältnis immer ungünstiger und der technische Aufwand zur Aufrechterhaltung eines gleichmäßigen hoch Vakuums steigt extrem an. Deswegen benutzt man Reflektorfelder am Ende des Flugrohres, die die Ionen nochmal durch das Flugrohr leiten. So kann die Flugstrecke verdoppelt werden ohne das Flugröhre verlängern zu müssen.
Der Ionisierungsmechanismus bei dem MALDI-TOF (matrix assisted LASER desorption ionisation time of flight) Verfahren beruht auf Analyten, die in ein Kristallgitter eingeschlossen sind. Mit einem Laserimpuls werden Cluster aus der Oberfläche heraus gelöst, wodurch der Analyt in die Gasphase gebracht wird. Das vorherige Einbinden in eine Matrixsubstanz ermöglicht das überführen des Analyten in die Gasphase ohne die Zerstörung durch den Laserimpuls. Je nach Art des Analyten eignen sich verschiedene Matrixsubstanzen besser.
Ein Massenspektrometer ist generell aus drei Teilen aufgebaut. Ein Teil der die Ionen erzeugt, in die Gasphase bringt und beschleunigt, die so genannte Innenquelle; ein Teil, in dem die Ionen zu einem zu messenden Zeitpunkt eintreffen, der Detektor; und ein Teil der die dazwischen liegenden Driftstrecke ausmacht, das Flugrohr. Alle Komponenten müssen sich in einem hoch Vakuum befinden. Die Zeit, während der sich die Ionen auf der Driftstrecke befinden wird als Time of Flight (TOF) bezeichnet. Desto größer TOF ist, desto besser ist die Auflösung des Ergebnisses. Um eine möglichst lange Flugstrecke zu erreichen gibt es Massenspektrometer die am ende der Röhre die Ionen mit Hilfe eines Reflektorfeldes ein zweites mal durch die Röhre schicken, bevor sie auf den Detektor treffen.
Das HPLC Verfahren basiert darauf, das ein zu untersuchender Stoff zusammen mit einem Laufmittel, auch mobile Phase genannt, durch eine stationäre Phase gepumpt wird. Die beiden Phase befinden sich zusammen in einer Trennsäule. Wechselwirkt ein Bestandteil der zu untersuchenden Substanz stark mit der Stationären Phase, verbleibt er länger in der Säule. Wechselwirkt er hingegen schwach mit der stationären Phase, verlässt er die Säule früher. Schließt man der ersten Auftrennung eine Zweite an, kann man das Auflösungsvermögen noch einmal deutlich steigern. So können Peaks aus dem ersten HPLC, die in Wirklichkeit aus mehreren Peaks zusammen gesetzt sind, in einem zweiten Durchlauf in mehrere Peaks zerlegt werden. Das Vorgehen bezeichnet man dann als eine 2D-HPLC. Das Auflösungsvermögen liegt unter dem der Gelelektrophorese, die Reproduzierbarkeit ist jedoch leichter zu erreichen.
Affinitätschromatografie
Die Affinitätschromatographie stellt die spezifischste Methode der Trennung dar. An das Trägermaterial werden Liganden gebunden, die sich ganz spezifisch und reversible mit einem bestimmten Protein binden. Alle anderen Proteine können nicht an den Liganden binden und wandern durch die Säule, während die gebunden Proteine die Säule nicht mehr verlassen. Diese werden am Ende mit einer Lösung, die freie Liganden enthält, heraus gewaschen.
Größenausschlusschromatographie
Für dieses Verfahren benutzt man poröse Polymerkügelchen, die dafür sorgen, dass die Proteine ihrer Größe nach getrennt werden. Kleinere Proteine können in die Poren der Kügelchen eindringen und müssen deswegen eine längere Gesamtstrecke zurücklegen, um die Säule zu durchwandern. Große Proteine passieren die Kügelchen, da sie in die Poren nicht eindringen können.
Verteilungschromatografie
Bei der Verteilungschromatographie nutzt man nun die unterschiedliche Löslichkeit der zu trennenden Substanzen in den beiden Phasen aus. In der Normalphasen-Verteilungs-Chromatographie ist die stationäre Phase polarer als die mobile Phase, in der Reversed-Phase (RP-Umkehrphase)-Chromatographie ist die mobile Phase polarer als die stationäre Phase. Hierzu hydrophobiert man das anorganische Schichtmaterial und belädt es dann mit einer lipophilen Phase (z. B. flüssigem Paraffin). Die mobile Phase muss dann mehr polar sein (z. B. Aceton-Wasser-Gemisch). - Auf diese Weise trennt man vorzugsweise Substanzen, die sich im lipophilen System besser lösen. Die Reversed-Phase-Chromatographie wird vorwiegend bei unpolaren oder wenig polaren Substanzen angewendet.
Die 2D-Gelelektrophorese ist ein Verfahren zur Trennung von Molekülen die ein hohes Auflösungsvermögen (5.000 – 10.000 verschiedene Proteine) bietet, im Gegenzug aber nicht ganz Problemlos ist, was die Reproduzierbarkeit angeht. Bei der Gelelektrophorese kann ein Proteingemisch durch Anlegen einer Spannung in einem Gel über einen bestimmten Zeitraum aufgetrennt werden, da sich verschiedene Proteine verschieden schnell durch das Gel bewegen.
In der ersten Dimension, in diesem Zusammenhang, läuft das Proteingemisch durch einen pH-Gradient in dem Gel. Die Proteine verharren dann bei einem pH-Wert der ihrem Isoelektrischen Punkt entspricht, da sie dann nach außen hin ungeladen sind. Diesem ersten Auftrennungsschritt nach Isoelektischem Punkt folgt eine orthogonal dazu angesetzte Auftrennung. Die zweite Dimension.
Sie ist eine SDS Gelelektrophorese, bei der die Proteine mit Hilfe einer Acrylamidhülle negativ geladen werden. Durch erneutes Anlegen einer Spannung wandern die Proteine nun durch ein Gel mit einem Gradient bezogen auf die Prohngröße. Dies wirkt wie ein Sieb und trennt die Proteine nach ihrer Größe auf.
Durch die Trennung nach Isoelektischem Punkt und Große erreicht man mit der 2D-Gelelektrophorese ein sehr hohes Auflösungsvermögen. Der Nachteil ist jedoch, dass man einen Hohen Aufwand betreiben muss um die Ergebnisse zu vergleichen. Kleinste Ungenauigkeiten haben Auswirkungen auf das Ergebnis und müssen mit Hilfe von statistischen Methoden "herausgerechnet" werden.
Als erstes muss man sich für ein Trennungsverfahren entscheiden, mit dem man das Proteom untersuchen möchte. Dabei muss man sich die Frage stellen, ob man ein möglichst hohes Auflösungsvermögen (Gelelektrophorese), eine möglichst genaue Reproduzierbarkeit (MALDI-TOF) oder einen Mittelweg aus Beidem (2D-HPLC) benötigt.
Nach dem man sich für ein Verfahren entschieden hat muss, im ersten Schritt, die zu untersuchende Probe aufgearbeitet werden. Dabei ist eine möglichst geringe Veränderung bzw. Zerstörung des Proteoms wünschenswert. Die Aufbereitung beginnt mit einer mechanischen oder physikochemischen Zerstörung der Zellwandstruktur gefolgt von weiteren Aufbereitungsschritten.
Nachdem das Proteom einer definierten Zelllinie Z aufgearbeitet ist, wird es, im groben Ablauf, vor und nach der Zugabe der Substanz S, mit Methoden der Proteomics untersucht. Bei dem Versuchsablauf gilt es zu berücksichtigen, dass Proteom möglichst nicht durch andere Einflüsse als der Zugabe der Substanz S zu verändert. Nachdem man beide Untersuchungsergebnisse vorliegen hat, vergleicht man sie, um Rückschlüsse auf die Wirkung der Substanz S im Stoffwechsel der Zellen Z schließen zu können.
Die Bioinformatik kommt im Bereich der Proteomics an verschiedenen Stellen zum Einsatz.
Bei der Gelelektrophorese gewährleistet sie die Reproduzierbarkeit von Untersuchungen. Das Verfahren an sich zeit meist nie, bei mehrfacher Ausführung mit den gleichen Anfangsparametern, die gleichen Ergebnisse. Zumindest auf den ersten Blick nicht. Mit Bildbearbeitung und anschließender Bildverarbeitung und Mustererkennung lassen sich jedoch im Nachhinein scheinbar unterschiedliche Peaks als die zum gleichen Stoff gehörenden nachweisen.
Bei MALDI TOF Massenspektrometern fallen im klinischen Bereich oft große Datenmengen an, die es gilt, in Datenbanken zu verwalten, möglichst verlustfrei zu komprimieren, verschiedenen Personengruppen zur Verfügung zu stellen und in menschenlesbarer Form darzustellen.
Verwendet man Methoden der Proteomics um Peptide bzw. Proteine zu sequenzieren spielt die Bioinformatik eine noch größere Rolle. Einerseits müssen die Ermittelten Sequenzbruchstücke mit geeigneten Algorithmen zur gesamt Sequenz zusammengefügt werden, andererseits müssen Datenbanken durchsucht werden um gefundene Sequenzen mit bereits identifizierten Sequenzen abzugleichen. Aber auch nach der Sequenzierung setzt man zum Beispiel für die funktionale Abgrenzung von Domänen auf die Bioinformatik.
Der Begriff „Proteomics“ ist als eine Analogie zum Begriff „Genomics“ entstanden, und während es oft als „der nächste Schritt“ gesehen wird, ist Proteomics sehr viel komplizierter als Genomics. Während das Genom eine eher statische Einheit darstellt, ist das Proteom von Zelle zu Zelle unterschiedlich und ändert sich laufend durch seine biochemischen Wechselwirkungen mit dem Genom und der Umwelt. Das Proteom ist somit die Gesamtheit an Proteinen, die man zu einem bestimmten Zeitpunkt in einer bestimmten Zelle findet. Proteomics ist dementspechend die Wissenschaft, die sich mit der Untersuchung des Proteoms beschäftigt. Dabei geht es unter anderem um die Proteintrennung, -identifikation und -quantifizierung, aber auch um die Sequenzanalyse von Peptiden. Im Mittelpunkt steht heute die Entwicklung von effizienten Methoden die ein hohes Auflösungsvermögen bieten und dabei gleichzeitig reproduzierbare Ergebnisse liefern.