VERFAHREN UND VORRICHTUNG ZUR AUSWAHL UND ZUM VERGLEICH PHYSIKALISCHER
EIGENSCHAFTEN IN PARAMETERFOLGEN
Die Erfindung betrifft ein Verfahren zum Vergleich von n Parameterfolgen, wobei ein Teil der Parameter aller Parameterfolgen nach einer vorher definierten Vorschrift untereinander zu Parameterkombinationen kombiniert werden und jeder Parameterkombination nach einer vorher definierten ersten Bewertungs Vorschrift ein erster Wert zugeordnet wird, und das Ergebnis der Bewertungsvorschrift eine einer Messung zugänglichen Eigenschaft entspricht. Außerdem betrifft die vorliegende Erfindung die Verwendung des erfindungsgemäßen Verfahrens zur Gestaltung, Bildung, Design von/oder zur Selektion von Stoffen.
Auf dem Gebiet der Bio-Informatik und der Materialwissenschaften fallen große Mengen genetischer, biochemischer sowie stoffspezifischer Daten an. Diese Daten, die sich aus vielen Forschungsanstrengungen ergeben, sind durch ihren gemeinsamen Ursprung verbunden: den Eigenschaften von biologischen und anorganischen Stoffen bzw. Molekülen.
Dadurch erfordern die beiden vorgenannten Gebiete große Rechnerleistungen, um diese Einzelinformationen zu katalogisieren, organisieren und sie in sinnvollen Gebilden zu strukturieren.
Im Allgemeinen sind diese Anforderungen an Rechner mit herkömmlichen Systemen nicht mehr zu bewältigen.
Schon in der Vergangenheit wurden daher Wege gesucht, um den enormen Datenfluss sinnvoll zu strukturieren, wobei spezielle Hardware- und Softwarekonfigurationen eingesetzt wurden.
So sind beispielsweise aus der EP 1094607A1 FPGA (Field Programmable Gate Arrays) Zellen bekannt, die anwenderprogrammierte Verknüpfungsfelder aufweisen. Diese Zellen weisen ein Feld von Logikelementen und Verdrahtungsabschnitten auf, die aus mehreren Tausend oder sogar hunderttausenden von programmierbaren Verbindungen bestehen, wodurch FPGA's von einem Anwender als integrierte Schaltung für definierte Funktionen programmiert werden können. Jede programmierbare Verbindung kann hierbei als FPGA- Zelle eine Vielzahl von Schaltungsknoten der integrierten Schaltung verbinden oder unterbrechen, wodurch Funktionen von Logikelementen des FPGAs anwenderspezifisch eingestellt werden können. Durch Verkürzung einer Kanalbreite von Kanalgebieten eines Schalttransistors einer FPGA-Zelle, wird ein geringerer Platzbedarf sowie geringere Schreib-/Lesespannungen für das Programmieren von FPGA-Zellen ermöglicht.
Weiter sind aus der DE 19654595A1 und Speicherbussysteme für Bausteine mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen bekannt, wobei das Bussystem durch Bündelung mehrere einzelner Leitungen oder Busse oder Teilbusse innerhalb eines Bausteins der Gattung DFP, FPGA, DPGA, sowie allen Bausteinen mit zwei oder mehr dimensionaler programmierbarer Zellstruktur hergestellt ist, und über welches die Bausteine zu mehreren zusammengefasst werden können und/oder Speicher und/oder Peripheriegeräte anschließbar sind / ist.
Ebenso stellt die DE 19654846A1 ein Verfahren zur dynamischen Konfiguration von konfigurierbaren Bausteinen mit einer zwei- oder mehrdimensionalen Zellanordnung, beispielsweise FPGA's, DPGA's, DFP's oder ähnlichem, zur Verfügung, das ein oder
mehrere Switching-Tabellen, bestehend aus einer oder mehrerer Steuerungen, und einen oder mehreren Konfigurationsspeicher, auf denen Bausteine integriert sind oder an diesen angeschlossen werden enthält. Dabei werden Konfigurationsworte von einer Switchingtabelle an ein konfigurierbares Element oder mehrere konfigurierbare Elemente des Bausteins oder der Bausteinübertragung, die eine gültige Konfiguration einstellen, übertragen. Damit ist eine Umkonfigurierung eines programmierbaren Bausteins wesentlich schneller möglich und eine flexible Nutzung von verschiedenen Konfigurationen eines programmierbaren Bausteins zur Laufzeit, ohne dabei die Arbeitsfähigkeit des programmierbaren Bausteins zu beeinträchtigen oder zu stoppen, möglich. Veränderungen an der Konfiguration des Bausteins werden gleichzeitig durchgeführt und stehen somit sehr schnell zur Verfügung, ohne dass, unter Umständen, weite Konfigurationsdaten übertragen werden müssen. Damit werden statische Beschränkungen herkömmlicher Bausteine aufgehoben und eine Verbesserung der Ausnutzung vorhandener konfigurierbarer Elemente erreicht.
Aus der DE 19651527 AI ist weiter eine Rechneranordnung und ein Verfahren zur Durchführung einer Folge von Programmbefehlen bekannt, wobei in der Rechneranordnung ein programmierbarer Logikbaustein, der mit einem Prozessor mit einem begrenzten Befehlssatz gekoppelt ist, wobei der Logikbaustein den Prozessor bzw. den begrenzten Befehlssatz um mindestens einen Befehl erweitert. Der Befehl der nicht in dem Befehlssatz des Prozessors enthalten ist, wird in dem programmierbaren Logikbaustein durch Logikfunktionen realisiert. Damit können in verschiedenen Anwendungsgebieten, beispielsweise bei der Approximation von Funktions werten beliebig stetiger Funktionen, bei der Fliessarithmetik, insbesondere auch bei Prozessoren mit Integer-Format oder auch bei verlustfreien oder verlustbehafteten Datenkompression, die Bearbeitungszeit und die benötigten Ressourcen weiter verringert werden.
Allen vorgenannten Systemen und Verfahren des Standes der Technik war jedoch gemein, dass die Rechenzeiten zur Verarbeitung einer Vielzahl von Daten sehr hoch waren.
Dies ist insbesondere auch für den Bereich der Bioinformatik bei der Auswertung z.B. von genetischen Analysen, der Strukturaufklärung von Proteinen etc. ein großer Nachteil, da schnelle Auswertungsergebnisse erwünscht sind.
Aus der EP 1136932 AI ist beispielsweise ein Verfahren zum Design von Primern auf Bio- Chips bekannt, wobei DNA-Nukleotid-Sequenzen von einer Datenbank erhalten werden, die aus einer Mehrzahl von verschiedenen DNA-Nukleotid-Sequenzen besteht, und wobei die Nukleotid-Sequenzen von Primern in der Lage sind, spezifisch in die so erhaltene hybridisierte DNA zu binden. Eine Mehrzahl von Primern, die in der Lage sind spezifisch an verschiedene DNA's zu binden, kann so designt werden.
Bio-Chips sind vor allem nützliche Werkzeuge im Rahmen der Medikamentenentwicklung. Der größte Vorteil besteht dabei in der Expresssionsprofilierung. Hier sind DNA-Mikroarrays aufgrund ihrer Fähigkeit, die Messung von Genaktivität in einem Gewebe in massiv paralleler Weise zu erlauben, bereits heute konkurrenzlos attraktiv. Auch in anderen Bereichen als bei DNA-Chips werden beispielsweise zur Vervielfältigung von bekannten Sequenzen (Polymerase Chain Reaction PCR) so genannte Primer eingesetzt. Bei einem Primer (Oligonukleotid) handelt es sich um eine kurze Oligonukleotidsequenz, die synthetisch in allen beliebigen Kombinationen (A, C, G, T, U, wobei die Großbuchstaben für die entsprechenden Basen Adenin, Cytosin, Guanin, Thymin und Uracil in der DNA bzw. in der RNA stehen) erstellt werden kann. Die Primer sind in der Regel zwischen 15 und 100 Basenpaare lang.
Der Begriff Bio-Chip oder Microarray bezeichnet die systematische Anordnung von biomolekularen Sonden, wie beispielsweise Nukleinsäuren, (Oligonukleotiden, beispielsweise cDNA, DNA, RNA, LNA oder Chimären davon) Antikörpern, Peptiden oder Proteinen auf festen Oberflächen aus Glas, Metallen oder Kunststoffen. Das Grundprinzip derartiger biochipbasierter Methoden ist es, durch Sondenarrays parallel arbeitende, miniaturisierte Analysesysteme auf einer möglichst kleinen Fläche zu erhalten, die die gleichzeitige Untersuchung einer großen Zahl von Parametern ermöglichen.
Die Genanalyse mittels Oligonukleotidchips beruht auf der Fähigkeit beispielsweise von Einzelsträngen DNA eine Doppelhelix mit einem komplementären DNA-Fragment auszubilden. Dieser als Hybridisierung bezeichnete Vorgang erlaubt den sequenzspezifischen Nachweis eines DNA-Abschnitts durch ein Sonden-Oligonukleotid (Primer), das auf einer Oberfläche fixiert ist. Es wird jeweils ein Bündel von gleichen Primern auf einen Punkt / Matrixzelle aufgebracht. Diesen Punkt/Zelle bezeichnet man als Spot. Ein DNA-Chip besteht aus vielen verschiedenen Sonden, wodurch eine Detektion mehrerer Tausend DNA-Abschnitte möglich ist.
Die Hybridisierung auf einem DNA-Chip wird beispielsweise mit einem Fluoreszenz- Mikroskop nachgewiesen, in dem die zu untersuchende DNA (oder der gesuchte DNA- Strang) mit Fluoreszenzfarbstoffen (Primer-Marker) markiert wird.
Bisher gibt es nur wenige Programme zur Berechnung von optimalen Primern. Nachteilig auch hierbei ist der derzeit noch enorme Zeitbedarf bei der Ausführung derartiger Programme.
Ebenso sind für die Analyse von Proteinen und (Poly)Peptiden umfangreiche Rechenleistungen erforderlich. Peptid- bzw. Proteinchips, mit deren Hilfe Tausende von
Peptiden bzw. Proteinen parallel charakterisiert werden können sind derzeit die einzige Möglichkeit, um der Aufgabe der Peptid bzw. Proteincharakterisierung in einem überschaubaren Zeithorizont Herr zu werden. Dies erfordert eine noch größere Rechenleistung als beispielsweise bei der Analyse von Nukleinsäuren bzw. Oligonukleotiden, denn während die Nukleinsäuren in ihren chemischen und molekularen Eigenschaften sehr ähnlich sind, gibt es eine Vielzahl an äußerst heterogenen Peptiden und Proteinen.
Die Funktion insbesondere der Proteine stützt sich auf ihre 3-dimensionale Struktur. Diese Struktur ist mitunter ausgesprochen empfindlich, wenn die Bedingungen unter denen sich die jeweiligen Proteine natürlicherweise befinden, verändert werden. Darüber hinaus besitzen Proteine enorme Größenunterschiede. Während es beispielsweise bei den DNA-Chips möglich ist, gleichgroße DNA-Fragmente an die Trägermaterialien zu knüpfen, ist dies zur Aufklärung der Aufgabe, die das Protein erfüllt, nicht sinnvoll, da dieses dafür intakt sein und in der richtigen Konformation vorliegen muss.
An Proteinchips werden also weitaus höhere Anforderungen gestellt als an DNA-Chips. Bei den derzeit vorhandenen Proteinarrays handelt es sich überwiegend um Antikörper- arrays, bei denen die spezifischen Fängermoleküle analog den DNA-Mi croarrays auf engstem Raum in Reihen und Spalten auf Trägermaterialien aufgetragen werden, um definierte Proteine aus einem Pool an Proteinen herauszufischen und zu analysieren. Für die Analytik werden enorme Rechenleistungen benötigt. Diese sind derzeit jedoch so, dass die Analyse von definierten Proteinen Tage dauert. Bei der Analyse werden alle Proteine des Proteinpools spezifisch radioaktiv, mit Fluoreszenzfarbstoffen oder mit Biotin markiert und auf dem Microarray mit den Fänger-Molekülen in Kontakt gebracht. Mit entsprechenden Detektionsmethoden können die an den Fängermolekülen gebundenen markierten Proteine nachgewiesen werden.
Daher hat die Vorbereitung des Experiments, insbesondere das Design des Experiments einen großen Anteil am Wert des gesamten Experiments. Bei dem Design von Biochips gibt es daher einen großen Bedarf an spezialisierter Rechner bzw. Rechnerleistung.
Beim Design des Experiments müssen mit Computerunterstützung große und unterschiedliche Datenbanken gescreent werden um den Chipcontent festzulegen. Biochips können beispielsweise zur Analytik von Peptiden und/oder DNA-Sequenzen verwendet werden. Dabei ist beispielsweise die Suche nach genau dem Liganden (Oligonukleotide, cDNA-Moleküle, Antikörper) die nach ihrer Immobilisierung auf dem Chip ihren molekularen Partner aus der Probe des Patienten exakt binden, ohne zu sehr mit anderen Molekülen auf dem Chip um die Anlagung eines Partners konkurrieren, von zentraler Bedeutung. Es müssen also möglichst viele strukturelle Details in die Analyse mit eingehen, damit der richtige Chipinhalt ausgewählt und falsche Ergebnisse vermieden werden können.
Durch eine computergestützte Vorbereitung des Experiments lassen sich die experimentellen Bedingungen und insbesondere die Auswahl von Primern in Abhängigkeit von der Art des Biochips optimieren. In vertretbarer Zeit können so Experimente optimal vorbereitet werden und es kann eine Basis geschaffen werden, von der ausgehend eine richtige Interpretation der Meßpunkte ermöglicht wird.
Beispielsweise werden beim Durchsuchen von Datenbanken im allgemeinen Zieleigenschaften mit dem Inhalt der Datenbank verglichen. Ebenfalls sind bei der Optimierung von Experimenten Vergleichsbildungen durchzuführen. Bei solchen Vergleichsbildungen werden normalerweise verschiedene Kombinationen von Parametern gebildet und diese Kombinationen verschiedenen Bewertungsschritten unterzogen.
Die Aufgabe der vorliegenden Erfindung bestand daher darin, ein Verfahren zur Verfügung zu stellen, das den Zeitaufwand beim Vergleich von n-Parameterfolgen noch weiter verkürzt, so dass komplexe Berechnungen einer Vielzahl von Daten einfach und schnell durchgeführt werden können.
Diese Aufgabe wird durch ein Verfahren zum Vergleich von n-Parameterfolgen gelöst, wobei ein Teil der Parameter aller Parameterfolgen nach einer vorher definierten Vorschrift untereinander zu Parameterkombinationen kombiniert werden und jeder Parameterkombination nach einer vorher definierten ersten Bewertungsvorschrift ein erster Wert zugeordnet wird, und das Ergebnis der Bewertungsvorschrift eine einer Messung zugänglichen Eigenschaft entspricht, wobei die Kombinationen aus den Parametern der n Parameterfolgen eine m-dimensionale Matrix bilden und ein Teil dieser m-dimensionalen Matrix einer Matrix entspricht, die arithmetische logische Recheneinheiten umfaßt.
Zum besseren Verständnis der vorliegenden Erfindung sind nachstehend die wesentlichen erfindungsgemäß verwendeten Begriffe definiert:
Eine „vorher definierte Vorschrift" im Sinne der Erfindung bedeutet beispielsweise vorgegebene Anweisungen für die Bildung der Parameterkombinationen, die in Form einer Rechenvorschrift innerhalb eines Rechenprogramms oder als Teil der Computerarchitektur in Form von integrierten Schaltkreisen vorliegen können. Weiterhin können die Anweisungen für die Bildung der Parameterkombinationen biologisch, chemisch, physikalisch vorgegeben sein oder von zufälliger Art sein oder auch Kombinationen davon sein. Die vorher definierte Vorschrift liegt dabei im allgemeinen schon vor der Bildung der Parameterkombinationen vor.
Eine „vorher definierte erste Bewertungs Vorschrift" im Sinne der Erfindung bedeutet, dass die Bewertungsvorschrift im allgemeinen vor der Durchführung der Bewertung vorhanden ist, und die Bewertungsvorschrift für jede der möglichen Parameterkombinationen gleich oder verschieden sein kann. Die Bewertungsvorschrift bewirkt, dass einer oder mehreren Parameterkombinationen jeweils ein oder mehrere Werte zugewiesen werden. Vor allem bei Kombinationen aus mehr als zwei Parametern kann die Zuweisung mehrerer Werte nützlich sein. Die Bewertungsvorschrift kann in Form von Bewertungsanweisungen innerhalb eines Rechenprogramms oder als Teil der Computerarchitektur in Form von integrierten Schaltkreisen vorliegen. Weiterhin kann die Bewertungs Vorschrift für die Bewertung der Parameterkombinationen biologisch, chemisch, oder physikalisch vorgegeben sein oder von zufälliger Art sein oder auch als Kombinationen davon vorgegeben sein. Beispielsweise könnte die Bewertungsvorschrift in einem biologischen und/oder chemischen System codiert sein. In einem solchen System wird die Bewertung durch die Struktur und Art der Moleküle codiert und die Bewertungsvorschrift durch gegenseitige Beeinflussung der Moleküle ausgeführt.
Unter dem Begriff „Ergebnis" versteht man erfindungsgemäß die den Parameterkombinationen zugewiesenen Werte. Beispielsweise kann das Ergebnis der Bewertungsvorschrift ein Maß für das Zusammenpassen („Matching") der Parameter in den einzelnen Parameterfolgen liefern. Handelt es sich bei den Parametern beispielsweise um Basen von Oligonukeotidsequenzen, so kann das Ergebnis der Bewertung der Basenkombinationen ein Maß für die Bindungsstärke der jeweiligen Basenkombination umfassen. Werden andererseits Parameter miteinander kombiniert, die Teilen von Molekülen (Atome oder funktionelle Gruppen) entsprechen, wobei die Moleküle zum Beispiel Oligonukleotide und/oder Proteine sein können, so kann das Ergebnis der Bewertung, in Abhängigkeit von der Bewertungsvorschrift, ein Maß für die Bindungsfähigkeit zwischen den Parametern in einer Kombination sein oder beispielsweise
auch ein Maß für die Übereinstimmung der Parameter sein. In einem anderen nicht beschränkenden Ausführungsbeispiel werden auf dem Gebiet der Bildverarbeitung Parameterfolgen, die Zeichenketten enthalten, miteinander mittels des erfindungsgemäßen Verfahrens verglichen. Solche Zeichenketten können beispielsweise Bildausschnitte oder auch Wort bzw. Wortfolgen darstellen (beispielsweise entsprechen die Parameter dann Grau- oder Farbstufen). Bei der Bildverarbeitung liefert der Vergleich von Zeichenketten als Ergebnis dann beispielsweise ein Maß für die Übereinstimmung und damit kann dem Ergebnis eine Eigenschaft zugeordnet werden, die besagt, dass eine bestimmter Parametersatz einem Bildausschnitt entspricht, dem eine Bedeutung wie zum Beispiel Straße oder Haus zukommt.
Eine „einer Messung zugängliche Eigenschaft" im Sinne der Erfindung bedeutet, dass mit Hilfe einer Meßmethode und geeigneten Systemen ein oder mehrere Messergebnisse erhalten werden, die nach geeigneten Manipulationen einer Eigenschaft des Ergebnisses der Erfindung entsprechen. Die Meßmethode kann dabei biologischer, chemischer oder physikalischer Natur sein, Beispielsweise entspricht dem Ergebnis der ersten Bewertungsvorschrift im Falle eines beispielhaft verstandenen Verfahrens zur Selektion von Primern den Bindungsstärken zwischen den durch Kombination gebildeten Basenpaaren. Das heißt, die einer Messung zugängliche Eigenschaft ist die Wahrscheinlichkeit für Bildung einer chemischen Bindung, bzw. ein Maß für die Stärke der entstandenen chemischen Bindung, oder aber es können die Wahrscheinlichkeiten für das Vorkommen der den Parameterkombinationen entsprechenden gepaarten Oligonukleotidsequenzen sein. Solche Vorkommenswahrscheinlichkeiten für Bindungsbildungen lassen sich beispielsweise mit Gel-Elektrophorese oder Resonanzmethoden (NMR, ESR, μ-SR etc.) nachweisen. Durch Vergleich (beispielsweise Differenzbildung) der Messergebnisse von Systemen mit Bindungsbildungen mit Referenzsystemen ohne Bindungsbildungen werden die den Vorkommenswahr-
scheinlichkeiten entsprechenden Messergebnisse erhalten. Im Falle der Bildverarbeitung entsprechen dem Ergebnis, wie beispielsweise die Wahrscheinlichkeit für das Vorhandensein eines bestimmten Gegenstandes (zum Beispiel ein Haus), verschiedene Eigenschaften, wie zum Beispiel Temperatur usw.. Diese Eigenschaft ist geeigneten Meßmethoden, wie zum Beispiel Wärmebildkameraaufnahmen zugänglich.
Eine „m-dimensionale Matrix" im Sinne der Erfindung bedeutet, dass sich im allgemeinen die gebildeten Parameterkombinationen als Matrix oder Teil einer Matrix darstellen lassen, beziehungsweise, dass bei der Bildung der Parameterkombinationen eine Matrix oder ein Teil einer Matrix entsteht. Dabei stellt jedes Matrixelement der entstandenen Matrix oder des entstandenen Teils einer Matrix eine Parameterkombination dar. Die Dimension m der Matrix übersteigt üblicherweise nicht die Anzahl n der Parameterfolgen.
Eine „arithmetisch-logische Recheneinheit" im Sinne der Erfindung bedeutet ein Matrixbeziehungsweise ein Verarbeitungselement, welches in der Lage ist, beispielsweise beliebige Vergleichs-, logische oder arithmetische Operationen durchzuführen. Nicht einschränkende Ausführungsbeispiele für erfindungsgemäße arithmetisch-logische Recheneinheiten sind in der nachstehenden Beschreibung aufgeführt. Das Verarbeitungselement kann dabei biologischer, chemischer oder physikalischer Natur oder Kombinationen davon sein. Ebenso führen die arithmetisch-logischen Recheneinheiten natürlich auch die Bewertung der gebildeten Parameterkombination durch.
Eine „Matrix, die arithmetische logische Recheneinheiten umfaßt" bedeutet erfindungs gemäß eine Logikeinheit, die bevorzugt zur parallelen Datenverarbeitung ausgelegt ist. Nicht einschränkende Ausführungsbeispiele für erfindungsgemäße Matrizen, die arithmetisch-logische Recheneinheiten umfassen sind in der nachstehenden Beschreibung aufgeführt.
Durch das erfindungsgemäße Verfahren lässt sich die Geschwindigkeit der Auswertung, beispielsweise bei der Suche nach optimalen physikalischen Eigenschaften eines gesuchten Oligonukleotids, eines Peptids oder ähnlicher Materialien bis um den Faktor 1000 gegenüber herkömmlichen Verfahren beschleunigen.
Bevorzugt ist, wenn die Bildung aller oder eines Teils der Parameterkombinationen gleichzeitig, beispielsweise parallel, in sogenannten Pipelines (in einer Computer-Pipeline wird eine Instruktionsausführung in mehrere Verarbeitungsschritte aufgegliedert, die jeweils von einem dafür bestimmten Stück Hardware abgewickelt werden und alle parallel ablaufen. Die Pipeline entspricht einem Fließband, wobei in jedem Taktzyklus eine Instruktion vervollständigt werden kann) durchgeführt wird, das heißt die gepipelineten Daten werden parallel verarbeitet. Durch den Einsatz des Pipelinings werden Beschleunigungsfaktoren zwischen 10 und 100 im Vergleich zum Einsatz herkömmlicher Verfahren erreicht.
In einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens erfolgt die Bewertung aller oder eines Teils der Parameterkombinationen ebenfalls gleichzeitig, beispielsweise parallel in Pipelines. Dadurch kann die Geschwindigkeit des Verfahrens bis zum Erhalt eines Ergebnisses ebenfalls noch um Beschleunigungsfaktoren zwischen 100 und 1000 gesteigert werden.
Bevorzugt erfolgt die Bewertung der gebildeten Parameterkombinationen durch die arithmetischen logischen Recheneinheiten. Dadurch kann beispielsweise jede arithmetische logische Recheneinheit eine individuelle Bewertungsvorschrift ausführen und die Parameterkombinationen können je nach Art oder physikalischer Bedeutung der Parameter individuell sinnvoll bewertet werden.
Vorteilhafterweise können die ersten Werte für alle Parameterkombinationen aus den n Parameterfolgen nach einer weiteren Bewertungsvorschrift weiterverarbeitet werden. Damit kann das Ergebnis aus der ersten Bewertungen durch eine weitere Bewertungsvorschrift, die beispielsweise Anweisungen für Summenbildungen oder Extremwertsuchen enthält, weiter verarbeitet werden und beispielsweise auf ein einfacheres zweites Ergebnis reduziert werden. Dieses Ergebnis kann dann noch weiterverarbeitet werden oder auch beispielsweise schon einem Molekül entsprechen, welches die gewünschten Eigenschaften, die in den Bewertungsvorschriften geeignet codiert sind, besitzt.
Besonders bevorzugt wird jede einzelne und/oder mehrere Kombinationen der Parameter in einer oder mehreren logischen Recheneinheiten gebildet und/oder bewertet, beispielsweise in unterschiedlich geprägten Pipelines (eine Pipeline führt z.B. eine Summenbildung, eine andere führt Vergleiche durch, etc.). Dadurch wird die Geschwindigkeit bis um den Faktor 100-1000 im Vergleich zum Einsatz herkömmlicher Verfahren gesteigert.
Vorteilhafterweise ist n eine ganze Zahl, die größer oder gleich 2 ist. So können zwei Parameterfolgen oder auch wesentlich mehr Parameterfolgen miteinander verglichen werden.
In einer weiteren vorteilhaften Ausführungsform des Verfahrens besteht jede Folge von Parametern aus einer Abfolge von diskreten Parametern. Dadurch können beliebige Parameterkombinationen direkt durch Kombination der diskreten Parameter aus den Parameterfolgen gebildet werden.
Bevorzugt umfassen Folgen die gleiche und/oder eine unterschiedliche Anzahl von Parametern. Dadurch können auch Folgen, die beispielsweise verschiedenen Stoffen oder verschiedenen Molekülen oder Molekülteilen entsprechen miteinander verglichen werden.
Vorteilhafterweise weisen die Folgen eine bestimmte vorab definierte Anordnung der Parameter innerhalb der Folgen auf. Damit sind beispielsweise Stoffe oder Moleküle in ihrem Aufbau definiert.
Bevorzugt weisen die Parameter eine einer Messung zugängliche Eigenschaft auf. Dadurch können beispielsweise die Parameter Eigenschaften von Messwerten (zum Beispiel Temperatur, Druck) aufweisen und/oder auch ganzen oder teilweisen biologischen Gebilden wie zum Beispiel Zellen entsprechen und/oder Teilen von Substanzen wie zum Beispiel den Basen von Primern entsprechen.
Besonders bevorzugt können die Werte aus der ersten Zuordnung von Werten (erste Bewertungsvorschrift) weiteren Bewertungs Vorschriften unterworfen werden. Damit kann das Ergebnis aus der ersten Bewertung weiter verarbeitet werden, wobei es beliebig viele weitere Zwischenergebnisse geben kann, bis schließlich ein Endergebnis zu Verfügung gestellt wird. In die weiteren Bewertungsschritte können verschiedene Auswahlkriterien für die Gestaltung, Bildung von/oder zur Selektion von Stoffen mit einfließen.
Vorteilhafterweise weist das Ergebnis eine einer Messung zugängliche Eigenschaft auf. So kann das Ergebnis beispielsweise ein oder mehrere Moleküle umfassen, welche beispielsweise bestimmte gewünschte Eigenschaften besitzen und/oder auch beispielsweise Eigenschaften, die mit dem/den Molekül/en in Zusammenhang stehen umfassen.
Bevorzugt dient das Verfahren zum Vergleich von n Parameterfolgen zur Gestaltung, Bildung, Design von/oder zur Selektion von Stoffen. Dadurch können Parameterfolgen beispielsweise aus Stoffdatenbanken, die Stoffdaten enthalten durch geeignete Bewertungsschritte im Hinblick auf gewünschte Eigenschaften analysiert werden, wobei dann beispielsweise Stoffe selektiert oder designt oder neu gebildet bzw. gestaltet werden können.
Vorteilhafterweise sind die Stoffe biologische Moleküle. Dadurch kann beispielsweise das das Design von geeigneten Biochips evaluiert werden, oder beispielsweise auch biologische Eigenschaften Gensequenzen zugeordnet werden.
Bevorzugt sind die Moleküle Oligonukleotide. Dadurch werden bevorzugt beispielsweise Primer einfach designt oder selektiert werden.
Besonders bevorzugt umfassen die Parameter in den Parameterfolgen der Schritte des Verfahrens die Basen der Oligonukleotide. Dadurch entsprechen die Parameterkombinationen Kombinationen von einfach zugänglichen und identifizierbaren Basen.
Vorteilhafterweise werden die Parameterkombinationen dadurch gebildet, indem jeweils zwei Parameterfolgen, der n Parameterfolgen zueinander einen Teil aller möglichen Anordnungen durchlaufen, und wobei die Anordnungen durch Verschiebung um jeweils einen diskreten Parameter zustande kommen. Eine Anordnung im Sinne der Erfindung kann sowohl eine räumliche Anordnung der Parameter, als auch eine beliebige Permutation der Parameter in n-dimensionalen realen oder virtuellen Räumen bedeuten. Dadurch können beispielsweise jeweils zwei Primer bei einer bestimmten Anordnung so miteinander in Wechselwirkung treten, dass es zu Kombination von Basen oder auch
anderer Eigenschaften kommen kann. Durch das Verschieben der Primer um einen diskreten Parameter können alle sinnvollen Anordnungen durchlaufen werden.
Bevorzugt umfassen die Parameterkombinationen aus dem Teil aller möglichen Anordnungen der Parameterfolgen Basenpaare. Dadurch können beispielsweise chemische Wechselwirkungen wie Wasserstoffbrückenbindungen zwischen den Basen eines Basenpaares bewertet werden.
Besonders bevorzugt wird den Basenpaaren ein hierarchisierbarer Wert zugeordnet. Damit können beispielsweise chemische Wechselwirkungen im Hinblick auf die Stabilität der möglicherweise gebildeten Bindung bewertet werden.
Vorteilhafterweise wird ein Teil der Parameterkombinationen gleichzeitig gebildet und diesem Teil und/oder einem Teil dieser gleichzeitig gebildeten Kombinationen zur gleichen Zeit ein hierarchisierbarer Wert zugeordnet. Dadurch wird die Geschwindigkeit bis um Faktoren von 10-100 im Vergleich zum Einsatz herkömmlicher Verfahren gesteigert.
Bevorzugt entspricht der zugeordnete Wert der Bindungsstärke der chemischen Bindung zwischen den komplementären Basen zwischen Primer und einer Oligonukleotidsequenz. Dadurch kann die Bindungsstärke als Basis für mögliche weitere Berechnungen, die der Selektion von beispielsweise Oligonukleotiden oder Primern dienen, herangezogen werden.
Besonders bevorzugt werden die, den Bindungsstärken entsprechenden Werte weiteren Berechnungsverfahren unterzogen, so dass das Ergebnis ein oder mehrere Auswahlkriterien für ein oder mehrere Oligonukleotide darstellt. Damit können
Oligonukeotide, die den gewünschten Bindungseigenschaften entsprechen ausgewählt werden.
Die Aufgabe der vorliegenden Erfindung wird weiter durch eine Vorrichtung zur Durchführung des erfindungsgemäßen Verfahrens gelöst, wobei die Vorrichtung einen Prozessor und einen Hardware-Beschleuniger zur parallelen Datenverarbeitung und einen Speicher, der mit dem Prozessor und/oder dem Hardwarebeschleuniger gekoppelt ist, umfasst, um das Verfahren oder Schritte des erfindungsgemäßen Verfahrens durchzuführen. Damit kann eine Vielzahl von Befehlen zur Ausführung des erfindungsgemäßen Verfahrens in den Hardwarebeschleuniger ausgelagert werden, was die Geschwindigkeit der Datenverarbeitung signifikant erhöht.
Die spezielle Hardwarestruktur erlaubt somit die parallele, das heißt gleichzeitige Durchführung von vielen Rechenoperationen auf einen Schritt, wodurch auch hier die Geschwindigkeit der Verarbeitung der Daten entsprechend gesteigert wird.
Bevorzugt weist der Speicher einen Teil der Programmbefehle zum Ausführen des Verfahrens und/oder für den Betrieb der Vorrichtung auf, wodurch das Verfahren direkt und ohne Verzögerung ausgeführt werden kann und somit auch hier die Geschwindigkeit der Bearbeitung der Daten entsprechend gesteigert werden kann.
Vorteilhafterweise ist der Hardwarebeschleuniger mit dem Prozessor gekoppelt. Durch die Kopplung des Hardwarebeschleunigers mit der CPU ist man in der Lage, rechenintensive Prozesse auf den Hardwarebeschleuniger auszulagern. Eine enge Kopplung ist notwendig, um einen schnellen Datenaustausch zwischen CPU und Hardwarebeschleuniger durchzuführen.
Besonders bevorzugt enthält der Hardwarebeschleuniger einen Logikbaustein zur parallelen Datenverarbeitung. Durch den Einsatz eines Logikbausteins wird die Ausführung der Berechnungen des Verfahrens direkt mit dem Logikbaustein kodiert und unter Berücksichtigung einer parallelen und gepipelinter Ausführung der Operation wird die Geschwindigkeit bei der Ausführung um einen Faktor 100-1000 im Vergleich zum Einsatz herkömmlicher Verfahren erreicht.
Bevorzugt ist der Logikbaustein ein programmierbarer Logikbaustein. Dadurch ist eine besondere Flexibilität in den Bewertungs Vorschriften bei den verschiedenen Bewertungsschritten erreichbar.
Vorzugsweise ist der programmierbare Logikbaustein ein field-programmable-gate-array (FPGA). Der FPGA besitzt eine besondere Flexibilität im Bezug auf die Auswahl der Bewertungsvorschrift und ist somit in der Lage, diese in nur wenigen Millisekunden zu wechseln. Zudem ist die interne Struktur des FPGAs besonders geeignet, um die Verarbeitungsmatrix und die Bewertungsvorschrift parallel und gepipelined auszuführen. Daraus ergibt sich ein Geschwindigkeitsfaktor von 100-1000.
Bevorzugt ist der Logikbaustein ein ASIC. Die Ausführung als ASIC ist besonders bei einem sich nicht weiter veränderten Verfahren von Vorteil, da durch den Einsatz eines ASICs eine höhere Verarbeitungsgeschwindigkeit erreicht werden kann und aufgrund der höheren Packungsdichte weniger Siliziumfläche benötigt wird.
Besonders bevorzugt enthält die Vorrichtung eine computerlesbare Speichereinheit oder ein computerlesbares Speichermedium.
Diese können sowohl in einem Host Rechner und/oder in dem Hardwarebeschleuniger angeordnet sein. Durch den Einsatz des Speichers werden die zu verarbeitenden Daten gespeichert und können während der Berechnungsvorschrift schnell und ohne große Verzögerung direkt für die Berechnungen eingesetzt werden. Der Speicher auf dem Host Prozessor enthält neben den Daten auch die Programmbefehle und kann auch dort ohne Verzögerungen arbeiten.
Vorteilhafterweise umfaßt die Speichereinheit oder das Speichermedium aufgezeichnete Daten der Parameterfolgen des Verfahrens. Der Vorteil, der sich durch die Speicherung der Daten der Parameterfolge ergibt, ist zum einen der direkte und nicht verzögerte Zugriff auf die Daten. Zum anderen kann der Speicher auf dem Hardwarebeschleuniger sowohl für die zu verarbeitenden Daten und gleichzeitig auch für die Ergebnisdaten genutzt werden. Dieser Speicher wird somit zweimal verwendet.
Es versteht sich, dass die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
Vorteilhafte, nicht einschränkende, Ausgestaltungen der Erfindung, sind weiter in den Zeichnungen und der dazugehörigen Beschreibung erläutert. Hierbei zeigen:
Fig. 1 eine schematische Darstellung der erfindungsgemäßen Vorrichtung;
Fig. 2 den Aufbau eines Verarbeitungselements (Matrixzelle);
Figur 3 eine schematische Darstellung der erfindungsgemäßen Vorrichtung und den
Ablauf des erfϊndungsgemäßen Verfahrens darin;
Figur 4 ein Flussdiagramm zur Darstellung des Ablaufs des erfindungsgemäßen
Verfahrens;
Figur 5a einen Ausschnitt aus dem schematisierten Verfahrensablauf;
Figur 5b eine Matrix der erfindungsgemäßen Vorrichtung und das darin ablaufende
Verfahren beim Vergleich zweier Oligonukleotidketten.
Figur 1 zeigt eine schematische Darstellung der erfindungsgemäßen Vorrichtung 100. Die erfindungsgemäße Vorrichtung .100 umfaßt dabei eine Kombination einer CPU (central processing unit) 101 in Kombination mit einem Hardwarebeschleuniger 102, wobei diese beiden Komponenten 101 und 102 über eine Schnittstelle 103 miteinander verbunden sind.
Die CPU 101 kann sich in einem nicht dargestellten sogenannten Host-Computer befinden. Der Host-Computer kann dabei beispielsweise ein PC, eine Workstation, ein embedded processor oder ein Server sein oder aber auch in Peripheriegeräten, bsp. Analysegeräten vorliegen. Der Host-Computer umfaßt Komponenten wie CPU, Speicher, Ein/Ausgabegeräte und/oder weitere dem Fachmann an sich bekannte Peripheriegeräte, sowie Busse und Schnittstellen. Ein Anwendungsablauf mit der erfindungsgemäßen Vorrichtung 100 erfolgt folgendermaßen: Daten werden durch einen Benutzer in den Host- Computer eingegeben und/oder aus schon vorhandenen Dateien gelesen. Die dort eingegebenen Daten können auf dem Host-Computer in der CPU 101 vorverarbeitet werden oder alternativ dazu im Hardwarebeschleuniger 102 Die vorverarbeiteten Daten werden dann über die Schnittstelle 103 an den Hardwarebeschleuniger 102 übertragen. Auf dem Hardwarebeschleuniger 102 erfolgt die Berechnung dieser Daten unter Verwendung
einer oder mehrerer in Figur 1 nicht dargestellter Logikeinheiten oder in einer in Figur 1 ebenfalls nicht dargestellten parallelen Struktur zur parallelen Datenverarbeitung. Nach Beendigung der Berechnung werden die Ergebnisdaten über die Schnittstelle 103 an den Host-Computer/CPU 101 zurück übertragen. Dort erfolgt eine Nachbearbeitung der Daten und die Ergebnisse werden einem Benutzer auf einem Bildschirm angezeigt und vorzugsweise in einer Datei abgespeichert.
Die Komponenten der erfindungsgemäßen Vorrichtung 101 sind nachstehend weiter erläutert:
CPU 101:
Unter CPU wird eine „Central Processing Unit", das heißt eine zentrale Recheneinheit verstanden. Die CPU 101 führt in den Hauptspeicher geladene Programme aus. Die CPU 101 ruft die Anweisungen der Programme ab, prüft sie und führt sie nacheinander aus. Die CPU 101 kann verschiedene Komponenten umfassen, wie zum Beispiel eine Steuereinheit, eine arithmetische logische Einheit (ALU) und Register. Die Komponenten sind über einen Bus miteinander verbunden. Er besteht aus mehreren parallel verlaufenden Leitungen für die Übertragung von Adressen, Daten und Steuersignalen. Busse können auch außerhalb der CPU liegen und verbinden diese mit dem Speicher und verschiedenen Ein- /Ausgabegeräten. Die CPU 101 kann weiterhin vorzugsweise standardisierte Schnittstellen zu Gerätekomponenten wie beispielsweise einem Hardwarebeschleuniger aufweisen. Die CPU 101 kann eine herkömmliche CPU sein, die sich auf einem einzigen herkömmlichen CPU-Chip befindet, wie zum Beispiel ein INTEL Pentium I/II/III/IV Prozessor-Chip, Intel PowerPC, embedded Prozessor strongARM von ARM.
Schnittstelle 103:
Weiter ist in der erfindungsgemäßen Vorrichtung gemäß Figur 1 eine Schnittstelle 103 dargestellt. Die Schnittstelle 103 hat die Aufgabe, eine bidirektionale Datenübertragung zu
ermöglichen. Alternativ dazu sind natürlich auch zwei unidirektionale Verbindungen möglich. In dem erfindungsgemäßen Zusammenhang bedeutet „bidirektionale Datenübertragung", dass sowohl Daten von Host-Computer/CPU 101 auf den Hardwarebeschleuniger 102, als auch von Hardwarebeschleuniger 102 auf den Host- Computer/CPU 101 übertragen werden können.
Schnittstellen 103 im Sinne der Erfindung sind beispielsweise ein PCI Bus oder sie können auch Bestandteil der CPU 101 des Host-Computers oder Bestandteil der parallelen Recheneinheit im Hardwarebeschleuniger 102 sein, sind aber nicht beschränkt darauf. Unter einem PCI Bus versteht man einen sogenannten „Peripheral Component Interconnect" Bus. In der erfindungsgemäßen Vorrichtung 100 wird dieser Bus zur Kommunikation von CPU 101 und Hardwarebeschleunigerl02 eingesetzt. An den PCI Bus können auch weitere Geräte angeschlossen werden. Außerdem können weitere solcher Busse in der Vorrichtung enthalten sein, die zur Kommunikation auch zwischen anderen Gerätekomponenten dienen. Der PCI Bus ist ein sehr beliebter Bus, der sich praktisch in jedem Intel-basierten Computer seit dem Pentium befindet. Der PCI Bus wird ausführlich in Shanley, T. und Anderson, D.: PCI System Architecture, 3. Aufl., Reading, MA, Addison-Wesley, 1995b und Solari E. und Willse, G.: PCI Hardware and Software Architecture and Design, 4. Aufl. San Diego, CA, Annabooks 1998 beschrieben. Der PCI Bus läuft mit ungefähr 32/33 oder aber auch 64/66 MHz, was einer Zykluszeit von 15 ns entspricht. Er handhabt 32 oder 64-Bit-Transfers, das heißt, es werden 32 bzw. 64 Bit pro Zyklus befordert. Er hat eine sehr hohe Bandbreite von insgesamt 528 Mbyte/s.
Andere mögliche Schnittstellen können beispielsweise ein ISA Bus (ISA bedeutet „Industry Standard Architecture") oder ein EISA Bus (EISA bedeutet „Extended ISA"), USB, PCI-X, Fire Wire, PCMCIA, ein Bussystem innerhalb eines Systems-on-a-Chip,
Verbindungsnetzwerk auf dem Chip Die sein. Dabei können die Schnittstellen Bestandteil einer CPU oder eines Prozessors zur parallelen Datenverarbeitung sein.
Hardwarebeschleuniger 102:
Weiter ist in der erfindungsgemäßen Vorrichtung 100 gemäß Figur 1 ein Hardwarebeschleuniger 102 dargestellt. Der Hardwarebeschleuniger 102, der auch mit dem Begriff „Koprozessor" bezeichnet werden kann, kann eine Vielzahl von Komponenten umfassen. Kern des Hardwarebeschleunigers 102 ist eine in Figur 1 nicht dargestellte Logikeinheit zur parallelen Datenverarbeitung. Diese Logikeinheit kann beispielsweise aus ein oder mehreren programmierbare FPGA-Chips (FPGA bedeutet „Field Programmable Gate Array, siehe auch The Programmable Logic Data Book, 1999; Xilinx Inc. 2100 Logic Drive, San Jose, California 95124, USA), ein oder mehreren hybriden FPGA-Chips, ein oder mehreren ASIC-Chips, Logikbausteinen, analogen Schaltungen oder CPU-Clustern oder aus Kombinationen davon zusammengesetzt sein. Unter einem hybrider Chip versteht man eine Kombination aus einem „traditionellen" CPU und einem FPGA Baustein. Diese beiden Prozessorelemente sind in einem Gehäuse untergebracht. Der Datenaustausch zwischen der CPU und dem FPGA Gore wird über entsprechende Interconnects ausgeführt. (Xilinx Virtex II Pro Data Book http://www.xilinx.com/publications/products/v2pro/ds pdf/ds083.htm )
Falls im Hardwarebeschleuniger ein FPGA-Chip zum Einsatz kommt, so sind für den Betrieb des Hardwarebeschleunigers folgende Komponenten typischerweise, aber nicht ausschließlich, notwendig: ein FPGA-Baustein, ein RAM-Baustein, ein Takt-Generator, ein PCI-Schnittstellenbaustein, eine PCI-Karte, eine programmierbare Kontrolllogikeinheit sowie ein Betriebssystem. Bei anderen Hardwarebeschleunigerarchitekturen, beispielsweise bei der Verwendung eines ASICs oder eines CPU-Clusters werden
verschiedene Bausteine nicht, beziehungsweise nicht in der vorstehenden Konfiguration oder aber andere Bausteine benötigt.
Die Parallelität in der erfindungsgemäßen Vorrichtung 100 kann auf verschiedenen Ebenen eingeführt werden. Auf der Instruktionsebene (Anweisungen) können zum Beispiel Pipelining (paralleles Verarbeiten in pipelines und paralleles pipelining) angewandt werden. Siehe Agerwala, T. und Cocke, J.: High Performance Induced Instruction Set Processors, IBM T.J. Watson Research Center Technical Report RC12434, 1987. Mit einem sogenannten „gepipelinten" Design kann die Leistung des Computers gegenüber einem rein sequenziellen Design um ungefähr einem Faktor 10-100 gesteigert werden. Um eine Leistungssteigerung mit einem Faktor 100 bis zu mehreren 1000 zu erzielen zu können, müssen jedoch eine Vielzahl von Instruktionspipelines parallel verwendet werden, die alle effizient miteinander arbeiten müssen. Im Rahmen der Erfindung wird neben der Parallelität der Datenverarbeitung auf Instruktionsebene besonders eine Parallelität der Datenverarbeitung in den Pipelines bevorzugt angewendet. Dabei kann die Parallelität der Datenverarbeitung durch gleichzeitiges Arbeiten vieler ALUs, die sich entweder auf einem Chip, wie beispielsweise auf einem FPGA-Chip, befinden und/oder, wie es bei Mehrprozessorsystemen oder Mehrrechnersystemen der Fall ist, auf viele Chips verteilt sind, bewirkt werden. Solche Mehrprozessor- oder Mehrrechnersysteme besitzen mehrere unabhängige CPUs, die als Teil eines größeren Systems arbeiten.
Die Datenübertragung von der CPU 101 zum Hardwarebeschleuniger 102 über die Schnittstelle 103 ist abhängig von der Richtung der Übertragung, die durch die Pfeile in Figur 1 zwischen der CPU 101 und dem Hardwarebeschleuniger 102 dargestellt sind und zwei nachstehende beschriebene zwei Datentransferwege umfassen, die jedoch nur
beispielhafte aber nicht einschränkend verstanden werden sollen. Alternativ zu der Übertragung der Daten als Datenworte kann die Übertragung der Daten auch bitseriell erfolgen. Die Daten können als ASCII (Standardisierter Zeichensatz) Zeichenstrom, als binär kodierter Bitstrom oder unter Verwendung einer anderen geeigneten Kodierung übertragen werden. Auch eine Übertragung mit verschlüsselten Daten ist mit einzubeziehen.
Datentransfer 1: Der Datentransfer von der CPU 101 zum Hardwarebeschleuniger 102 benutzt ein in Figur 1 nicht dargestelltes Datenpaket, das von der CPU 101 auf den Hardwarebeschleuniger 102 übertragen wird. Das Datenpaket umfaßt beispielsweise einen sogenannten Header, der aus zwei Datenworten besteht und die Anzahl der nachfolgenden Daten und die Offset-Position, ab der die Daten in den ersten RAM gespeichert werden definiert. Die darauf folgenden Daten werden in einer aufsteigenden Reihenfolge in den RAM gespeichert. Natürlich ist jeder andere dazu äquivalente, dem Fachmann an sich bekannte Aufbau ebenfalls für den vorstehend beschriebenen Datentransfer geeignet.
Datentransfer 2: der Datentransfer vom Hardwarebeschleuniger 102 zur CPU 101 fordert die Daten durch das Schreiben eines Datenpakets, das nur einen Header enthält an. Die Daten werden dann von der CPU 101 direkt gelesen und im Speicher eines dazugehörigen Host-Computers abgelegt. Natürlich ist jeder andere dazu äquivalente, dem Fachmann an sich bekannte Aufbau ebenfalls für den vorstehend beschriebenen Datentransfer geeignet.
Vorteilhafterweise werden die Daten zwischen dem Host-Computer und dem Hardwarebeschleuniger per DMA Mode in einem Burst übertragen, um eine minimale Datenübertragungszeit erreiche, wobei natürlich auch andere, dem Fachmann an sich bekannte Übertragungsweisen erfindungsgemäß eingesetzt werden können.
Figur 2 zeigt den Aufbau eines Matrixelements 200, das ein Bestandteil einer in Figur 2 nicht dargestellten Matrix ist. Diese Matrix wiederum ist Bestandteil eines in Figur 2 nicht dargestellten Hardwarebeschleunigers, beispielsweise eines Hardwarebeschleunigers 102 gemäß Figur 1. Die Pfeile in Figur 2 zeigen schematisch den Ablauf des erfindungsgemäßen Verfahrens in einem derartigen Matrixelement 200. Ein Matrixelement 200 definiert ein Verarbeitungselement innerhalb einer Prozessoreinheit in dem Hardwarebeschleuniger. Das Matrix- bzw. Verarbeitungselement in einer speziellen Ausführungsform ist beispielsweise eine 8-Bit-Multiplikator (Arithmetische Logische Einheit), es kann aber auch eine beliebige arithmetische und oder logische Einheit, oder eine CPU, mehrere Zellen, ein ASIC oder ein Cluster verschiedener oder gleicher Prozessoren sein. Es kann beispielsweise ebenfalls ein hybrider Chip sein. Unter einem hybriden Chip versteht man eine Kombination aus einer „traditionellen" CPU und einem FPGA-Baustein. Diese beiden Prozessorelemente sind in einem Gehäuse untergebracht. Der Datenaustausch zwischen der CPU und dem FPGA-Core wird über entsprechende Interconnects ausgeführt (siehe z.B. Xilinx Virtex II Pro Data Book http:// www.xilinx.com/publications/products/v2pro/ds pdf/ds083.htm . Ein Verarbeitungselement kann aus einer Gruppe von Registern (1 bis 32 Bit), die einen lokalen Speicher bilden, und einer arithmetischen logischen Schaltung, die man ALU nennt, zusammengesetzt sein. Die ALU kann einfache arithmetische Operationen durchführen. Die Register sind mit der ALU verbunden; dies ist der Datenweg, über den die Daten fließen. Als grundlegende Operation wählt der Datenweg eines oder zwei Register. Der Datenweg besteht weiterhin aus mehreren Bussen, die diese Teile miteinander verbinden. Die ALU selbst führt Additionen, Subtraktionen und andere einfache Operationen mit den ihr zugeführten Eingaben aus und liefert so, beispielsweise im Ausgaberegister, ein Ergebnis. Das Ergebnis kann auch in einen anderen Speicher abgelegt werden. Diese arithmetischen Rechenoperationen werden durch logische Schaltungen verwirklicht. Diese Schaltungen sind winzige Schaltelemente, die in integrierten Schaltchips, beispielsweise
dem Chip der Matrix, die beispielsweise ein FPGA-Chip sein kann, einzeln oder in Kombination enthalten sind. Diese Schaltelemente, die man auch Gates nennt sind üblicherweise AND, EXOR, OR, NAND, NOR und NOT. AND, EXOR, OR, NAND und NOT sind, Symbole der Boolschen Algebra. Einfache Schaltungen können durch Kombination einzelner Gates realisiert werden. Die Komponenten von Speichern können Flip-Flop Schaltungen, oder auch Latches sein. Diese Schaltungen lassen sich zu mehreren und auch untereinander zu komplexeren Speichern kombinieren. Die verschiedenen Komponenten, wie Schaltungen für arithmetische Operationen und Speicher werden über Busse verbunden.
Der Pfeil A in Figur 2 stellt das i-te Element einer ersten in Figur 2 nicht dargestellten Parameterfolge 1 dar. In einer speziellen Ausführungsform ist das i-te Element beispielsweise eine Base eines Oligonukleotids, wie zum Beispiel eine DNA/RNA/LNA oder Chimären davon. Der Pfeil B in Figur 2 stellt das j-te Element einer zweiten ebenfalls in Figur 2 nicht dargestellten Parameterfolge 2 dar. Dabei können j und i gleich oder verschieden sein. In einer speziellen Ausführungsform ist das j-te Element beispielsweise eine Base eine Oligonukleotids, wie zum Beispiel einer DNA/RNA/LNA oder Chimären davon.
Die Parameterfolgen werden jeweils an die beiden Eingänge 208 für die Parameterfolge lund 209 für die Parameterfolge 2 der Matrix angelegt. Der Aufbau der Datenverarbeitung ist beispielsweise bei einem Vergleich so angelegt, dass mit jedem Takt ein Datenwort in die Matrix eingespeist werden kann. Innerhalb der einzelnen Zellen der Matrix werden die Vergleiche auf eine komplementäre Übereinstimmung ausgeführt. Dieser Vergleich wird über eine sogenannte LookUp Tabelle (LUT) ausgeführt, die als Ergebnis den
Gewichtungsfaktor der Übereinstimmung ausgibt. Eine LUT (LookUp Table) entspricht einem ROM (Read Only Memory) oder einem RAM (Random Access Memory), das anwenderspezifisch Werte gespeichert hat. Beim Vergleich von mehreren möglichen Eingangsparametern ist man in der Lage, innerhalb eines Taktes eine Übereinstimmung oder eine komplementäre Übereinstimmung zu ermitteln und als Ergebnis auszugeben. Die zu vergleichenden Parameter werden dabei als Adressen an die LUT angelegt und der adressierte Wert, der für diese Adresse in der LUT gespeichert ist, entspricht dem Ergebnis des Vergleichs.
Bei der besonderen, vorstehend erwähnten Ausführungsform der Matrix sind die Parameterfolgen 1 und 2 Basen eines Oligonukleotids, wie zum Beispiel einer DNA/RNA/LNA oder Chimären davon. Dabei werden die einzelnen Basen der Parameterfolgen 1 und 2 mit jeweils zwei Bits kodiert und an die Matrixzelle 200 angelegt. Der Vergleicher ist als eine LookUp Tabelle angelegt, die einem ROM (Read Only Memory) oder einem RAM (Random Access Memory) entsprechen. Die beiden Inputs der beiden Parameterelemente i und j werden als Adresse der LookUp Tabelle verwendet. In dem adressierten Eintrag ist das Ergebnis kodiert, das dann sofort an den Ausgang weitergeleitet wird. Die Gewichtungsfunktion ist somit direkt mit dem Vergleich in der LookUp Tabelle integriert.
Ganz allgemein kann der Vergleich und die anschließende Gewichtung auch durch beliebige arithmetische Funktionen wie Addition, Multiplikation, usw. oder aber auch durch Kombinationen aus diesen entstehen. Auch die Gewichtung des Ausgangs kann eine komplexere Funktion darstellen, die zum Beispiel durch weitere Eingangssignale beeinflusst werden kann.
Jede Matrixzelle 200 ermittelt das Ergebnis parallel und stellt es der nachfolgenden Stufe zur Verfügung. Das Register 207 zur Zwischenspeicherung der Ergebnisse ist optional.
Figur 3 zeigt eine detaillierte Darstellung der erfindungsgemäßen Vorrichtung 300. Es sind die beteiligten Komponenten innerhalb des Host-Computers 301, insbesondere der Host- Prozessor (CPU) 306, der Schnittstelle 304 und des Hardwarebeschleunigers 302 dargestellt. Weiterhin veranschaulicht Figur 3 den Ablauf des erfindungsgemäßen Verfahrens, insbesondere den Datenfluß in den Hardwarekomponenten der erfindungsgemäßen Vorrichtung 300.
Auf der Seite des Host-Prozessors 306 zeigt Figur 3 einen Arbeitsplatzrechner Host- Computer 301 mit einer üblichen, dem Fachmann an sich bekannten Ausstattung. Diese Ausstattung beinhaltet den Host-Computer 301, Eingabegeräte wie Maus und Tastatur 308, einen Monitor 307 als Anzeigegerät und eine Netzwerkkarte 309 und weiteren optionalen üblichen Hardwarekomponenten 310. Derartige Hardwarekomponenten 310 können Peripheriegeräte, wie zum Beispiel ein CD-ROM-Laufwerk, ein Diskettenlaufwerk, Videokarte, Grafikbeschleuniger, und ähnliches sein. Bei der Darstellung in Figur 3 handelt es sich um eine mögliche Konfiguration. Denkbar ist auch ein Host-Computer 301 mit nur einer Netzwerkkarte, der dann „Remote", das heißt durch entfernte Steuerung, über das Netzwerk von einem zweiten Rechner aus benutzt wird. Ebenso ist auch ein sogenanntes „embedded processing" mittels embedded Systems (eingebettete Systeme/Prozessoren) beispielsweise in peripheren Analysegeräten möglich. Auf der Seite des Hardwarebeschleunigers 302 zeigt die Figur 3 einen Hardwarebeschleuniger 302, der mit einem FPGA-Baustein 303 ausgestattet ist und mit den dafür notwendigen Komponenten. Natürlich sind auch mehrere FPGA Bausteine in einer erfindungsgemäßen Vorrichtung 302 einsetzbar. Im folgenden sind die Aufgabe und Funktionsweise der Komponenten erläutert:
PCI-Schnittstellenbaustein 322 und PCI-Bus 304:
Bei dem PCI-Bus 304 handelt es sich um ein Medium, über das mehrere Karten/Geräte Daten austauschen. Der PCI-Schnittstellenbaustein 322 hat die Aufgabe, die Datenübertragung über den PCI-Bus 304 zu managen und nur die für den Hardwarebeschleuniger 302 relevanten Daten an die auf dem Hardwarebeschleuniger 302 angeschlossenen Bausteine weiterzuleiten.
Kontrolllogik 320:
Die Kontrolllogik 320 hat die Aufgabe, eine grundlegende Funktionalität zum Betreiben des Hardwarebeschleunigers 302 bereitzustellen. Zu dieser Funktionalität gehört u.a. die Konfiguration des FPGA-Bausteins 303. Diese Grundfunktionalität kann als ein „quasi Betriebssystem" für den Hardwarebeschleuniger 302 gesehen werden. Die Kontrolllogik 320 wird beispielsweise vom Host-Computer 301 aus oder direkt vom Hardwarebeschleuniger 302 angesteuert. Es gilt zu beachten, dass diese Kontrollogik 320 insbesondere beim Einsatz der FPGA-Technologie notwendig ist. In dem erfindungsgemäßen Hardwarebeschleuniger 303 wird bevorzugt eine programmierbare lokale oder externe (host library) Kontrolllogik 320 verwendet. Beim Einsatz eines Konfigurationsspeichers, z.B. eines EEPROM, der sich sowohl außerhalb, aber auch innerhalb, des FPGAs befinden kann, ist die Kontrolllogik nicht in vollem Umfang notwendig und kann für diese Fälle auch komplett entfallen.
Taktgenerator 321:
Zum Betreiben, insbesondere zum synchronen Betreiben, der Bausteine auf dem Hardwarebeschleuniger 302 ist ein Taktgenerator notwendig. Dieser kann in der Frequenz
eingestellt werden. Der Taktgenerator 321 wird von Host-Computer 301 aus kontrolliert. Alternativ kann auch ein fest eingestellter Taktgenerator 321 zum Einsatz kommen. Der Taktgenerator 321 dient der Synchronisation digitaler Schaltungen. Mit Hilfe des Taktgenerators 321 können Zeitrelationen definiert werden, um beispielsweise die zeitliche Reihenfolge, in der Ereignisse passieren sollen festzulegen oder die Gleichzeitigkeit von Ereignissen zu synchronisieren.
RAM-Bausteine 305:
Mit Hilfe der RAM Bausteine 305 werden Daten gespeichert. Die RAM-Bausteine 305 können sowohl innerhalb des Prozessorelements als auch extern vorhanden sein. Ihre Anzahl ist beliebig wählbar und wird entsprechend den Rechenanforderungen ausgewählt sein.
Prozessor Element (FPGA) 303:
Die Matrix 325 im Hardwarebeschleuniger 302, die als Prozessor Element definiert ist kann in einer speziellen Ausführungsform der Erfindung ein FPGA-Baustein 303 sein. Ein FPGA-Baustein, bzw. -Prozessor gehört zu der Klasse der Arrayprozessoren. Ein Arrayprozessor basiert auf dem Grundkonzept, dass eine Steuereinheit zur Lenkung vieler Matrixelemente, die auch als Verarbeitungselemente definiert sind, Signale bereitstellt, das heißt sie sendet Instruktionen. Jedes Verarbeitungselement besteht aus einer CPU oder einer erweiterten ALU und kann einen lokalen Speicher besitzen. Da alle Teile von einer Steuereinheit gesteuert werden, marschieren die Verarbeitungselemente in dicht geschlossenen Gliedern.
In dem in Figur 3 dargestellten Ausführungsbeispiel ist ein FPGA-Prozessor 303 dargestellt. Der bei dem Ausführungsbeispiel verwendete FPGA Baustein besitzt Verarbeitungselemente, die als Configurable Logic Block (CLB konfigurierbare logische Zellen) bezeichnet werden und die über eine oder mehrere 4 Bit LookUp Tabellen, eine oder mehrere 1 Bit Register und weitere logische Grundschaltungen verfügen. Die physikalische Matrixgröße der CLB ist typischerweise zwischen 10x10 und 106xl0 r>66.
Weitere nicht beschränkende Beispiele für die Matrix erfindungsgemäßer Verarbeitungselemente (FPGA Bausteine) sind in der nachfolgenden Tabelle 1 angegeben:
Tabelle 1: Beispiele für Verarbeitungselemente und deren Matrixgröße.
Ein Matrixelement besitzt dabei 4 x 4 Bit LUTs (The Programmable Logic Data Book 2000; Xilinx Inc.) Die Verarbeitungselemente aus Tabelle 1 sind von der Firma Xilinx
erhältlich. Es versteht sich von selbst, dass erfindungsgemäß auch andere Verarbeitungselemente mit anderen, beispielsweise noch größeren Matrizen verwendet werden können.
Durch das Zusammenschalten mehrerer CLBs kann so innerhalb des FPGAs eine Verarbeitungsmatrix aufgebaut werden, deren physikalische Matrixgröße zwischen lxl und 106xl06, bevorzugt zwischen 16x16 und 30x30 liegt. Die Größe der Verarbeitungsmatrix und der einzelnen Matrixelemente selbst sind bevorzugt vorab fest definiert, aber auch variabel definiert. Innerhalb der Zellen der Verarbeitungsmatrix werden logische Vergleiche mittels einer LUT und den beiden anliegenden Werten ausgeführt. Natürlich ist jede logische oder arithmetische Operation, z.B. eine Multiplikation, innerhalb einer Zelle der Verarbeitungsmatrix denkbar und durch Zusammenschalten von zwei oder mehreren CLB des FPGA Bausteins erreichbar.
In einem FPGA-Prozessor 303 sind die Verarbeitungselemente innerhalb einer Matrix 325 angeordnet und sind auf komplexe Weise miteinander verbunden. Solche Prozessoren sind besonders geeignet für die Bearbeitung zweidimensionaler Probleme und passen besonders gut zu Matrizen. Sie lassen sich auch gut höherskalieren, indem weitere Prozessoren zu dem im Hardwarebeschleuniger vorhandenen Prozessoren hinzugefügt werden. Damit steigt die Rechenleistung an, das heißt es können damit wesentlich mehr Parameter zur gleichen Zeit bearbeitet werden. Die Hardware lässt sich damit an die Problemstellung anpassen: Durch die Anzahl und Anordnung der verwendeten Prozessoren können damit auch höherdimensionale Matrixprobleme bearbeitet werden, wie zum Beispiel bei einem gleichzeitigen Vergleich von mehr als zwei Parameterfolgen. Außerdem können mit einer größeren Anzahl an Prozessoren längere Parameterfolgen verarbeitet oder verglichen
werden. Bei den erfindungsgemäßen Datenflussprozessoren kann entweder die Steuereinheit bestimmen, welche Instruktionen auszuführen sind, oder aber jedes Verarbeitungselement 303 selbst entscheiden, ob es eine Instruktion ausführen will oder nicht, meist auf der Grundlage lokaler Daten, wie Bedingungscodebits. In dem Ausführungsbeispiel in Figur 3 ist innerhalb des Prozessorelements 303 ein Ablaufcontroller 323 vorhanden. Dieser steuert den Datenfluß im Prozessorelement 303. Er steuert die Verarbeitungselemente und Speicherelemente 305, die sowohl innnerhalb des Prozessors 303 als auch extern vorhanden sein können.
Die Pfeile symbolisieren den Ablauf des erfindungsgemäßen Verfahrens in einer erfindungsgemäßen Vorrichtung 300.
Das erfindungsgemäße Verfahren wird weiter anhand eines Verfahrens zur Bestimmung von Primersequenzen beispielhaft veranschaulicht, ohne daß darunter eine Beschränkung des erfindungsgemäßen Verfahrens verstanden werden soll.
Für die Bestimmung der Primer werden zunächst jeweils zwei Sequenzbereiche aus jeder zu detektierenden Sequenz (Target Sequenz) ausgewählt. Diese Bereiche sind in der regel länger als der zu findende optimale Primer für jeweils eine Targetsequenz. Zusätzlich werden für die Bestimmung der Primer weitere Parameter berücksichtigt (u.a. Primerlänge, Temperatur etc.). Diese Parameter bestimmen die Auswahlkriterien für die Bewertungsfunktion. Innerhalb der Berechnung durchlaufen die potentiellen Primerkandidaten für jede gegebene Targetsequenz mehrere Berechnungsverfahren. Eines dieser Bewertungsverfahren ist der eins zu eins Vergleich einzelner Basenpaare. Die Teilergebnisse werden in einer Gesamtbewertung zu einem Ergebnis zusammengefügt.
Die gesamte Berechnung unterteilt sich in zwei Stufen. In der ersten Stufe werden die einzelnen Primer separat evaluiert und die optimalen Primer ermittelt. In der zweiten Stufe wird die Interaktion zwischen den Primern jeder einzelnen Targetsequenz mit den Primern aller anderen Targetsequenzen untersucht.
Im folgenden wird die erste Stufe der Berechnung beschrieben. Dabei sind diese Berechnungen weiter unterteilt in die Bereiche a) Primergenerierung, b) Berechnung der Parameter des Primers c) Bewertung der ermittelten Werte. Diese drei Bereiche a), b) und c) werden in den nachfolgenden Abschnitten näher erläutert.
Die Primergenerierung,, das heißt die Zusammenstellung der Primer erfolgt folgendermaßen: Aus einer vorgegebenen DNA-Sequenz sind einzelne Primer zu extrahieren, die der Berechnung zugeführt werden. Die Extrahierung der Primer erfolgt auf der Basis der gegebenen DNA-Sequenz und der Längenvorgabe für die Primer. Für jede Länge wird eine vorab bestimmbare Anzahl an Primern erzeugt. Die Anzahl berechnet sich durch:
Anzahl Primer = (DNA-Sequenzlänge) - (Primerlänge) + 1
Bedingung: die DNA Sequenz ist länger, d.h. weist mehr Nukleosidbausteine auf als der Primer.
Beginnend an der ersten Sequenzposition werden die Primer ermittelt. Dieser Vorgang wird für jede gegebene Primerlänge wiederholt.
Ist die DNA Sequenz beispielsweise:
agtcagtcgatgcgatgtacgtgtacgta
und soll die Primerlänge bei 10-11 Basen liegen, so werden folgende Primer ermittelt: 10 Basen besitzen sind folgenden Primer:
agtcagtcga, gtcagtcgat, tcagtcgatg,..., cgtgtacgta,
und 11 Basen besitzen die folgenden Primer:
agtcagtcgat, gtcagtcgatg, tcagtcgatgc,..., acgtgtacgta.
Es müssen nun die Parametersätze für das optimale Primerset bestimmt werden. Dazu gibt es folgende wichtige Randbedingungen: Die Primer dürfen nicht mit sich selbst binden, aber auch nicht mit den weiteren auf dem Chip. Die Primer dürfen ebenfalls nicht mit den Markern binden. Die erste und zweite Randbedingung gilt ebenfalls für Marker.
Bei der Berechnung werden alle möglichen Kombinationen des Primers (die durch die erste Stufe „Primergenerierung" ermittelt werden) mit den Reverse Primer untersucht.
Die zu berechnenden Parameter sind: a) Seif Annealing (SA), b) Seif End Annealing (SEA), c) Weitere Berechnungen (Zusatzfunktionalitäten wie beispielsweise Temperatur und GC- Verhältnis).
Die Berechnung der SA Werte wird durchgeführt, um eine Bindung (Reaktion) mit den gleichen Primer zu untersuchen. Erfolgt eine Bindung mit sich selbst, so wird die Bindung mit der zu suchenden Sequenz verhindert und ein falsches Untersuchungsergebnis wird produziert.
Es gibt folgende Berechnungsvorschrift: Die Berechnung erfolgt durch die Ermittlung aller möglicher Kombinationen der Überlagerung. Bei der Ermittlung des SA- Wertes werden nur die komplementären Übereinstimmungen (A<=>T und C<= G) zusammengezählt. Bei der Aufsummierung ist es unerheblich, wo sich die Übereinstimmungen befinden. Nur das Vorhandensein einer Übereinstimmung ist relevant. Die Gewichtung der gefundenen Kombination ist unterschiedlich (A«=»T = 2; G<=>C = 4). Es versteht sich von selbst, dass im Rahmen der Erfindung auch andere Gewichtungen möglich sind. Aufgrund der biologischen Eigenschaften muß der Primer nur in der reversen Abfolge gegen den Primer getestet werden. Beispielsweise wird der zu untersuchende Primer mit den 4 Basen AGTC gegen den reversen Primer CTGA folgendermaßen getestet: Für die Berechnung von SA gibt es 7 Überlagerungen zu bilden. In dem Beispiel werden die ersten beiden zu bewertenden Überlagerungen gezeigt, die weiteren 5 Überlagerungen sind durch Verschiebung des Reverse Primers gegenüber dem zu untersuchenden Primer, um jeweils eine Base zu bilden. Die erste Überlagerung ist:
Zu untersuchender Primer:
Die zweite Überlagerung ist:
Zu untersuchender Primer:
Reverse Primer:
Die insgesamt durchzuführenden Berechnungen für das Beispiel mit einer Länge von 4 Basen sind in der nachfolgenden Tabelle dargestellt:
Tabelle 1: Tabelle mit den für das 4 Basen Beispiel durchzuführenden Bewertungen bei der SA Berechnung
Übereinstimmungen sind fett markiert
Bei der Berechnung des SEA Wertes wird ebenfalls die Bindung der einzelnen Primer mit sich selbst getestet, um die Einsetzbarkeit des Primers zu bestimmen. Für die Berechnung der SEA Werte kommt ein sehr ähnliches Berechnungs verfahren wie im Fall der Bestimmung der SA Werte zur Anwendung. Für die Ermittlung der SEA werte sind nur die
Primerkombinationen interessant, die am Ende des Primers beginnen. Das heißt, für die Berechnung sind nur die Primerkombinationen zu berücksichtigen, bei denen die letzte Base mit einer Base des Reverse Primers interagieren kann, die bis zum ersten Auftreten einer Nicht-Übereinstimmung gefunden werden. Alle nachfolgenden Übereinstimmungen werden nicht hinzugezählt..
Beispielsweise wird wieder, wie im Falle der SA Werte Berechnung, der zu untersuchende Primer mit den 4 Basen AGTC gegen den Reversen Primer CTGA folgendermaßen getestet: Für die Berechnung von SEA gibt es 4 Überlagerungen zu bilden. In dem Beispiel werden die ersten beiden zu bewertenden Überlagerungen gezeigt, die weiteren 2 Überlagerungen sind durch Verschiebung des Reverse Primers gegenüber dem zu untersuchenden Primer, um jeweils eine Base zu bilden. Die erste Überlagerung ist:
Zu untersuchender Primer:
Die zweite Überlagerung ist:
Zu untersuchender Primer: A G
Reverse Primer: G A
Im Gegensatz zu der Werteermittlung bei der SA Berechnung, werden bei der SEA Berechnung nur die Übereinstimmungen aufaddiert, die sich beginnend bei der letzten Position im Primer bis zum Vorkommen der ersten Nichtübereinstimmung ergeben. Übereinstimmungen nach dieser Position werden nicht mit addiert.
Die Gewichtung der gefundenen Übereinstimmungen ist identisch mit der bei der SA Berechnung.
Zur Verdeutlichung dieser Berechnung sind die sich ergebenden Berechnungen in der nachfolgenden Tabelle zusammengefasst.
Tabelle 2: Tabelle mit den für das 4 Basen Beispiel durchzuführenden Bewertungen bei der SEA Berechnung
Übereinstimmungen sind fett markiert
Für jeden ermittelten Primer werden weitere Berechnungen ausgeführt, die für die spätere Gesamtbewertung des Primers hinzugezogen werden.
Die Bewertung der ermittelten Werte erfolgt für jeden in der ersten Stufe generierten Primer. Die ermittelten Werte für das SA und SEA und für die weiteren Berechnungen werden jeweils mit einem Gewichtungsfaktor zu einem Gesamtergebnis zusammengeführt. In einer speziellen Ausführungsform wird nur das erhaltenen Maximum als SA/SEA Wert übernommen und mit dem Gewichtungsfaktor addiert. Es versteht sich von selbst, daß eine andere Gewichtung und/oder Berechnungsvorschrift entsprechende Modifikationen erfordern , die der Fachmann ohne erfinderisch tätig zu werden sofort implementieren kann.
Zusätzlich zu der Ermittlung des Gesamtergebnisses werden die Einzelergebnisse mit den übergebenen Parametern verglichen. Die Parameter beschreiben dabei einen Bereich, in dem die Ergebnisse gültig sind. Bei einer Verletzung eines dieser Bereiche wird der berechnete Primer verworfen und als ungültig eingestuft.
Aus allen gültigen Werten werden die jeweils besten Primer ermittelt und für die Verarbeitung in der zweiten Stufe zwischengespeichert.
Im Folgenden wird die zweite Stufe der Berechnung beschrieben.
Um die Interaktion zwischen Primern der einzelnen Spots, zwischen Primern und Primermarkern und zwischen den Markern zu bewerten, kommen wiederum die Berechnungsverfahren SA und SEA zum tragen.
In dieser Stufe werden jedoch nicht die gleichen Primer gegen sich selbst getestet, sondern jeweils ein Primer (entspricht einem Ergebnis aus der ersten Stufe) wird gegen einen anderen Primer verglichen. Es wird also ein paarweiser Vergleich über alle möglichen Primerkombinationen durchgeführt.
Die zu berechnenden Parameter sind a) Pair Annealing (PA) und b) Pair End Annealing (PEA)
Die Berechnungsverfahren für PA und PEA entsprechen im Wesentlichen mit den Verfahren bei der Ermittlung des SA und des SEA Wertes, wobei offensichtlich Abweichungen natürlich auch unter den Umfang der vorliegenden Erfindung fallen. Details der Berechnung sind vorstehend erläutert. Die Berechnungsverfahren sind im Grundsatz gleich, jedoch kann das Berechnungs verfahren für die PA und PEA Berechnung beispielsweise auch Primer mit unterschiedlicher Länge verarbeiten.
Für jeden ermittelten Primer werden wiederum weitere Berechnungen ausgeführt, die für die spätere Gesamtbewertung des Primers hinzugezogen werden.
Im Folgenden wird dieser Verfahrensablauf mittels der erfindungsgemäßen Vorrichtung 300 durchgeführt. In dem speziellen nicht beschränkenden Ausführungsbeispiel wird das spezielle Verfahren der Primerbestimmung anhand von Figur 3 erläutert. Im nachfolgend beschriebenen Ausführungsbeispiel wurde das spezielle Verfahren zur Primerberechnung auf einem PC System (Pentium III 500 MHz) und einem FPGA Prozessor (microEnable 2 / 2 x 1 Mbyte RAM) umgesetzt. Dieses Ausführungsbeispiel beschreibt exemplarisch eine Umsetzung. Bei der Verwendung anderer Komponenten ändert sich natürlich das nachfolgend beschriebene Verfahren, ohne den Rahmen der Erfindung zu verlassen. Das Verfahren gliedert sich in fünf Schritte, die nachstehend beschrieben werden.
Schritt 1:
Auf dem Rechner 301, beziehungsweise dem Host Computer, läuft ein Programm, das die zu verarbeitenden Daten entgegennimmt und/oder einliest. Die eingegebenen Daten werden dann komprimiert und in ein, zur Übertragung geeignetes Datenformat umgewandelt. Nach erfolgter Erstellung des Datenformats, werden die Daten über die Schnittstelle 304 an den Hardwarebeschleuniger 302 übertragen und dort über den Schnittstellenbaustein 322 und den optionalen Ablauf Controller 323, der z.B. auch durch geeignete Software ersetzt werden kann in einem RAM Baustein 305 zwischengespeichert. Der Ablauf Controller 323 steuert das Einlesen der Primerdaten aus dem RAM Baustein 305. Dieses RAM kann sowohl innerhalb des Prozessor Elements 303 als auch als externer RAM Baustein ausgeführt sein. Dieser Schritt ist mit den mit einer „1" gekennzeichneten Pfeilen dargestellt. Mit zu dieser Übertragung gehört auch die Übertragung von Parameterdaten, die für die spätere Berechnung benötigt werden.
Schritt 2:
Nach der Übertragung startet die Verarbeitung der Daten auf dem Hardwarebeschleuniger 302. In diesem zweiten Schritt werden die einzelnen Primer aus den Sequenzdaten erzeugt und als Eingangsdaten 324 an die Matrix 325 zur Berechnung übergeben. Innerhalb der Matrix 325 werden sowohl die Werte für SA als auch SEA berechnet und anschließend an das Bewertungsverfahren 328 weitergegeben. Parallel dazu werden weitere Berechnungen 326, 327 auf der Basis der Primerdaten durchgeführt und ebenfalls dem Bewertungsverfahren 328 zugeführt. Diese Berechnung sind in Figur 3 als Berechnung 1 (326) bis Berechnung N (327) dargestellt. Die besten 64 Ergebnisse E werden dann in einem zweiten RAM Baustein 305 (extern oder intern) abgelegt. Diese Berechnung wird für jede der übergebenen DNA-Sequenzen durchgeführt. Dieser Schritt ist mit den mit einer „2" gekennzeichneten Pfeilen dargestellt.
Schritt 3:
Nach der Berechnung der einzelnen Primer werden die besten Paare von jeweils zwei aufeinanderfolgenden Primern ermittelt. Ermittelt werden jeweils die Primer Paar Daten eines geraden und eines ungeraden Primers (Pl + P2; P3 + P4; P5 + P6; usw.). Die Ergebnisdaten (von Schritt 2) werden aus dem zweiten RAM 305 ausgelesen. Parallel dazu werden auch die Sequenzdaten aus dem ersten RAM 305 ausgelesen. Die Verarbeitung dieser Daten übernimmt die gleiche Einheit der Matrix 325, wobei die parallel ausgeführten Berechnungen bei der Bewertung nicht berücksichtigt werden. Die Teilergebnisse der Primer aus der ersten Stufe werden dann mit den in dieser Stufe ermittelten Ergebnissen kombiniert. Die jeweils besten 5 Primerpaare einer Kombination (geraden mit ungeraden Primer) werden dann in dem zweiten RAM gespeichert. Dieser Schritt ist mit den mit einer „3" gekennzeichneten Pfeilen dargestellt.
Schritt 4:
In dem vierten Schritt der Verarbeitung werden die Daten aus dem zweiten RAM ausgelesen und an den Host Prozessor 306 übertragen. Ausgelesen werden sowohl die Ergebnisse aus Schritt 2 und Schritt 3. Dieser Schritt ist mit den mit einer „4" gekennzeichneten Pfeilen dargestellt.
Schritt 5:
Sobald die Übertragung der Daten zum Host Prozessor 306 beendet ist, werden die Ergebnisse einer Nachbearbeitung unterzogen. Bei der Nachbearbeitung werden die gefundenen Sequenzen selektiert und zusammen mit den ermittelten Ergebnissen dem Benutzer auf dem Monitor 307 dargestellt und in eine Datei geschrieben.
In dem speziellen Ausführungsbeispiel der Primerbestimmung des erfindungsgemäßen Verfahrensablaufs in Figur 3 werden die Daten in speziellen Datenformaten verwendet.
Die Daten werden innerhalb des Host-Computers 301 vorverarbeitet. Diese Vorverarbeitung konvertiert die Eingangsdaten in das nachfolgende Datenformat. Dieses Datenformat wird im Speicher des Rechners 301 vorbereitet. Die Datenübertragung erfolgt per DMA Zugriff. Die Datenformate für das Speichern der Daten in den beiden RAM- Bausteinen unterscheidet sich aufgrund der für die Berechnung benötigten Daten. Die Formate für die beiden RAM-Bausteine sind in den nachfolgenden Abschnitten definiert.
Das Datenformat der Sequenzdaten und Parameterdaten nach dem diese Daten in der RAM Bank 1 305 gespeichert sind, wird nachfolgend beschrieben.
Der Speicher ist unterteilt in 1024 Blöcke zu je 64 Worten ä 32 Bit. Jedes dieser Blöcke speichert eine Sequenz, aus der die jeweiligen Primer extrahiert werden. Im Anschluß an die 1024 Blöcke ist ein weiterer Block angehängt, der die Parameterdaten für den zweiten Teil der Berechnung enthält.
Es versteht sich von selbst, dass die Limitierung auf 1024 Blöcke und 64 Worte je Block keine grundsätzliche Limitierung darstellt, sondern eine frei gewählte Grenze für das spezielle Ausführungsbeispiel ist und je nach beabsichtigter Anwendung frei gewählt werden kann..
Bei dem Block mit den Parameterdaten für die zweite Berechnung handelt es sich um jeweils zwei 32Bit Worte für jedes Primerpaar, das berechnet wird. Innerhalb der beiden Worte werden die Parameterdaten für die PA und die PEA Berechnung gespeichert. Die in den beiden Worten gespeicherten Parameter sind: PA minimum, PA maximum und PA optimum, sowie PEA minimum, PEA maximum und PEA Optimum.
Zur Speicherung der Sequenz steht jeweils ein Block mit 64 Adressen ä 32 Bit bereit. Dieser Block unterteilt sich weiterhin in einen Bereich, der die für den Block notwendigen Parameter enthält und einen Block mit den Sequenzdaten. Aus dieser Aufteilung ergibt sich eine maximale Länge von 944 Basen pro Sequenz.
Die Sequenzdaten sind so aufgebaut, dass pro Datenwort jeweils 16 Basen kodiert sind. Der Ablauf Controller 323 liest die Daten nach Bedarf ein und generiert die einzelnen Primer für die Berechnung.
Die Parameter für die Berechnung des ersten Schrittes sind in den untersten 5 Datenworten gespeichert. Diese Parameter werden zu Beginn jeder Berechnung vom Ablauf Controller 323 eingelesen und in der Bewertungsfunktion gespeichert.
Das Datenformat, das die Ergebnisdaten aus dem ersten und zweiten Schritt speichert, wird nachfolgend beschrieben.
Die RAM Bank 2 ist unterteilt in Blöcke mit jeweils 256 Einträgen pro Sequenz. Der gesamte Bereich besteht ausschließlich aus Paketen zu jeweils 256 Wörtern.
Für die Zwischenspeicherung der Ergebnisse aus dem ersten Schritt werden 128 Wörter benötigt, denn jedes Ergebnis ist in zwei Datenwörtern kodiert. Diese Ergebnisse sind innerhalb des Blocks in absteigender Reihenfolge ab Adresse 127 abgelegt.
Der Bereich zwischen der Block Adresse 128 und 256 ist den Ergebnissen des zweiten Schrittes vorbehalten.
Aufgrund der Berechnung jeweils eines Primerpaars (ungerade und nachfolgende gerade Primer) entsteht für diese beiden Blöcke nur jeweils ein Ergebnis. Dieses Ergebnis ist nur innerhalb des ungeraden Blocks gespeichert.
Das nachstehende nicht einschränkende Ausführungsbeispiel des erfindungsgemäßen Verfahrens zeigt die Beschleunigung bei der Berechnung von Primern gegenüber einem Verfahren mit sequenzieller Ausführung der Verfahrensschritte:
Ausführungsbeispiel
Die Messungen der Softwareausführung wurden auf einem Pentium III 500 MHZ/128 MByte RAM ausgeführt. Die Gesamtdauer des Verfahrens betrug 1920 s.
Die Messungen auf dem Hardwarebeschleuniger wurden auf einem microEnable II System mit einem Virtex 400 FPGA bei 50 MHz ausgeführt. Die Gesamtdauer des erfindungsgemäßen Verfahren betrug 3,41 s. Zur Durchführung der Messungen wurde ein Host Computer System eingesetzt mit den folgenden Parametern: Intel Celeron 500MHz / 128Mbyte.
Der sich ergebende Beschleunigungsfaktor des erfindungsgemäßen Verfahrens im Vergleich zu einem herkömmlichen Verfahren beträgt 563,05.
Figur 4 zeigt den Ablauf des erfindungsgemäßen Verfahrens 400 in einem Hardwarebeschleuniger. Der erfindungsgemäße Verfahrensablauf 400 wird anhand eines Verfahrensablaufs zur Bestimmung von Primersequenzen genauer veranschaulicht. Weiterhin ist das gezeigte Ablaufdiagramm 400 spezifisch für die erfindungsgemäße Verarbeitung von Parameterfolgen auf FPGAs. Einzelne Teile der Verarbeitung sind bei Verwendung anderer Prozessorentechnologien andersartig beziehungsweise überflüssig. Figur 4 verdeutlicht den Ablauf der gesamten Berechnung und stellt die Programmabläufe in der Software und auf dem Hardwarebeschleuniger detailliert dar.
Der Verfahrensablauf 400 innerhalb des Hardwarebeschleunigers 401 reduziert sich auf die Darstellung in Figur 4. Beim Verfahrensschritt 402 wartet der Hardwarebeschleuniger 401, bis er Daten von dem in Figur 4 nicht dargestellten Host-Rechner übertragen bekommt. Sobald diese Daten vom Host-Rechner übertragen werden, werden im Schritt 403 diese Daten eingelesen und in der ersten RAM Bank abgelegt. Sofort nach der Speicherung startet die Berechnung aller einzelnen Primer einer jeden Sequenz. Im Schritt 404 werden die Primer generiert und anschließend den verarbeitenden Komponenten zugeführt. Im Schritt 405 werden die SA und SEA Werte in der Matrix berechnet. Zum Schritt 405 verläuft parallel dazu Schritt 406, in dem weitere Berechnungen ausgeführt werden. Im Schritt 407 werden die Ergebnisse über die Bewertungsfunktion ermittelt. Im Schritt 408 werden die besten Ergebnisse gesammelt. Schritt 409 beinhaltet die Abfrage, ob der letzte Primer in der Sequenz berechnet wurde. Im Falle eines Neins auf diese Frage werden nochmals die Verfahrensschritte 404 bis 409 durchlaufen. Im Falle eines Jas auf die Abfrage im Schritt 409, das heißt nach Berechnung aller Primer, werden im Schritt 410 die besten Ergebnisse in der zweiten Speicher, nämlich in der RAM Bank 2 abgelegt. Im Schritt 411 wird die nächste Sequenz adressiert. Schritt 412 beinhaltet die Abfrage, ob die letzte Sequenz mit den dazugehörigen berechneten Primern durchgelaufen ist. Im Falle
eines Neins auf diese Frage werden nochmals die Verfahrensschritte 404 bis 412 durchlaufen. Im Falle eines Jas auf die Abfrage im Schritt 412 wird Schritt 413 ausgeführt. Im Schritt 413 wird die zweite Stufe zur Ermittlung der PA und PEA Werte, die in Figur 4 nicht weiter ausführlich dargestellt ist, ausgeführt. Nach Beendigung der zweiten Stufe, werden im Schritt 414 die Daten vom Host Rechner zurückgelesen und zur Anzeige gebracht.
Figur 5a zeigt den erfindungsgemäßen Verfahrensablauf 500 in einer Matrix 503. Die Darstellung verdeutlicht einen besonderen Aspekt der Erfindung, nämlich den Aufbau einer Matrix 503 aus den einzelnen Kombinationen der m Parameter aus den n Parameterfolgen, in diesem Falle der Parameterfolgen 501 und der Parameterfolge 502, die miteinander verglichen werden sollen. Beide Parameterfolgen weisen 4 Parameter auf. Es versteht sich von selbst, dass natürlich auch aus Parameterfolgen mit mehr als 4 Parametern nur jeweils oder zusammen 4 Parameter ausgewählt werden können, ohne den Rahmen der Erfindung zu verlassen. Die Anzahl m der zu vergleichenden Parameter ist beliebig wählbar und wird von den zur Verfügung stehenden Logik Ressourcen beispielsweise ALUs bestimmt. Dieser Matrixaufbau der Matrix 503 findet seine Entsprechung in der Matrix eines parallel verarbeitenden Systems innerhalb einer erfindungsgemäßen Vorrichtung. Die Matrix 503 weist 16 Matrixelemente 507 auf, die mindestens eine arithmetische logische Recheneinheit umfassen. In den Matrixelementen 507 findet die Berechnung der einzelnen Kombinationen an Parametern parallel, das heißt gleichzeitig statt. Durch diese gleichzeitige Verarbeitung der einzelnen Kombinationen wird eine Beschleunigung des gesamten Ablaufs um mehrere Größenordnungen eπeicht.
Die Verarbeitung der Parameterdaten beim Vergleich der ersten Parameterfolge 501 (auch Parameterfolge 1 genannt) mit der zweiten Parameterfolge 502 (auch Parameterfolge 2 genannt) ist in drei Stufen, die in Figur 5 a mit den Ziffern 1, 2 und 3 bezeichnet sind, dargestellt. Beide Parameterfolgen 501 und 502 haben die gleiche Anzahl Parameter, nämlich 4. Die Matrix 503 wird aus den einzelnen Kombinationen der Parameter aus den beiden Parameterfolgen 501 und 502 aufgebaut. Wichtig im Zusammenhang mit der vorliegenden Erfindung ist dabei, dass alle denkbaren möglichen Kombinationen der zu vergleichenden m Parameter der n-Parameterfolgen zur gleichen Zeit gebildet werden, wobei natürlich auch andere Verarbeitungsmöglichkeiten im Rahmen der Erfindung verwendet werden können. Bezeichnet man die Parameterkombinationen mit (i,k), wobei i der i-te Parameter der Parameterfolge 501 ist und k der k-te Parameter der Parameterfolge
502 ist, so wird die Matrix 503 aus Elementen (i,k) aufgebaut, wobei in diesem Fall i die Werte 1 bis 4 durchläuft und ebenfalls k die Werte 1 bis 4 durchläuft. Die Parameterkombinationen (i,k) sind den Vergleichszellen, das heißt den Matrixelementen 507 der Matrix 503 des parallel verarbeitenden Systems zugeordnet. Die aufgebaute Matrix
503 mit den Vergleichszellen 507 ist in Figur 5a in der 1. Stufe der Berechnung zu sehen. In den Vergleichszellen 507 findet in der 1. Stufe der Berechnung eine gleichzeitige Bewertung jeder Parameterkombination (i,k) statt. Diese Bewertung geschieht anhand einer 1. Bewertungsvorschrift. Die 1. Bewertungs Vorschrift kann dabei für jede Vergleichszelle 507 gleich sein, sie kann aber auch für jede Vergleichszelle 507 eine individuelle Bewertung bewirken, wobei diese individuellen Bewertungen gleich oder verschieden voneinander sein können, oder aber teilweise gleich oder teilweise verschieden voneinander sein können. Die Bewertung der Vergleichszellen 507 liefert die ersten Ergebnisse, die in Figur 5a als Pfeile 508, die ihren Anfang in jeder Vergleichszelle 507 haben, dargestellt sind.
Diese ersten Ergebnisse können optional nach einer 2. Bewertungsvorschrift 504 in Schritt 2 untereinander kombiniert werden, wobei alle oder ein Teil der ersten Ergebnisse miteinander kombiniert werden kann. Jedes einzelne 1. Ergebnis kann auch für sich verändert werden, wobei die 2. Bewertungsvorschrift für jedes 1. Ergebnis gleich oder voneinander verschieden sein kann, oder teilweise gleich oder verschieden sein kann. Die ersten Ergebnisse können aber auch in ihrem Wert unverändert bleiben. In Figur 5a bewirkt die 2. Bewertungs Vorschrift 504 eine Kombination der Vergleichszellen 507 in den Diagonalen der Matrix 503. Diese Kombination geschieht dabei gemäß der 2. Bewertungsvorschrift 504 und kann beispielsweise eine Kombination durch eine beliebig wählbare Rechenoperation, wie Addition, Subtraktion, Multiplikation, Division. Logarithmische Bewertung etc. oder auch durch daraus zusammengesetzte Rechenoperationen bewirken. Die auf diese Weise gebildeten zweiten Ergebnisse sind in Figur 5a als Pfeile 505 dargestellt.
Die zweiten Ergebnisse 505 können optional nach weiteren optionalen nachgeschalteten Bewertungs Vorschriften verarbeitet werden. Dabei können die zweiten Ergebnisse optional nach einer 3. und weiteren Bewertungs Vorschriften 506 in Stufe 3 untereinander kombiniert werden, wobei alle oder ein Teil der zweiten Ergebnisse miteinander kombiniert werden kann. Jedes einzelne 2. Ergebnis kann auch für sich verändert werden, wobei die 3. und weitere Bewertungs Vorschriften für jedes 2. Ergebnis gleich oder voneinander verschieden sein kann, oder teilweise gleich oder verschieden sein kann. Die zweiten Ergebnisse können aber auch in ihrem Wert unverändert bleiben. Die 3. und weiteren Bewertungsvorschriften 506 in Stufe 3 führen alleine oder in beliebiger Kombination untereinander schließlich zum Ergebnis 509, welches als Ergebnis E vom Benutzer gelesen werden kann.
In dem speziellen Ausführungsbeispiel der Primerbestimmung ist die Aufgabe der Matrix 503 die Berechnung des Seif Annealing (SA) und des Seif End Annealing (SEA) Wertes. Aufgrund der funktionalen Gleichheit bei der Berechnung kann die Matrix 503 in leicht abgewandelter Form auch für die Berechnung des Pair Annealing und Pair End Annealing Wertes verwendet werden.
Figur 5b erläutert den Aufbau der Matrix 503 aus Figur 5a für das spezielle Ausführungsbeispiel der Primerbestimmung. Dabei sind alle möglichen Kombinationen von Überlagerungen von zwei Primern zu bewerten und die gewichteten Übereinstimmungen sind, abhängig von der Berechnung Annealing oder End Annealing, aufzuaddieren.
Die erste Parameterfolge 551 und die zweite Parameterfolge 552 entsprechen dabei dem ersten und zweiten Primer. Im Falle der wie vorstehenden ausgeführten Berechnung des SA und SEA Wertes, besitzt der zweite Primer die genau umgekehrte Basensequenz des ersten Primers. Wie vorstehenden erläutert, sind für den Fall der PA und PEA Werte- Berechnung die Primer unterschiedlich. In jeder Vergleichszelle 554 der Matrix 550 wird eine Basenkombination aus einer Base des 1. und 2. Primers ihrer Bindungsstärke entsprechend, wie vorstehend erläutert nach einer 1. Bewertungsvorschrift bewertet. In der zweiten Stufe werden diese Werte für jede Diagonale 555 der Matrix 550, gebildet aus den einzelnen diagonal angeordneten Matrixelementen, bzw. Vergleichszellen 554 nach einer 2. Bewertungs Vorschrift 553 (bzw. 504 in Figur 5a) aufsummiert. Das Ergebnis (505 in Figur 5a) ist dabei die Summe der gewichteten Übereinstimmungen, die in der jeweiligen Diagonalen 555 ermittelt worden sind. Die Anzahl der Werte, die pro Diagonale 555 addiert werden müssen ist abhängig von der Position der Diagonale 555 in der Matrix 550. Pro Diagonale 555 wird jeweils der aufsummierte Wert an die nachfolgende dritte Stufe (Schritt 3) weitergegeben. In der dritten Stufe werden die Ergebnisse der einzelnen
Diagonalen 555 jeweils paarweise verglichen. Ermittelt wird in dieser speziellen Ausführungsform des Verfahrens der maximale Wert, der sich bei einem Primerpaar ergibt. Natürlich sind die Werte auch durch Addition Subtraktion oder andere mathematische Rechenoperationen erhältlich. Die nachstehende gezeigte Tabelle 3 zeigt alle Operationen, die innerhalb der Matrix 550 parallel ausgeführt werden.
Tabelle 3: Ergänzende Beispiel für die Berechnung des Maximalen Wertes bei der Durchführung der SA Berechnung in der parallel arbeitenden Matrix Struktur. Die überlagernden Basenpaare werden wieder anhand des Primers mit 4 Basen (AGTC) durchgeführt.
Übereinstimmungen sind fett markiert
Ein anderes Ausführungsbeispiel für die Verwendung des erfindungsgemäßen Verfahrens und der erfindungsgemäßen Vorrichtung stellt Homologiesuche in Datenbanken oder Identitätsvergleiche bei weiteren Bioinformatikanwendungen dar.
Da die Rate der Strukturaufklärung über Röntgenstrahlkristallographie oder NMR viel niedriger ist als die Zahl neuer DNA- oder Proteinsequenzen, die jeden Tag bekannt werden, wird ein alternativer berechenbarer einigermaßen zuverlässiger Ansatz zur Strukturfindung benötigt. Ziel ist es, Schlüsselmakromoleküle (das heißt Proteine) zu identifizieren, die pathologische Vorgänge verursachen und potenzielle Inhibitoren für diese Makromoleküle vorzuschlagen. Um das Molekül zu verstehen und so mögliche Wechselwirkungen mit seinem Substrat oder anderen Substanzen vorzuschlagen zu können, muss man die Struktur des Makromoleküls kennen. Das größte Hindernis ist dabei oftmals das Fehlen struktureller Daten über das betreffende Molekül. Handelt es sich bei den untersuchten Makromolekülen um Proteine, so kann man homologe Proteine von anderen Arten benutzen, deren Struktur bekannt ist. Das Modellieren unbekannter Proteinstrukturen basierend auf ihren Homologen ist als homologiebasiertes strukturelles Modellieren bekannt.
Als homologe Proteine bezeichnet man im allgemeinen Polypeptide, die eine ähnliche Aminosäurenzusammensetzung gemeinsam haben. In den meisten Fällen sind die Proteine mit einem relativ hohen Grad an Identität auch strukturell und funktionell homolog. Änderungen der Aminosäuresequenz eines Proteins könnten eine Änderung der 3-D- Struktur bewirken. Es ist diese Beziehung zwischen der Aminosäuresequenz eines Proteins und seiner dreidimensionalen Struktur, die es einem erlaubt, Proteine, für die es keine NMR oder Röntgenkristallstrukturen gibt, mit ihren Sequenzhomologen zu vergleichen, deren Struktur man kennt.
Die Sequenzhomologen mit bekannter Struktur ermöglichen es, die Struktur der homologen Sequenzen, deren Struktur unbekannt ist, durch komparative Modellbildung zu berechnen und erlauben so einen Einblick in die Proteinfunktion. Beim homologiebasierten Proteinmodellieren bezeichnet man die experimentell bestimmten Strukturen im allgemeinen als Matrizen und das Sequenzhomologe (das heißt eine neue Kette von Nukleotiden, die man beispielsweise in einem laufenden Genomprojekt identifiziert hat) wird Zielsequenz genannt. Der homologiebasierte Ansatz zum Erstellen von Modellen umfasst vier aufeinander folgende Schritte. Der erste besteht in der Identifikation bekannter Strukturen, die eine zu der Zielsequenz verwandte Sequenz aufweisen. Das erreicht man typischerweise durch Softwarewerkzeuge wie BLAST, die der Suche nach möglichen Matrizen dienen. Im zweiten Schritt werden die potentielle Matrizen vergleichend mit der Zielsequenz ausgerichtet, um die am nächsten verwandte Matrize zu identifizieren. Im dritten Schritt berechnet man ein Modell der Zielsequenz, wobei man von der am besten geeigneten Matrize des zweiten Schrittes ausgeht. Der vierte Schritt besteht schließlich in einer Bewertung des Modells der Zielsequenz, wobei man eine Reihe von Kriterien, wie zum Beispiel Energetik heranzieht.
Das erfindungsgemäße Verfahren sowie die erfindungsgemäße Vorrichtung kann nun die Berechnung des ersten und des zweiten Schrittes unterstützen. Im Vergleich zu herkömmlichen sequentiellen Rechenmethoden kann die Rechenzeit durch den erfindungsgemäßen parallel verarbeitenden Matrixansatz um einen Faktor von beispielsweise 1000 verkürzt werden.
Im idealen Fall ist die Aminosäuresequenz des unbekannten Proteins der seines Strukturhomologen recht ähnlich und es gibt zum Beispiel in der PDP-Proteindatenbank
(Sussman, J.L. et al. Protein Data Bank (PDB): database of three-dimensional structural information of biological macromolecules. In: Acta. Crystallogr. D. Biol. Crystallogr. 54 (1998) Seiten 1078-1084) mehr als einen bekannten Homologen aus anderen Arten. Ziel ist es nun diese bekannten Homologen zu finden.
Das Programm BLAST des NCBI (Altschul, S.F. et al. Basic local alignment search tool. In: J. Mol Biol. 215 (1990) S. 403-410) ermöglicht es, diese bekannten Homologen zu finden. Damit der erfindungsgemäße parallel verarbeitende Matrixansatz innerhalb des Programms BLAST eine wesentliche Beschleunigung des Rechenverfahrens bewirken kann, sind jedoch Anpassungen des Rechenverfahrens notwendig. In dem Beispiel der Homologiesuche kann die erfindungsgemäße Matrix aus den Kombinationen zweier Parameterfolgen aufgebaut werden. Dabei sind im allgemeinen die beiden Parameterfolgen mit ihren zu vergleichenden Parametern von ungleicher Länge. Eine Parameterfolge kann die Primärsequenz (Aminosäuresequenz) der Zielsequenz sein und die andere Parameterfolge eine Proteinsequenz in einer vorgegebenen Datenbank sein. Dabei kann die Matrix beachtliche Größen annehmen, so, dass es geeigneter sein kann, in Abhängigkeit von der Anzahl der parallel verarbeitenden Matrizen, beziehungsweise von der Anzahl der parallel verarbeitenden Matrixelemente, die Matrix in mehrere Sub-Matrizen zu unterteilen. Bei einer solchen Methode kann beispielsweise jede einzelne Sub-Matrix für sich parallel verarbeitet werden. Durch Bildung sinnvoller Überlagerungen der beiden Parameterfolgen und geeigneter Bewertung der gebildeten Parameterkombinationen sowie geeigneter nachfolgender Bewertungsvorschriften können die engsten Sequenzhomologen ausgewählt werden.
Andere Anwendungen der erfindungsgemäßen parallel verarbeitenden Matrix betreffen den zweiten Schritt der Homologiesuche nämlich die vergleichende Ausrichtung der potenziellen Matrizen mit der Zielsequenz. Andere Anwendungen sind Sequenzvergleiche, Bewertung von Sequenzen oder beispielsweise auch bei der Bestimmung/ Berechnung von DNAs. Ebenfalls beschleunigt die erfindungsgemäße Matrix auch die Durchsuchung von Datenbanken, beispielsweise Stoffdatenbanken.
Oftmals findet innerhalb solcher Durchsuchungen von Datenbanken Vergleichsbildungen statt, im Falle von Stoffdatenbanken beispielsweise von gesuchten Stoffeigenschaften und Stoffen der Datenbank mit ihren spezifischen Eigenschaften. Die erfindungsgemäße Matrix wird hierbei beispielsweise dazu verwendet, eine Parameterfolge, deren Parameter die erwünschten Eigenschaften enthält mit Parameterfolgen, deren Parameter die Stoffe mit ihren Stoffeigenschaften aus der Datenbank enthält zu vergleichen. Dieser Vergleich wird durch die erfindungsgemäße Matrix parallel durchgeführt und führt somit zu einer wesentlich beschleunigten Datenbankrecherche in Stoffdatenbanken.