[go: up one dir, main page]

DE10238057A1 - Comparison of a number of parameter sequences, for the design and formation of biological molecules, uses matrix elements with arithmetical logic computing units for faster complex computations of data sets - Google Patents

Comparison of a number of parameter sequences, for the design and formation of biological molecules, uses matrix elements with arithmetical logic computing units for faster complex computations of data sets Download PDF

Info

Publication number
DE10238057A1
DE10238057A1 DE10238057A DE10238057A DE10238057A1 DE 10238057 A1 DE10238057 A1 DE 10238057A1 DE 10238057 A DE10238057 A DE 10238057A DE 10238057 A DE10238057 A DE 10238057A DE 10238057 A1 DE10238057 A1 DE 10238057A1
Authority
DE
Germany
Prior art keywords
parameter
sequences
parameters
combinations
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10238057A
Other languages
German (de)
Inventor
Holger Dr. Singpiel
Harald Dr. Simmler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MANNHEIM, University of
Universitaet Mannheim
Original Assignee
MANNHEIM, University of
Universitaet Mannheim
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MANNHEIM, University of, Universitaet Mannheim filed Critical MANNHEIM, University of
Priority to DE10238057A priority Critical patent/DE10238057A1/en
Priority to PCT/EP2003/008898 priority patent/WO2004027675A2/en
Priority to AU2003266973A priority patent/AU2003266973A1/en
Publication of DE10238057A1 publication Critical patent/DE10238057A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/10Sequence alignment; Homology search

Landscapes

  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Biophysics (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

To compare a number of parameter sequences, the parameters contained in them are such that a part of them are combined into parameter combinations by a defined rule. Each parameter combination is assigned a value according to a defined value classification for the characteristics to be measured. The parameter combinations form a multi-dimensional matrix with arithmetical logic computing units. The matrix element (200) has inputs (208,209) for the elements in the parameter sequences (A,B). An intermediate memory (207) stores the results.

Description

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 Bewertungsvorschrift 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.The invention relates to a method to compare n parameter sequences, some of the parameters of all Sequences of parameters according to a previously defined regulation can be combined to form parameter combinations and each parameter combination a first according to a previously defined first evaluation rule Value is assigned, and the result of the valuation rule one accessible to a measurement Property corresponds. Moreover The present invention relates to the use of the method according to the invention for the design, formation, design of / or for the selection of substances.

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.In the field of bio-informatics and materials science fall in large quantities genetic, biochemical as well as substance-specific data. This data, which is made up of many Research efforts result from their common origin connected: the properties of biological and inorganic Substances or molecules.

Dadurch erfordern die beiden vorgenannten Gebiete große Rechnerleistungen, um diese Einzelinformationen zu katalogisieren, organisieren und sie in sinnvollen Gebilden zu strukturieren.This requires the two aforementioned Areas large Computer services to catalog this individual information, organize and structure them in meaningful structures.

Im Allgemeinen sind diese Anforderungen an Rechner mit herkömmlichen Systemen nicht mehr zu bewältigen.Generally these are requirements on computers with conventional Systems no longer manageable.

Schon in der Vergangenheit wurden daher Wege gesucht, um den enormen Datenfluss sinnvoll zu strukturieren, wobei spezielle Hardware- und Softwarekonfigurationen eingesetzt wurden.Have been in the past therefore looking for ways to structure the enormous flow of data in a meaningful way, special hardware and software configurations are used were.

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.For example, from the EP 1094607A1 FPGA (Field Programmable Gate Arrays) cells are known which have user-programmed connection fields. These cells have an array of logic elements and wiring sections that consist of several thousand or even hundreds of thousands of programmable connections, as a result of which FPGAs can be programmed by a user as an integrated circuit for defined functions. Each programmable connection can connect or interrupt a large number of circuit nodes of the integrated circuit as an FPGA cell, as a result of which functions of logic elements of the FPGA can be set in a user-specific manner. By shortening a channel width of channel areas of a switching transistor of an FPGA cell, a smaller space requirement and lower write / read voltages are made possible for the programming of FPGA cells.

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.Next are from the DE 19654595A1 and memory bus systems for modules with two- or multi-dimensional programmable cell structures, the bus system being produced by bundling several individual lines or buses or sub-buses within a module of the genus DFP, FPGA, DPGA, and all modules with two or more dimensional programmable cell structures, and Via which the modules can be combined into several and / or memory and / or peripheral devices can be connected.

Ebenso stellt die DE 19654846A1 ein Verfahren zur dynamischen Konfiguration von konfigurierbaren Bausteinen mit einer zwei- oder mehrdimensionalen Zellanordnung, beispielsweise FPGAs, 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.Likewise, the DE 19654846A1 A method for the dynamic configuration of configurable modules with a two- or multi-dimensional cell arrangement, for example FPGAs, DPGAs, DFPs or the like, is available, which has one or more switching tables, consisting of one or more controllers, and one or more configuration memories which blocks are integrated or connected to. Configuration words are transferred from a switching table to a configurable element or several configurable elements of the block or block transfer that set a valid configuration. This means that a programmable module can be reconfigured much more quickly and that various configurations of a programmable module can be used flexibly at runtime without impairing or stopping the programmable module's ability to work. Changes to the configuration of the block are made at the same time and are therefore available very quickly without, under certain circumstances, having to transfer large configuration data. This removes the static restrictions of conventional building blocks and improves the use of existing configurable elements.

Aus der DE 19651527 A1 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 Funktionswerten 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.From the DE 19651527 A1 Furthermore, a computer arrangement and a method for executing a sequence of program instructions are known, wherein in the computer arrangement a programmable logic module, which is coupled to a processor with a limited instruction set, the logic module expanding the processor or the limited instruction set by at least one instruction. The command that is not contained in the command set of the processor is implemented in the programmable logic module by logic functions. The processing time and the required resources can thus be further reduced in various fields of application, for example in the approximation of function values of arbitrarily continuous functions, in flow arithmetic, in particular also in processors with integer format or in the case of lossless or lossy data compression.

Allen vorgenannten Systemen und Verfahren des Standes der Technik war jedoch gemein, dass die Rechenzeiten zur Verarbeitung einer Vielzahl von Daten sehr hoch waren.All of the aforementioned systems and processes However, the state of the art had in common that the computing times to process a variety of data was very high.

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.This is a major disadvantage especially in the field of bioinformatics when evaluating, for example, genetic analyzes, the structure elucidation of proteins, etc., since the results of the evaluation are quick are desired.

Aus der EP 1136932 A1 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.From the EP 1136932 A1 For example, a method for designing primers on bio-chips is known, wherein DNA nucleotide sequences are obtained from a database consisting of a plurality of different DNA nucleotide sequences, and wherein the nucleotide sequences of primers are capable of are to bind specifically in the hybridized DNA thus obtained. A large number of primers which are able to bind specifically to different DNAs can be designed in this way.

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.Bio chips are especially useful Tools in the context of drug development. The biggest advantage consists of expression profiling. Here are DNA microarrays because of their ability the measurement of gene activity in a tissue in a massively parallel manner already unrivaled today. Also in areas other than DNA chips are used, for example, for the duplication of known sequences (Polymerase Chain Reaction PCR) so-called primers are used. at a primer (oligonucleotide) is a short oligonucleotide sequence, which are synthetic in any combination (A, C, G, T, U, with the capital letters for the corresponding bases adenine, cytosine, guanine, thymine and uracil in the DNA or in the RNA) can be created. The primer are usually between 15 and 100 base pairs long.

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.The term bio-chip or microarray denotes the systematic arrangement of biomolecular probes, such as nucleic acids, (Oligonucleotides, for example cDNA, DNA, RNA, LNA or chimeras thereof) antibodies Peptides or proteins on solid surfaces made of glass, metals or Plastics. The basic principle of such biochip-based methods is miniaturized working in parallel through probe arrays Analysis systems on one if possible small area to get the simultaneous investigation of a large number of parameters.

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.Gene analysis using oligonucleotide chips is based on ability for example of single strands DNA to form a double helix with a complementary DNA fragment. This process, called hybridization, allows the sequence-specific one Detection of a DNA segment by a probe oligonucleotide (primer), that on a surface is fixed. There will be a bundle of the same primers on one Dot / matrix cell applied. This point / cell is called as a spot. A DNA chip is made up of many different probes, which enables detection of several thousand DNA sections.

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.Hybridization on a DNA chip is detected, for example, with a fluorescence microscope, in which the examining DNA (or the desired DNA strand) with fluorescent dyes (primer marker) is marked.

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.So far there are only a few programs for the calculation of optimal primers. This is also disadvantageous the enormous time currently required to execute such programs.

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.Likewise for the analysis of proteins and (poly) peptides require extensive computing power. Peptide- or protein chips, with the help of thousands of peptides or proteins can be characterized in parallel are currently the only ones Possibility, to the task of peptide or protein characterization in a manageable Time horizon to master. This requires an even greater computing power than, for example, when analyzing nucleic acids or oligonucleotides, because during the nucleic acids are very similar in chemical and molecular properties, there is a multitude of extremely heterogeneous Peptides and proteins.

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.The function in particular of the proteins supports on their 3-dimensional structure. This structure is sometimes extremely sensitive when the conditions under which the respective proteins naturally are changed become. About that proteins also have enormous differences in size. While it for example, DNA fragments of the same size are possible to the carrier materials socialize, this is for enlightenment the task that the protein performs not useful as this is for that be intact and in the correct conformation.

An Proteinchips werden also weitaus höhere Anforderungen gestellt als an DNA-Chips. Bei den derzeit vorhandenen Proteinarrays handelt es sich überwiegend um Antikörperarrays, bei denen die spezifischen Fängermoleküle analog den DNA-Microarrays 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.So protein chips are far more higher Requirements placed on DNA chips. With the currently available Protein arrays are predominantly around antibody arrays, where the specific capture molecules are analogous the DNA microarrays in rows and columns on carrier materials in a very confined space to fish out defined proteins from a pool of proteins and analyze. For the analytics require enormous computing power. However, these are currently so that the analysis of defined proteins takes days. at all proteins in the protein pool are specifically radioactive in the analysis, marked with fluorescent dyes or with biotin and on the Microarray in contact with the capture molecules brought. With appropriate detection methods, the bound to the capture molecules labeled proteins are detected.

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.Therefore, the preparation of the experiment, especially the design of the experiment made a big contribution on the value of the entire experiment. When designing biochips there it is therefore a big one Need for specialized computers or computing power.

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.When designing the experiment, large and different databases must be screened with computer support in order to determine the chip content. Biochips can be used, for example, to analyze peptides and / or DNA sequences. Here, for example, is the search for exactly that Of central importance are ligands (oligonucleotides, cDNA molecules, antibodies) which, after being immobilized on the chip, bind their molecular partner precisely from the patient's sample without competing too much with other molecules on the chip to create a partner. As many structural details as possible must therefore be included in the analysis so that the correct chip content can be selected and incorrect results avoided.

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.Through computer-aided preparation of the experiment, the experimental conditions and especially the selection of primers depending on the type of biochip optimize. Experiments can therefore be carried out optimally in a reasonable time be prepared and a basis can be created from based on a correct interpretation of the measuring points allows becomes.

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.For example, when browsing of databases in general target properties with the content compared to the database. Also in the optimization of Experiments to make comparisons. With such comparisons different combinations of parameters are usually formed and subjected these combinations to different evaluation steps.

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.The object of the present invention was, therefore, to provide a method that takes the time shortened even further when comparing n-parameter sequences, see above that simple and complex calculations of a variety of data done quickly can be.

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.This task is accomplished through a process solved for the comparison of n-parameter sequences, some of the parameters all parameter sequences according to a previously defined regulation can be combined to form parameter combinations and each parameter combination a first according to a previously defined first evaluation rule Value is assigned, and the result of the valuation rule one accessible to a measurement Property corresponds, the combinations of the parameters of the n parameter sequences form and form an m-dimensional matrix Part of this m-dimensional matrix corresponds to a matrix that is arithmetic includes logical processing units.

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.
For a better understanding of the present invention, the essential terms used according to the invention are defined below:
A “previously defined rule” in the sense of the invention means, for example, predetermined instructions for the formation of the parameter combinations, which may be in the form of a calculation rule within a computer program or as part of the computer architecture in the form of integrated circuits. Furthermore, the instructions for the formation of the parameter combinations may be present be predetermined biologically, chemically, physically, or be of a random nature, or combinations thereof, the pre-defined rule generally being present before the parameter combinations are formed.

Eine „vorher definierte erste Bewertungsvorschrift" 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 Bewertungsvorschrift 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.A "previously defined first evaluation rule" in the sense of the invention means that the evaluation rule in general before performing the assessment exists, and the assessment rule for each of the potential Parameter combinations can be the same or different. The valuation rule causes one or more parameter combinations each one or more values can be assigned. Especially with combinations Assigning multiple values can be useful from more than two parameters. The evaluation rule can take the form of evaluation instructions within a computing program or as part of the computer architecture are in the form of integrated circuits. Furthermore can the valuation rule for the evaluation of the combinations of parameters biological, chemical, or be physically predetermined or be of a random nature or as Combinations of these can be specified. For example, the Evaluation rule coded in a biological and / or chemical system his. In such a system, the evaluation is through the structure and type of molecules coded and the assessment rule by mutual influence of the molecules executed.

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.Under the term "result" is understood according to the invention the Assigned values to parameter combinations. For example, that Result of the assessment rule a measure for the matching deliver the parameters in the individual parameter sequences. These the parameters are, for example, bases of oligonucleotide sequences, So the result of evaluating the base combinations can be a measure of the bond strength of the include each base combination. On the other hand, become parameters combined with each other, the parts of molecules (atoms or functional Groups), the molecules being, for example, oligonucleotides and / or proteins, the result of the evaluation, depending on the evaluation regulation, a measure of the ability to bind be in a combination between the parameters or, for example, also a measure of agreement be the parameter. In another non-limiting one embodiment In the field of image processing, parameter sequences that Contain strings, compared with each other by means of the inventive method. Such strings can For example, display image sections or word or word sequences (for example, the parameters then correspond to gray or color levels). In image processing, the comparison of character strings provides as a result, for example, a measure of the match and thus can a property is assigned to the result, which states that a certain parameter set corresponds to an image section, the meaning such as street or house.

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.A "property accessible to a measurement" in the sense of the invention means that with the aid of a Measurement method and suitable systems, one or more measurement results are obtained which, after suitable manipulations, correspond to a property of the result of the invention. The measurement method can be of a biological, chemical or physical nature. For example, the result of the first evaluation rule in the case of an example of a method for selecting primers corresponds to the bond strengths between the base pairs formed by the combination. This means that the property accessible to a measurement is the probability of forming a chemical bond or a measure of the strength of the chemical bond formed, or it can be the probability of the occurrence of the paired oligonucleotide sequences corresponding to the parameter combinations. Such occurrence probabilities for bond formation can be demonstrated, for example, using gel electrophoresis or resonance methods (NMR, ESR, μ-SR, etc.). The measurement results corresponding to the probabilities of occurrence are obtained by comparing (for example forming a difference) the measurement results of systems with bond formation with reference systems without bond formation. In the case of image processing, the result, such as the probability of the presence of a certain object (for example a house), corresponds to various properties, such as temperature etc. This property is accessible to suitable measurement methods, such as thermal imaging camera recordings.

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.An "m-dimensional matrix" in the The meaning of the invention means that in general the formed Display parameter combinations as a matrix or part of a matrix let, respectively, that in the formation of the parameter combinations a matrix or part of a matrix is created. Each represents Matrix element of the resulting matrix or part a matrix represents a combination of parameters. The dimension m of the Matrix usually exceeds not the number n of parameter sequences.

Eine „arithmetisch-logische Recheneinheit" im Sinne der Erfindung bedeutet ein Matrix- beziehungsweise 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.An "arithmetic-logical computing unit" In the sense of the invention, a matrix or a processing element means which is capable, for example, of any comparative, logical or perform arithmetic operations. Non-limiting embodiments for arithmetic-logic according to the invention Computing units are listed in the description below. The Processing element can be biological, chemical or physical Nature or combinations thereof. The arithmetic-logical also perform Computing units of course also the evaluation of the parameter combination formed.

Eine „Matrix, die arithmetische logische Recheneinheiten umfaßt" bedeutet erfindungsgemäß 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.A “matrix, the arithmetic logical computing units includes " according to the invention means a logic unit, which is preferably designed for parallel data processing. Not restrictive embodiments for matrices according to the invention, the arithmetic-logic arithmetic units are included in the following Description listed.

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.By the method according to the invention let yourself the speed of the evaluation, for example when searching for optimal physical properties of a sought oligonucleotide, a peptide or the like Accelerate materials by a factor of 1000 compared to conventional processes.

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.It is preferred if the formation of all or part of the parameter combinations at the same time, for example in parallel, in so-called pipelines (in a computer pipeline an instruction execution divided into several processing steps, each of one for that certain piece Hardware are processed and all run in parallel. The pipeline corresponds to an assembly line, one instruction is completed in each clock cycle can) be carried out will, that is the pipelined data are processed in parallel. Because of the engagement of pipeline, acceleration factors between 10 and 100 im Comparison to the use of conventional Procedure reached.

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.In a further preferred embodiment of the method according to the invention all or part of the parameter combinations are evaluated also simultaneously, for example in parallel in pipelines. Thereby can speed up the process until you get a result also by acceleration factors between 100 and 1000 be increased.

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.The evaluation of the combinations of parameters formed by the arithmetic logical Processing units. Any arithmetic logical arithmetic unit execute an individual evaluation rule and the parameter combinations can depending on the type or physical meaning of the parameters individually be sensibly evaluated.

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.Advantageously, the first values for all parameter combinations from the n parameter sequences after one further assessment rule can be processed further. So that can the result of the first evaluations by means of another evaluation regulation, the example instructions for Totaling or extreme value searches contains, are processed further and reduced to a simpler second result, for example become. This result can then be processed further or, for example, already correspond to a molecule that the desired Properties that are appropriately encoded in the valuation rules are, owns.

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.Each individual and / or several combinations of the parameters is particularly preferably formed and / or evaluated in one or more logical arithmetic units, for example in differently shaped pipelines (one pipeline, for example, makes a sum, another carries out comparisons, etc.). This will the speed increased by a factor of 100-1000 compared to the use of conventional methods.

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.Advantageously, n is a whole Number that is greater or is equal to 2. So can two parameter sequences or even more parameter sequences with each other be compared.

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.In a further advantageous embodiment In the method, each sequence of parameters consists of a sequence of discrete parameters. This allows any combination of parameters directly by combining the discrete parameters from the parameter sequences be formed.

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.Sequences preferably include the same and / or a different number of parameters. This can also Consequences, for example, different substances or different molecules or parts of molecules correspond to be compared with each other.

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.Advantageously, the consequences a certain predefined arrangement of the parameters within of the consequences. For example, substances or molecules are in it Structure defined.

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.The parameters preferably have a accessible to a measurement Property on. This can, for example the parameter properties of measured values (e.g. temperature, Pressure) and / or also whole or partial biological Forms such as cells correspond and / or parts of Correspond to substances such as the bases of primers.

Besonders bevorzugt können die Werte aus der ersten Zuordnung von Werten (erste Bewertungsvorschrift) weiteren Bewertungsvorschriften 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.The can particularly preferably Values from the first assignment of values (first valuation rule) subject to further assessment requirements. So that can Result from the first evaluation are processed further, whereby there can be any number of other interim results until finally one Final result available is provided. In the further evaluation steps, different Selection criteria for the design, formation of / or the selection of substances are included.

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.The result advantageously shows a measurement accessible Property on. For example, the result can be one or more molecules include which, for example, have certain desired properties and / or, for example, properties associated with the molecule (s) in Are related.

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.The method is preferably used for Comparison of n parameter sequences for the design, formation, design of / or for the selection of substances. This enables parameter sequences, for example from substance databases that contain substance data through suitable evaluation steps with regard to desired Properties are analyzed, for example substances selected or designed or newly formed or redesigned can.

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.The fabrics are advantageous biological molecules. This can be used, for example, to design suitable biochips be evaluated, or for example also biological properties Gene sequences can be assigned.

Bevorzugt sind die Moleküle Oligonukleotide. Dadurch werden bevorzugt beispielsweise Primer einfach designt oder selektiert werden.The molecules are preferably oligonucleotides. This means that, for example, primers are simply designed or be selected.

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.Particularly preferably, the Parameters in the parameter sequences of the steps of the procedure the bases of oligonucleotides. As a result, the parameter combinations correspond Combinations of easily accessible and identifiable bases.

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.The parameter combinations are advantageous formed by two parameter sequences, the n parameter sequences to each other part of all possible Arrays go through, and the arrays by displacement around a discrete parameter. An arrangement In the sense of the invention, a spatial arrangement of the parameters, as well as any permutation of the parameters in n-dimensional real or virtual spaces mean. This allows for example two primers each with a certain arrangement interact so that it is to combination can come from bases or other properties. By the Moving the primer by a discrete parameter can all sensible orders.

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.The parameter combinations preferably comprise from the part of all possible Arrangements of the parameter sequences base pairs. This can, for example chemical interactions such as hydrogen bonds between the Bases of a base pair are evaluated.

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.The base pairs are particularly preferred assigned a hierarchizable value. For example, chemical Interactions with regard to the stability of the bond that may be formed be rated.

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.Advantageously, a part the parameter combinations formed simultaneously and this part and / or part of these combinations formed at the same time Time a hierarchizable value is assigned. This will make the speed by factors of 10–100 compared to the use of conventional Process increased.

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.The assigned one preferably corresponds Binding strength value the chemical bond between the complementary bases between primer and an oligonucleotide sequence. This allows the bond strength as base for possible further calculations, the selection of, for example, oligonucleotides or Serve primers, are used.

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.Those are particularly preferred bond strengths corresponding values are subjected to further calculation methods, so that the result is one or more selection criteria for one or represents several oligonucleotides. This allows oligonucleotides that the desired Binding properties correspond to be selected.

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.The object of the present invention is further by a device for performing the method according to the invention solved, the device comprising a processor and a hardware accelerator for parallel data processing and a memory that with the Processor and / or the hardware accelerator is coupled, includes, to carry out the method or steps of the method according to the invention. In order to can a variety of commands to perform the inventive method be swapped out in the hardware accelerator what the speed data processing significantly increased.

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.The special hardware structure allows thus the parallel, that is simultaneous implementation from many arithmetic operations to one step, which also means here the speed of processing the data increased accordingly becomes.

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.The memory preferably has one Part of the program instructions for executing the method and / or for the Operation of the device on, making the process direct and without delay be carried out can and therefore the speed of processing the Data can be increased accordingly.

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.The hardware accelerator is advantageous coupled to the processor. By coupling the hardware accelerator with the CPU you are able to run computationally intensive processes on the Outsource hardware accelerators. A close coupling is necessary for a fast data exchange between CPU and hardware accelerator perform.

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.The hardware accelerator particularly preferably contains a logic module for parallel data processing. By the The use of a logic module is used to carry out the calculations / The procedure is coded directly with the logic module and taking into account a parallel and pipelined execution of the operation will Execution speed by a factor of 100-1000 compared to the use of conventional Procedure reached.

Bevorzugt ist der Logikbaustein ein programmierbarer Logikbaustein. Dadurch ist eine besondere Flexibilität in den Bewertungsvorschriften bei den verschiedenen Bewertungsschritten erreichbar.The logic module is preferably a programmable logic module. This gives a special flexibility in the Assessment rules for the different assessment steps reachable.

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.It is preferably programmable Logic module a field programmable gate array (FPGA). The FPGA has a particular flexibility with regard to the selection of the valuation rule and is therefore able to do this in only change in a few milliseconds. In addition, the internal structure of the FPGA is particularly suitable for the processing matrix and the Execute valuation rule in parallel and pipelined. from that this results in a speed factor of 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.The logic module is preferably a ASIC. Execution as ASIC is especially one that doesn't change any further This is an advantage because an ASIC uses a higher processing speed can be achieved and less because of the higher packing density silicon area is needed.

Besonders bevorzugt enthält die Vorrichtung eine computerlesbare Speichereinheit oder ein computerlesbares Speichermedium.The device particularly preferably contains a computer readable storage device or a computer readable storage medium.

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.These can both be in a host computer and / or be arranged in the hardware accelerator. By the When the memory is used, the data to be processed are saved and can during the Calculation instructions quickly and without great delay directly for the calculations be used. The memory on the host processor contains besides the data also the program instructions and can be there without delays work.

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.The storage unit advantageously comprises or data of the parameter sequences recorded on the storage medium of the procedure. The advantage of storing the Data of the parameter sequence is, on the one hand, the direct and not delayed Access to the data. On the other hand, the memory on the hardware accelerator as well as the data to be processed and at the same time for the result data be used. This memory is therefore used twice.

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.It is understood that the above not only mentioned and the features to be explained below in the specified combination, but also in others Combinations or alone can be used without the frame to leave the present invention.

Vorteilhafte, nicht einschränkende, Ausgestaltungen der Erfindung, sind weiter in den Zeichnungen und der dazugehörigen Beschreibung erläutert. Hierbei zeigen:Advantageous, non-limiting, Embodiments of the invention are further in the drawings and the associated Description explained. Here show:

1 eine schematische Darstellung der erfindungsgemäßen Vorrichtung; 1 a schematic representation of the device according to the invention;

2 den Aufbau eines Verarbeitungselements (Matrixzelle); 2 the construction of a processing element (matrix cell);

3 eine schematische Darstellung der erfindungsgemäßen Vorrichtung und den Ablauf des erfindungsgemäßen Verfahrens darin; 3 a schematic representation of the device according to the invention and the sequence of the method according to the invention therein;

4 ein Flussdiagramm zur Darstellung des Ablaufs des erfindungsgemäßen Verfahrens; 4 a flowchart to illustrate the sequence of the method according to the invention;

5a einen Ausschnitt aus dem schematisierten Verfahrensablauf; 5a a section of the schematic process flow;

5b eine Matrix der erfindungsgemäßen Vorrichtung und das darin ablaufende Verfahren beim Vergleich zweier Oligonukleotidketten. 5b a matrix of the device according to the invention and the method running therein when comparing two oligonucleotide chains.

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. 1 shows a schematic representation of the device according to the invention 100 , The device according to the invention 100 includes a combination of a CPU (central processing unit) 101 in combination with a hardware accelerator 102 , where these two components 101 and 102 via an interface 103 are interconnected.

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 1 nicht dargestellter Logikeinheiten oder in einer in 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.The CPU 101 can be located in a so-called host computer, not shown. The host computer can be, for example, a PC, a workstation, an embedded processor or a server, or else in peripheral devices, for example. Analyzers are available. The host computer comprises components such as CPU, memory, input / output devices and / or further peripheral devices known to the person skilled in the art, as well as buses and interfaces. An application sequence with the device according to the invention 100 takes place as follows: Data is entered into the host computer by a user and / or read from already existing files. The data entered there can be stored on the host computer in the CPU 101 be preprocessed or alternatively in the hardware accelerator 102 The preprocessed data is then sent over the interface 103 to the hardware accelerator 102 transfer. On the hardware accelerator 102 this data is calculated using one or more in 1 Logic units not shown or in one in 1 parallel structure for parallel data processing, also not shown. After the calculation is finished, the result data is sent via the interface 103 to the host computer / CPU 101 transferred back. There, the data is post-processed and the results are displayed to a user on a screen and preferably stored in a file.

Die Komponenten der erfindungsgemäßen Vorrichtung 101 sind nachstehend weiter erläutert:The components of the device according to the invention 101 are further explained below:

CPU 101: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.CPU is understood to mean a “central processing unit”, that is to say a central processing unit. The CPU 101 executes programs loaded into main memory. The CPU 101 retrieves the instructions of the programs, checks them and executes them one after the other. The CPU 101 may include various components such as a control unit, an arithmetic logic unit (ALU) and registers. The components are interconnected via a bus. It consists of several parallel lines for the transmission of addresses, data and control signals. Buses can also be outside the CPU and connect them to the memory and various input / output devices. The CPU 101 can preferably also have standardized interfaces to device components such as a hardware accelerator. The CPU 101 can be a conventional CPU that resides on a single conventional CPU chip, such as an INTEL Pentium I / II / III / IV processor chip, Intel PowerPC, embedded processor strongARM from ARM.

Schnittstelle 103:interface 103 :

Weiter ist in der erfindungsgemäßen Vorrichtung gemäß 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.Next is in the device according to the invention 1 an interface 103 shown. the interface 103 has the task of enabling bidirectional data transmission. Alternatively, two unidirectional connections are of course also possible. In the context of the invention, "bidirectional data transmission" means that both data from the host computer / CPU 101 on the hardware accelerator 102 , as well as hardware accelerators 102 to the host computer / CPU 101 can be transferred.

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 Hardwarebeschleuniger 102 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.interfaces 103 In the sense of the invention, for example, a PCI bus or they can also be part of the CPU 101 of the host computer or part of the parallel computing unit in the hardware accelerator 102 be, but are not limited to. A PCI bus is understood to be a so-called "peripheral component interconnect" bus. In the device according to the invention 100 this bus becomes the communication from CPU 101 and hardware accelerators 102 used. Additional devices can also be connected to the PCI bus. In addition, other such buses can be included in the device, which also serve for communication between other device components. The PCI bus is a very popular bus that can be found in practically every Intel-based computer since the Pentium. The PCI bus is described in detail in Shanley, T. and Anderson, D .: PCI System Architecture, 3rd edition, Reading, MA, Addison-Wesley, 1995b and Solari E. and Willse, G .: PCI Hardware and Software Architecture and Design, 4th ed. San Diego, CA, Annabooks 1998. The PCI bus runs at approximately 32/33 or 64/66 MHz, which corresponds to a cycle time of 15 ns. It handles 32 or 64 bit transfers, which means that 32 or 64 bits are requested per cycle. It has a very high bandwidth of 528 Mbyte / s in total.

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.Other possible interfaces can be, for example, an ISA bus (ISA means "Industry Standard Architecture ") or an EISA bus (EISA means" Extended ISA "), USB, PCI-X, Fire Wire, PCMCIA, a bus system within a systems-on-a-chip, connection network on the chip / die. The interfaces can be part of a CPU or a processor for parallel data processing.

Hardwarebeschleuniger 102:hardware accelerator 102 :

Weiter ist in der erfindungsgemäßen Vorrichtung 100 gemäß 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 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 Core wird über entsprechende Interconnects ausgeführt. (Xilinx Virtex II Pro Data Book http://www.xilinx.com/publications/products/v2pro/ds pdf/d083.htm)Next is in the device according to the invention 100 according to 1 a hardware accelerator 102 shown. The hardware accelerator 102 , which can also be referred to by the term “coprocessor”, can comprise a multiplicity of components. Core of the hardware accelerator 102 is one in 1 Logic unit, not shown, for parallel data processing. This logic unit can for example consist of one or more programmable FPGA chips (FPGA means “Field Programmable Gate Array, see also The Programmable Logic Data Book, 1999; Xilinx Inc. 2100 Logic Drive, San Jose, California 95124, USA), one or more hybrid FPGA chips, one or more ASIC chips, logic modules, analog circuits or CPU clusters or be composed of combinations thereof. A hybrid chip is a combination of a "traditional" CPU and an FPGA module. These two processor elements are housed in one housing. The data exchange between the CPU and the FPGA core is carried out via appropriate interconnects. (Xilinx Virtex II Pro Data Book http://www.xilinx.com/publications/products/v2pro/ds pdf / d083.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.If in the hardware accelerator FPGA chip is used, so are for the operation of the hardware accelerator the following components are typically, but not exclusively, necessary: an FPGA module, a RAM module, a clock generator, a PCI interface module, a PCI card, a programmable control logic unit and an operating system. With other hardware accelerator architectures, for example when using an ASIC or a CPU cluster different modules are not, or not in the configuration or other modules required.

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.The parallelism in the device according to the invention 100 can be introduced at different levels. At the instruction level (instructions), for example, pipelining (parallel processing in pipelines and parallel pipelining) can be used. See Agerwala, T. and Cocke, J .: High Performance Induced Instruction Set Processors, IBM TJ Watson Research Center Technical Report RC12434, 1987. With a so-called "pipelined" design, the performance of the computer can be reduced by approximately a factor compared to a purely sequential design In order to be able to achieve an increase in performance by a factor of 100 up to several thousand, however, a multiplicity of instruction pipelines must be used in parallel, all of which must work efficiently with one another In particular, a parallelism of data processing in the pipelines is preferably used at the instruction level, whereby the parallelism of data processing can be achieved by simultaneous operation of many ALUs that are either on a chip, such as an FPGA chip, and / or, as is the case with multiprocessor systems or multiprocessor systems the case is on v Many chips are distributed. Such multi-processor or multi-computer systems have several independent CPUs that work as part of a larger system.

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 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.Data transfer from the CPU 101 to the hardware accelerator 102 over the interface 103 depends on the direction of the transmission indicated by the arrows in 1 between the CPU 101 and the hardware accelerator 102 are shown and comprise two data transfer paths described below, which, however, are to be understood only as examples, but not as restrictive. As an alternative to the transmission of the data as data words, the transmission of the data can also take place bit-serially. The data can be transmitted as an ASCII (standardized character set) character stream, as a binary coded bit stream or using another suitable coding. A transmission with encrypted data must also be included.

Datentransfer 1: Der Datentransfer von der CPU 101 zum Hardwarebeschleuniger 102 benutzt ein in 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.Data transfer 1: The data transfer from the CPU 101 to the hardware accelerator 102 uses an in 1 Data packet, not shown, by the CPU 101 on the hardware accelerator 102 is transmitted. The data packet includes, for example, a so-called header, which consists of two data words and defines the number of subsequent data and the offset position from which the data are stored in the first RAM. The subsequent data is stored in RAM in ascending order. Of course, any other structure equivalent to this and known to the person skilled in the art is also suitable for the data transfer described above.

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.Data transfer 2: the data transfer from the hardware accelerator 102 to the CPU 101 requests the data by writing a data packet that contains only one header. The data is then from the CPU 101 read directly and stored in the memory of an associated host computer. Of course, any other structure equivalent to this and known to the person skilled in the art is also suitable for the data transfer described above.

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.Advantageously, the data between the host computer and the hardware accelerator are transmitted in a burst using DMA mode in order to achieve a minimum data transmission time, of course other transmission methods known per se to the person skilled in the art can also be used according to the invention.

2 zeigt den Aufbau eines Matrixelements 200, das ein Bestandteil einer in 2 nicht dargestellten Matrix ist. Diese Matrix wiederum ist Bestandteil eines in 2 nicht dargestellten Hardwarebeschleunigers, beispielsweise eines Hardwarebeschleunigers 102 gemäß 1. Die Pfeile in 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. 2 shows the structure of a matrix element 200 that is part of an in 2 is not shown matrix. This matrix in turn is part of an in 2 Hardware accelerator, not shown, for example a hardware accelerator 102 according to 1 , The arrows in 2 schematically show the sequence of the method according to the invention in such a matrix element 200 , A matrix element 200 defines a processing element within a processor unit in the hardware accelerator. The matrix or processing element in a special embodiment is, for example, an 8-bit multiplier (arithmetic logic unit), but it can also be any arithmetic and / or logic unit, or a CPU, several cells, an ASIC or a cluster of different ones or the same processors. For example, it can also be a hybrid chip. A hybrid chip is a combination of a "traditional" CPU and an FPGA module. These two processor elements are housed in one housing. The data exchange between the CPU and the FPGA core is carried out via appropriate interconnects (see, for example, Xilinx Virtex II Pro Data Book http://www.xilinx.com/publications/products/v2pro/ds pdf / ds083.htm) A processing element can consist of a group of registers (1 to 32 bits), which form a local memory, and one arithmetic logic circuit called ALU. The ALU can perform simple arithmetic operations. The registers are connected to the ALU, which is the data path through which the data flows. As a basic operation, the data path selects one or two registers. The data path continues to consist of several buses connecting these parts, the ALU itself carries out additions, subtractions and other simple operations the inputs it receives and thus delivers a result, for example in the output register. The result can also be saved in another memory. These arithmetic arithmetic operations are implemented by logic circuits. These circuits are tiny switching elements that are contained in integrated switching chips, for example the chip of the matrix, which can be, for example, an FPGA chip, individually or in combination. These switching elements, which are also called gates, are usually AND, EXOR, OR, NAND, NOR and NOT. AND, EXOR, OR, NAND and NOT are symbols of Boolean algebra. Simple circuits can be implemented by combining individual gates. The components of memories can be flip-flop circuits or latches. These circuits can be combined to form multiple and also more complex memories. The various components, such as circuits for arithmetic operations and memories, are connected via buses.

Der Pfeil A in 2 stellt das i-te Element einer ersten in 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 2 stellt das j-te Element einer zweiten ebenfalls in 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.The arrow A in 2 places the i-th element of a first in 2 Parameter sequence not shown 1 In a special embodiment, the i-th element is, for example, a base of an oligonucleotide, such as a DNA / RNA / LNA or chimeras thereof. The arrow B in 2 also places the jth element of a second in 2 Parameter sequence not shown 2 j and i can be the same or different. In a special embodiment, the jth element is, for example, a base, an oligonucleotide, such as, for example, a DNA / RNA / LNA or chimeras thereof.

Die Parameterfolgen werden jeweils an die beiden Eingänge 208 für die Parameterfolge 1 und 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.The parameter sequences are sent to the two inputs 208 for the parameter sequence 1 and 209 for the parameter sequence 2 the matrix. The structure of the data processing is designed, for example, in a comparison such that a data word can be fed into the matrix with each cycle. The comparisons for a complementary match are carried out within the individual cells of the matrix. This comparison is carried out via a look-up table (LUT), which outputs the weighting factor of the match as a result. A LUT (LookUp Table) corresponds to a ROM (Read Only Memory) or a RAM (Random Access Memory), which has stored user-specific values. When comparing several possible input parameters, one is able to determine a match or a complementary match within a cycle and output it as a result. The parameters to be compared are created as addresses on the LUT and the addressed value that is stored for this address in the LUT corresponds to the result of the comparison.

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.In the particular embodiment of the matrix mentioned above, the parameter sequences are 1 and 2 Bases of an oligonucleotide, such as a DNA / RNA / LNA or chimeras thereof. The individual bases of the parameter sequences 1 and 2 coded with two bits each and to the matrix cell 200 created. The comparator is designed as a LookUp table, which corresponds to ROM (Read Only Memory) or RAM (Random Access Memory). The two inputs of the two parameter elements i and j are used as the address of the LookUp table. The result is encoded in the addressed entry, which is then immediately forwarded to the output. The weighting function is thus directly integrated with the comparison in the LookUp table.

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.In general, the comparison can and the subsequent one Weighting also by any arithmetic functions such as addition, Multiplication, etc., or by combinations of these arise. The weighting of the output can also be more complex Represent function, for example, by additional input signals can be influenced.

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.Every matrix cell 200 determines the result in parallel and makes it available to the next level supply. The registry 207 to cache the results is optional.

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 3 den Ablauf des erfindungsgemäßen Verfahrens, insbesondere den Datenfluß in den Hardwarekomponenten der erfindungsgemäßen Vorrichtung 300. 3 shows a detailed representation of the device according to the invention 300 , It is the components involved within the host computer 301 , especially the host processor (CPU) 306 , the interface 304 and the hardware accelerator 302 shown. Further illustrated 3 the sequence of the method according to the invention, in particular the data flow in the hardware components of the device according to the invention 300 ,

Auf der Seite des Host-Prozessors 306 zeigt 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 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 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:On the host processor side 306 shows 3 a workstation / host computer 301 with a conventional equipment known per se to the person skilled in the art. This equipment includes the host computer 301 , Input devices such as mouse and keyboard 308 , a monitor 307 as a display device and a network card 309 and other optional common hardware components 310 , Such hardware components 310 can be peripheral devices such as a CD-ROM drive, a floppy disk drive, video card, graphics accelerator, and the like. When represented in 3 is a possible configuration. A host computer is also conceivable 301 with only one network card, which is then used “remotely”, that is to say by remote control, via the network from a second computer. Likewise, so-called “embedded processing” by means of embedded systems (embedded systems / processors), for example in peripheral analysis devices possible. On the hardware accelerator side 302 show the 3 a hardware accelerator 302 with an FPGA module 303 is equipped and with the necessary components. Of course, there are also several FPGA modules in a device according to the invention 302 used. The task and functionality of the components are explained below:

PCI-Schnittstellenbaustein 322 und PCI-Bus 304:PCI interface module 322 and 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.With the PCI bus 304 is a medium over which several cards / devices exchange data. The PCI interface module 322 has the task of transferring data over the PCI bus 304 to manage and only those for the hardware accelerator 302 relevant data to those on the hardware accelerator 302 forward connected blocks.

Kontrolllogik 320:control logic 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.The control logic 320 has the task of providing basic functionality for operating the hardware accelerator 302 provide. This functionality includes the configuration of the FPGA module 303 , This basic functionality can act as a "quasi operating system" for the hardware accelerator 302 be seen. The control logic 320 is, for example, from the host computer 301 from or directly from the hardware accelerator 302 driven. It should be noted that this control logic 320 is particularly necessary when using FPGA technology. In the hardware accelerator according to the invention 303 a programmable local or external (host library) control logic is preferred, 320 used. When using a configuration memory, for example an EEPROM, which can be located both outside and inside the FPGA, the control logic is not completely necessary and can also be omitted completely in these cases.

Taktgenerator 321:clock generator 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.For operating, in particular for synchronous operation, the blocks on the hardware accelerator 302 a clock generator is necessary. This can be adjusted in frequency. The clock generator 321 is host computer 301 checked out. Alternatively, a fixed clock generator can be used 321 are used. The clock generator 321 serves the synchronization of digital circuits. With the help of the clock generator 321 Time relations can be defined, for example, to determine the chronological order in which events are to happen or to synchronize the simultaneity of events.

RAM-Bausteine 305:RAM modules 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.With the help of the RAM modules 305 data is saved. The RAM modules 305 can be present both inside the processor element and externally. Their number is arbitrary and will be chosen according to the calculation requirements.

Prozessor Element (FPGA) 303:Processor 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.The matrix 325 in the hardware accelerator 302 In a special embodiment of the invention, an FPGA module, which is defined as a processor element, can be used 303 his. An FPGA module or processor belongs to the class of array processors. An array processor is based on the basic concept that a Control unit for steering many matrix elements, which are also defined as processing elements, provides signals, that is, it sends instructions. Each processing element consists of a CPU or an extended ALU and can have local memory. Since all parts are controlled by a control unit, the processing elements march in tightly closed sections.

In dem in 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 10 × 10 und 106 × 106. Weitere nicht beschränkende Beispiele für die Matrix erfindungsgemäßer Verarbeitungselemente (FPGA Bausteine) sind in der nachfolgenden Tabelle 1 angegeben:In the in 3 The illustrated embodiment is an FPGA processor 303 shown. The FPGA module used in the exemplary embodiment has processing elements which are referred to as a configurable logic block (CLB configurable logic cells) and which have one or more 4-bit look-up tables, one or more 1-bit registers and further basic logic circuits. The physical matrix size of the CLB is typically between 10 × 10 and 10 6 × 10 6. Further, non-limiting examples of the matrix of processing elements according to the invention (FPGA modules) are given in Table 1 below:

Tabelle 1: Beispiele für Verarbeitungselemente und deren Matrixgröße.

Figure 00320001
Table 1: Examples of processing elements and their matrix size.
Figure 00320001

Ein Matrixelement besitzt dabei 4 × 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.A matrix element has 4 × 4 bit LUTs (The Programmable Logic Data Book 2000 ; Xilinx Inc.) The processing elements from Table 1 are available from Xilinx. It goes without saying that other processing elements with different, for example even larger, matrices can also be used according to the invention.

Durch das Zusammenschalten mehrerer CLBs kann so innerhalb des FPGAs eine Verarbeitungsmatrix aufgebaut werden, deren physikalische Matrixgröße zwischen 1 × 1 und 106 × 106, bevorzugt zwischen 16 × 16 und 30 × 30 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.By interconnecting a number of CLBs, a processing matrix can be built up within the FPGA whose physical matrix size is between 1 × 1 and 10 6 × 10 6 , preferably between 16 × 16 and 30 × 30. The size of the processing matrix and the individual matrix elements themselves are preferably defined in advance, but are also defined in a variable manner. Logical comparisons are carried out within the cells of the processing matrix using a LUT and the two values applied. Of course, any logical or arithmetic operation, such as multiplication, is conceivable within a cell of the processing matrix and can be achieved by interconnecting two or more CLBs of the FPGA module.

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 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.In an FPGA processor 303 are the processing elements within a matrix 325 arranged and are interconnected in a complex manner. Such processors are particularly suitable for processing two-dimensional problems and are particularly suitable for matrices. They can also be scaled up well by adding additional processors to the processors present in the hardware accelerator. This increases the computing power, which means that significantly more parameters can be processed at the same time. The hardware can thus be adapted to the problem: Due to the number and arrangement of the processors used, higher-dimensional matrix problems can also be dealt with, such as when comparing more than two parameter sequences at the same time. In addition, longer parameter sequences can be processed or compared with a larger number of processors. In the data flow processors according to the invention, either the control unit can determine which instructions are to be carried out, or each processing element 303 itself ent decide whether it wants to execute an instruction or not, mostly on the basis of local data such as condition code bits. In the embodiment in 3 is inside the processor element 303 a sequence controller 323 available. This controls the data flow in the processor element 303 , It controls the processing elements and storage elements 305 that are both inside the processor 303 can also be present externally.

Die Pfeile symbolisieren den Ablauf des erfindungsgemäßen Verfahrens in einer erfindungsgemäßen Vorrichtung 300.The arrows symbolize the course of the method according to the invention in a device according to the invention 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.The method according to the invention is further illustrated of a method for determining primer sequences as an example illustrated without including it a limitation of the method according to the invention should be understood.

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.For the determination of the primers will initially be two sequence areas selected from each sequence to be detected (target sequence). This Areas are usually longer as the optimal primer to be found for each target sequence. additionally be for the determination of the primers takes other parameters into account (e.g. primer length, temperature Etc.). These parameters determine the selection criteria for the evaluation function. The potential primer candidates run through in the calculation for any given Target sequence several calculation methods. One of these assessment procedures is the one-to-one comparison of individual base pairs. The partial results are combined into one result in an overall evaluation.

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.The entire calculation is divided yourself in two stages. In the first stage, the individual primers evaluated separately and the optimal primers determined. In the second Level is the interaction between the primers of each one Target sequence examined with the primers of all other target sequences.

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.The following is the first stage described in the calculation. These calculations are further subdivided in the areas a) generation of primers, b) calculation of the parameters of the primer c) evaluation of the determined values. These three areas a), b) and c) are explained in more detail in the following sections.

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
The primer generation, that is to say the combination of the primers, is carried out as follows: Individual primers are to be extracted from a predetermined DNA sequence and are used for the calculation. The primers are extracted on the basis of the given DNA sequence and the length specification for the primers. A predeterminable number of primers is generated for each length. The number is calculated by:
Number of primers = (DNA sequence length) - (primer length) + 1

Bedingung: die DNA Sequenz ist länger, d.h. weist mehr Nukleosidbausteine auf als der Primer.Condition: the DNA sequence is longer, i.e. has more nucleoside units than the primer.

Beginnend an der ersten Sequenzposition werden die Primer ermittelt. Dieser Vorgang wird für jede gegebene Primerlänge wiederholt.Starting at the first sequence position the primers are determined. This process is given for each primer length repeated.

Ist die DNA Sequenz beispielsweise:

Figure 00350001

und soll die Primerlänge bei 10–11 Basen liegen, so werden folgende Primer ermittelt: 10 Basen besitzen sind folgenden Primer:
Figure 00360001
und 11 Basen besitzen die folgenden Primer:
Figure 00360002
For example, if the DNA sequence is:
Figure 00350001

and if the primer length is 10–11 bases, the following primers are determined: 10 bases have the following primers:
Figure 00360001
and 11 bases have the following primers:
Figure 00360002

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.Now the parameter sets for the optimal Primer set can be determined. There are the following important boundary conditions: The primers are allowed not bind with yourself, but also not with the others the chip. The primers are allowed also do not bind with the markers. The first and second boundary conditions apply also for Marker.

Bei der Berechnung werden alle möglichen Kombinationen des Primers (die durch die erste Stufe „Primergenerierung" ermittelt werden) mit den Reverse Primer untersucht.When calculating all possible Combinations of the primer (which are generated by the first stage "primer generation" are determined) with the reverse primer.

Die zu berechnenden Parameter sind: a) Self Annealing (SA), b) Self End Annealing (SEA), c) Weitere Berechnungen (Zusatzfunktionalitäten wie beispielsweise Temperatur und GC-Verhältnis).The parameters to be calculated are: a) Self Annealing (SA), b) Self End Annealing (SEA), c) Further calculations (Additional Features such as temperature and GC ratio).

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.The calculation of the SA values is carried out, to study binding with the same primer. If there is a bond with itself, the bond with the Prevented sequence to be searched and an incorrect test result is produced.

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; C?G = 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:

Figure 00370001
There is the following calculation rule: The calculation is carried out by determining all possible combinations of the overlay. When determining the SA value, only the complementary matches (A⟺T and C⟺G) are added together. When adding up, it does not matter where the matches are. Only the existence of a match is relevant. The weighting the combination found is different (A? T = 2; C? G = 4). It goes without saying that other weightings are also possible within the scope of the invention. Due to the biological properties, the primer only has to be tested in reverse order against the primer. For example, the primer to be examined with the 4 bases AGTC. tested against the reverse primer CTGA as follows: There are 7 overlays to calculate SA. In the example, the first two overlays to be evaluated are shown, the other 5 overlays are by shifting the reverse primer relative to the primer to be examined in order to form a base. The first overlay is:
Figure 00370001

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

Figure 00380001
The total calculations to be carried out for the example with a length of 4 bases are shown in the table below: Table 1: Table with the evaluations to be carried out for the 4 base example in the SA calculation
Figure 00380001

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 Berechnungsverfahren 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.When calculating the SEA value the binding of the individual primers to themselves is also tested, to determine the applicability of the primer. For the calculation the SEA values comes a very similar one Calculation method as in the case of determining the SA values for Application. For the determination of the SEA values only the primer combinations are interesting, that start at the end of the primer. That is, only those are for the calculation To consider primer combinations, where the last base interact with a base of the reverse primer can be found until the first occurrence of a mismatch. All subsequent matches are not added.

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:

Figure 00390001
For example, as in the case of the SA value calculation, the primer to be tested with the 4 bases AGTC is tested against the reverse primer CTGA as follows: There are 4 superimpositions for the calculation of SEA. In the example, the first two overlays to be evaluated are shown, the other 2 overlays are by shifting the reverse primer relative to the primer to be examined in order to form a base. The first overlay is:
Figure 00390001

Die zweite Überlagerung ist:

Figure 00390002
The second overlay is:
Figure 00390002

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.In contrast to the determination of values in the SA calculation, only the matches in the SEA calculation added up, starting from the last position in the primer until the first mismatch occurs. matches after this position are not added.

Die Gewichtung der gefundenen Übereinstimmungen ist identisch mit der bei der SA Berechnung.The weighting of the matches found is identical to that for the SA calculation.

Zur Verdeutlichung dieser Berechnung sind die sich ergebenden Berechnungen in der nachfolgenden Tabelle zusammengefasst.To clarify this calculation are the resulting calculations in the table below summarized.

Tabelle 2: Tabelle mit den für das 4 Basen Beispiel durchzuführenden Bewertungen bei der SEA Berechnung

Figure 00400001
Table 2: Table with the evaluations to be carried out for the 4 base example in the SEA calculation
Figure 00400001

Für jeden ermittelten Primer werden weitere Berechnungen ausgeführt, die für die spätere Gesamtbewertung des Primers hinzugezogen werden.For For each primer determined, further calculations are carried out for the latter Overall rating of the primer can be consulted.

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.The evaluation of the determined values done for every primer generated in the first stage. The determined values for the SA and SEA and for the further calculations are each based on a weighting factor merged into an overall result. In a special embodiment only the maximum received is taken over as SA / SEA value and with the weighting factor added. It goes without saying that a different weighting and / or Calculation rule require corresponding modifications that the specialist works without inventive step to be able to implement immediately.

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.In addition to determining the Overall results are the individual results with the transferred Compared parameters. The parameters describe an area in which the results are valid. If one of these areas is violated, the calculated primer is used discarded and considered invalid classified.

Aus allen gültigen Werten werden die jeweils besten Primer ermittelt und für die Verarbeitung in der zweiten Stufe zwischengespeichert.All valid values become the best primer determined and for the processing is cached in the second stage.

Im Folgenden wird die zweite Stufe der Berechnung beschrieben.Below is the second stage described in the calculation.

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.Interaction between primers of the individual spots, between primers and primers and between to evaluate the markers, again come the calculation methods SA and SEA to wear.

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.In this stage, however, the same primers are not tested against themselves, but one primer (corresponds to a result from the first stage) is compared against another primer. It will So a pairwise comparison of all possible primer combinations was carried out.

Die zu berechnenden Parameter sind a) Pair Annealing (PA) und b) Pair End Annealing (PEA)The parameters to be calculated are a) Pair Annealing (PA) and 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 Berechnungsverfahren für die PA und PEA Berechnung beispielsweise auch Primer mit unterschiedlicher Länge verarbeiten.The calculation methods for PA and PEA essentially correspond to the procedures in the determination of the SA and the SEA value, although obviously also deviations fall within the scope of the present invention. Details of the Calculation are explained above. The calculation methods are basically the same, but this can Calculation procedure for the PA and PEA calculation, for example, also primers with different Process length.

Für jeden ermittelten Primer werden wiederum weitere Berechnungen ausgeführt, die für die spätere Gesamtbewertung des Primers hinzugezogen werden.For for each primer determined, further calculations are carried out, which for the later overall evaluation of the primer.

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 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 × 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.This process sequence is described below using the device according to the invention 300 carried out. In the specific, non-limiting exemplary embodiment, the special method of determining the primer is described using 3 explained. In the exemplary embodiment described below, the special method for primer calculation was implemented on a PC system (Pentium III 500 MHz) and an FPGA processor (microEnable 2/2 × 1 Mbyte RAM). This exemplary embodiment describes an implementation as an example. When other components are used, the method described below naturally changes without departing from the scope of the invention. The process is divided into five steps, which are described below.

Schritt 1:Step 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.On the computer 301 , or the host computer, a program is running that accepts and / or reads the data to be processed. The entered data is then compressed and converted into a data format suitable for transmission. After the data format has been created, the data is transferred via the interface 304 to the hardware accelerator 302 transferred and there via the interface module 322 and the optional drain controller 323 , which can also be replaced by suitable software in a RAM module 305 cached. The sequence controller 323 controls the reading of the primer data from the RAM module 305 , This RAM can be both inside the processor element 303 as well as an external RAM module. This step is represented by the arrows marked with a "1". This transmission also includes the transmission of parameter data which are required for the later calculation.

Schritt 2:Step 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 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.After the transfer, the processing of the data on the hardware accelerator starts 302 , In this second step, the individual primers are generated from the sequence data and as input data 324 to the matrix 325 handed over for calculation. Within the matrix 325 the values for SA and SEA are calculated and then after the evaluation procedure 328 passed. In parallel, further calculations 326 . 327 carried out on the basis of the primer data and also the evaluation method 328 fed. These calculations are in 3 as a calculation 1 (326) to calculation N ( 327 ). The best 64 results E are then in a second RAM module 305 (external or internal). This calculation is carried out for each of the transferred DNA sequences. This step is shown with the arrows marked with a "2".

Schritt 3:Step 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 (P1 + 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.After calculating the individual primers, the best pairs of two successive primers are determined. The primer pair data of an even and an odd primer are determined (P1 + P2; P3 + P4; P5 + P6; etc.). The result data (from step 2) become from the second RAM 305 read. In parallel, the sequence data from the first RAM 305 read. The processing of this data takes over the same unit of the matrix 325 , whereby the calculations carried out in parallel are not taken into account in the evaluation. The partial results of the primers from the first stage are then combined with the results determined in this stage. The best 5 primer pairs of a combination (even with odd primers) are then stored in the second RAM. This step is shown with the arrows marked with a "3".

Schritt 4:Step 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.In the fourth step of the processing, the data are read from the second RAM and sent to the host processor 306 transfer. Both the results from step 2 and step 3 are read out. This step is represented by the arrows marked with a “4”.

Schritt 5:Step 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.Once the data is transferred to the host processor 306 the results are subjected to post-processing. During the postprocessing, the sequences found are selected and, together with the determined results, shown to the user on the monitor 307 shown and written to a file.

In dem speziellen Ausführungsbeispiel der Primerbestimmung des erfindungsgemäßen Verfahrensablaufs in 3 werden die Daten in speziellen Datenformaten verwendet.In the special embodiment of the primer determination of the method sequence according to the invention in 3 the data is used in special data formats.

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.The data is inside the host computer 301 preprocessed. This preprocessing converts the input data into the subsequent data format. This data format is stored in the computer's memory 301 prepared. Data is transferred via DMA access. The data formats for storing the data in the two RAM modules differ due to the data required for the calculation. The formats for the two RAM modules are defined in the following sections.

Das Datenformat der Sequenzdaten und Parameterdaten nach dem diese Daten in der RAM Bank 1 305 gespeichert sind, wird nachfolgend beschrieben.The data format of the sequence data and parameter data according to which this data is stored in RAM bank 1 305 are described below.

Der Speicher ist unterteilt in 1024 Blöcke zu je 64 Worten a 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.The memory is divided into 1024 blocks 64 words of 32 bits each. Each of these blocks stores a sequence, from which the respective primers are extracted. Following the 1024 blocks there is another block attached which is the parameter data for contains the second part of the calculation.

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.It goes without saying that the limitation to 1024 blocks and 64 words per block is not a basic limitation, but a freely chosen one Limit for the special embodiment and can be freely selected depending on the intended application can.

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.In the block with the parameter data for the second calculation is two 32 bit words for each Primer pair that is calculated. Within the two words the parameter data for the PA and PEA calculations are saved. The in the two words saved parameters are: PA minimum, PA maximum and PA optimum, as well as PEA minimum, PEA maximum and PEA Optimum.

Zur Speicherung der Sequenz steht jeweils ein Block mit 64 Adressen a 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.The sequence is saved one block with 64 addresses of 32 bits each. This block divided continue in an area that contains the parameters necessary for the block contains and a block with the sequence data. From this division results yourself a maximum length of 944 bases per sequence.

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.The sequence data is structured in such a way that 16 bases are encoded for each data word. The sequence controller 323 reads in the data as required and generates the individual primers for the calculation.

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.The parameters for the calculation of the first step are stored in the lowest 5 data words. These parameters are used by the sequence controller at the beginning of each calculation 323 read in and saved in the evaluation function.

Das Datenformat, das die Ergebnisdaten aus dem ersten und zweiten Schritt speichert, wird nachfolgend beschrieben.The data format that the result data stores from the first and second step is described below.

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.The RAM bank 2 is divided into blocks with 256 entries each per sequence. The entire area consists exclusively of Packets of 256 words each.

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.128 words are required to temporarily store the results from the first step, because each result is coded in two data words. These results are within the block in descending order from the address 127 stored.

Der Bereich zwischen der Block Adresse 128 und 256 ist den Ergebnissen des zweiten Schrittes vorbehalten.The area between the block address 128 and 256 is reserved for the results of the second step.

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.Based on the calculation one Primer pairs (odd and subsequent even primers) are created for them two blocks only one result at a time. This result is only within the odd blocks saved.

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:The following non-limiting embodiment of the inventive method shows the acceleration when calculating primers against one Sequential execution method of process steps:

Ausführungsbeispielembodiment

Die Messungen der Softwareausführung wurden auf einem Pentium III 500 MHZ/128 MByte RAM ausgeführt. Die Gesamtdauer des Verfahrens betrug 1920 s.The measurements of the software execution were executed on a Pentium III 500 MHz / 128 MB RAM. The The total duration of the procedure was 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.The measurements on the hardware accelerator were on a microEnable II system with a Virtex 400 FPGA executed at 50 MHz. The total duration of the process according to the invention was 3.41 s. to execution a host computer system was used for the measurements following parameters: Intel Celeron 500MHz / 128Mbyte.

Der sich ergebende Beschleunigungsfaktor des erfindungsgemäßen Verfahrens im Vergleich zu einem herkömmlichen Verfahren beträgt 563,05.The resulting acceleration factor of the method according to the invention compared to a conventional one Procedure is 563.05.

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. 4 verdeutlicht den Ablauf der gesamten Berechnung und stellt die Programmabläufe in der Software und auf dem Hardwarebeschleuniger detailliert dar. 4 shows the sequence of the method according to the invention 400 in a hardware accelerator. The Process sequence according to the invention 400 is illustrated in more detail using a procedure for determining primer sequences. Furthermore, the flow chart shown is 400 specifically for the processing of parameter sequences according to the invention on FPGAs. Individual parts of the processing are different or unnecessary when using other processor technologies. 4 illustrates the process of the entire calculation and shows the program sequences in the software and on the hardware accelerator in detail.

Der Verfahrensablauf 400 innerhalb des Hardwarebeschleunigers 401 reduziert sich auf die Darstellung in 4. Beim Verfahrensschritt 402 wartet der Hardwarebeschleuniger 401, bis er Daten von dem in 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 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.The procedure 400 within the hardware accelerator 401 reduces to the representation in 4 , At the procedural step 402 the hardware accelerator is waiting 401 until he gets data from that in 4 host computer not shown gets transferred. As soon as this data is transferred from the host computer, this data is read in in step 403 and stored in the first RAM bank. Immediately after saving, the calculation of all individual primers of each sequence starts. In step 404, the primers are generated and then fed to the processing components. In step 405, the SA and SEA values in the matrix are calculated. Step 406 runs parallel to step 405, in which further calculations are carried out. In step 407, the results are determined using the evaluation function. In step 408, the best results are collected. Step 409 involves querying whether the last primer in the sequence has been calculated. In the event of a no to this question, the procedural steps are repeated 404 to 409 run through. In the event of a yes to the query in step 409, that is to say after all primers have been calculated, in step 410 the best results are stored in the second memory, namely in the RAM bank 2 stored. In step 411 the next sequence is addressed. Step 412 includes the query whether the last sequence with the associated calculated primers has run through. In the event of a no to this question, the procedural steps are repeated 404 to 412 run through. In the event of a yes to the query in step 412, step 413 is carried out. In step 413, the second stage for determining the PA and PEA values that are in 4 is not shown in detail. After the second stage has been completed, the data is read back from the host computer in step 414 and displayed.

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 erreicht. 5a shows the process flow according to the invention 500 in a matrix 503 , The illustration illustrates a particular aspect of the invention, namely the structure of a matrix 503 from the individual combinations of the m parameters from the n parameter sequences, in this case the parameter sequences 501 and the parameter sequence 502 that should be compared. Both parameter sequences have 4 parameters. It goes without saying that, of course, also parameter sequences with more than 4 parameters can only be selected in each case or together 4 parameters without going outside the scope of the invention. The number m of parameters to be compared can be selected as desired and is determined by the logic resources available, for example ALUs. This matrix structure of the matrix 503 finds its correspondence in the matrix of a parallel processing system within a device according to the invention. The matrix 503 has 16 matrix elements 507 which comprise at least one arithmetic logic arithmetic unit. In the matrix elements 507, the calculation of the individual combinations of parameters takes place in parallel, that is to say simultaneously. This simultaneous processing of the individual combinations accelerates the entire process by several orders of magnitude.

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 5a 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 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. Bewertungsvorschrift 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 5a als Pfeile 508, die ihren Anfang in jeder Vergleichszelle 507 haben, dargestellt sind.The processing of the parameter data when comparing the first parameter sequence 501 (also parameter sequence 1 called) with the second sequence of parameters 502 (also parameter sequence 2 ) is in three stages, which in 5a with the digits 1 . 2 and 3 are shown. Both parameter sequences 501 and 502 have the same number of parameters, namely 4. The matrix 503 becomes from the individual combinations of the parameters from the two parameter sequences 501 and 502 built up. It is important in connection with the present invention that all conceivable possible combinations of the m parameters of the n parameter sequences to be compared are formed at the same time, although other processing options can of course also be used within the scope of the invention. Denote the parameter combinations with (i, k), where i is the i-th parameter of the parameter sequence 501 and k is the kth parameter of the parameter sequence 502 is, so is the matrix 503 composed of elements (i, k), in which case i the values 1 to 4 passes through and also k the values 1 to 4 passes. The parameter combinations (i, k) are the comparison cells, that is, the matrix elements 507 the matrix 503 assigned to the parallel processing system. The matrix built up 503 with the comparison cells 507 is in 5a seen in the 1st stage of the calculation. In the comparison cells 507 In the 1st stage of the calculation there is a simultaneous evaluation of each parameter combination (i, k). This assessment is based on a 1st assessment rule. The 1st assessment rule can be used for each comparison cell 507 be the same, but it can also be the same for every comparison cell 507 effect an individual evaluation, whereby these individual evaluations can be the same or different from one another, or can be partly identical or partly different from one another. The evaluation of the comparison cells 507 provides the first results in 5a as arrows 508 that started in every comparison cell 507 have are shown.

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 5a bewirkt die 2. Bewertungsvorschrift 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 5a als Pfeile 505 dargestellt.These first results can optionally be based on a second evaluation rule 504 are combined in step 2, whereby all or part of the first results can be combined with one another. Each individual 1st result can also be changed individually, with the 2nd evaluation rule for each 1. Result may be the same or different, or may be partially the same or different. The first results can also remain unchanged in their value. In 5a causes the 2nd assessment rule 504 a combination of the comparison cells 507 in the diagonals of the matrix 503 , This combination is done according to the 2nd assessment rule 504 and can be a combination, for example, by an arbitrary arithmetic operation, such as addition, subtraction, multiplication, division. Logarithmic evaluation, etc. or by using arithmetic operations. The second results formed in this way are in 5a as arrows 505 shown.

Die zweiten Ergebnisse 505 können optional nach weiteren optionalen nachgeschalteten Bewertungsvorschriften verarbeitet werden. Dabei können die zweiten Ergebnisse optional nach einer 3. und weiteren Bewertungsvorschriften 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 Bewertungsvorschriften 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.The second results 505 can optionally be processed according to further optional downstream assessment rules. The second results can optionally be based on a third and further evaluation rules 506 in stage 3 can be combined with one another, whereby all or part of the second results can be combined with one another. Each individual second result can also be changed individually, whereby the third and further evaluation rules for every second result can be the same or different, or can be partially the same or different. The value of the second results can also remain unchanged. The 3rd and other evaluation regulations 506 in stage 3 alone or in any combination with one another ultimately lead to the result 509 which can be read as result E by the user.

In dem speziellen Ausführungsbeispiel der Primerbestimmung ist die Aufgabe der Matrix 503 die Berechnung des Self Annealing (SA) und des Self 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.In the special embodiment of the primer determination, the task of the matrix is 503 the calculation of the Self Annealing (SA) and the Self End Annealing (SEA) value. Due to the functional equality in the calculation, the matrix 503 in a slightly modified form can also be used for the calculation of the pair annealing and pair end annealing value.

5a erläutert den Aufbau der Matrix 503 aus 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. 5a explains the structure of the matrix 503 out 5a for the special embodiment of the primer determination. All possible combinations of overlays of two primers are to be evaluated and the weighted matches have to be added up, depending on the calculation of annealing or end annealing.

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. Bewertungsvorschrift 553 (bzw. 504 in 5a) aufsummiert. Das Ergebnis (505 in 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.The first sequence of parameters 551 and the second sequence of parameters 552 correspond to the first and second primer. In the case of the calculation of the SA and SEA value as explained above, the second primer has the exactly opposite base sequence of the first primer. As explained above, the primers are different in the case of PA and PEA value calculation. In every comparison cell 554 the matrix 550 a base combination of a base of the 1st and 2nd primer is evaluated according to its binding strength, as explained above according to a 1st evaluation rule. In the second stage, these values are for each diagonal 555 the matrix 550 , formed from the individual diagonally arranged matrix elements or comparison cells 554 according to a second assessment rule 553 (respectively. 504 in 5a ) added up. The result ( 505 in 5a ) is the sum of the weighted matches in the respective diagonal 555 have been determined. The number of values per diagonal 555 to be added depends on the position of the diagonal 555 in the matrix 550 , Per diagonal 555 the totalized value is passed on to the subsequent third stage (step 3). In the third stage, the results of the individual diagonals 555 compared in pairs. In this special embodiment of the method, the maximum value that results for a pair of primers is determined. Of course, the values can also be obtained by addition subtraction or other mathematical arithmetic operations. Table 3 shown below shows all operations that occur within the matrix 550 run in parallel.

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.Table 3: Supplementary example for the calculation the maximum value when performing the SA calculation in the matrix structure working in parallel. The overlying base pairs will be again carried out using the primer with 4 bases (AGTC).

Figure 00540001
Figure 00540001

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.Another embodiment for use of the method according to the invention and the device according to the invention provides homology searches in databases or identity comparisons in other bioinformatics applications.

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.Because the rate of structure elucidation via X-ray crystallography or NMR is much lower than the number of new DNA or protein sequences, that become known every day becomes an alternative predictable fairly reliable Approach to structure determination needed. The goal is to create key macromolecules (i.e. proteins) identify which cause pathological events and potential ones Inhibitors for these macromolecules propose. To the molecule to understand and so possible To suggest interactions with its substrate or other substances to be able you have to know the structure of the macromolecule. The biggest obstacle is often the lack of structural data about the relevant molecule. If the examined macromolecules are proteins, one can use homologous proteins of other species whose structure is known is. Modeling unknown protein structures based on their homologues is as homology-based structural modeling known.

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.Called homologous proteins one generally uses polypeptides that have a similar amino acid composition have in common. In most cases, the proteins are included a relatively high degree of identity also structurally and functionally homologous. amendments the amino acid sequence of a protein a change the 3-D structure cause. It is this relationship between the amino acid sequence of one Protein and its three-dimensional structure that allows you to Proteins, for which have no NMR or X-ray crystal structures gives to compare their structure homologues, their structure one knows.

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.The sequence homologues with a known structure make it possible to calculate the structure of the homologous sequences, the structure of which is unknown, by means of comparative modeling and thus allow an insight into the protein function. In homology-based protein modeling, the experimentally determined structures are generally referred to as matrices and the sequence homologue (that is, a new chain of nucleotides that has been identified, for example, in an ongoing genome project) is called the target sequence. The homology-based approach to building models involves four consecutive steps. The first is to identify known structures that have a sequence related to the target sequence. This is typically achieved using software tools such as BLAST, which you can search for serve matrices. In the second step, the potential matrices are compared to the target sequence in order to identify the most closely related template. In the third step, a model of the target sequence is calculated, starting from the most suitable template of the second step. The fourth step is finally to evaluate the model of the target sequence using a number of criteria such as energetics.

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.The method according to the invention and the device according to the invention can now support the calculation of the first and second step. in the Compared to conventional sequential computing methods can the computing time by the invention in parallel processing matrix approach by a factor of, for example, 1000 shortened become.

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.The ideal case is the amino acid sequence of the unknown protein quite similar to that of its structural homologue and there is, for example, in the PDP protein database (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) pages 1078-1084) more than one known Homologues from other species. The goal is now these well-known homologues to find.

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.The program BLAST of the NCBI (old school, S. F. et al. Basic local alignment search tool. In: J. Mol Biol. 215 (1990) pp. 403-410) allows to find these well-known homologues. So that the invention in parallel processing matrix approach within the BLAST program an essential However, adjustments can be made to speed up the calculation process of the calculation method necessary. In the example of homology search can the matrix according to the invention can be constructed from the combinations of two parameter sequences. there the two parameter sequences are generally to be compared with theirs Unequal length parameters. A parameter sequence can be the primary sequence (amino acid sequence) the target sequence and the other parameter sequence is a protein sequence be in a given database. The matrix can be remarkable Take sizes so that it may be more appropriate depending on the number of parallel matrices, or the number of the parallel processing matrix elements, the matrix into several Subdivide sub-matrices. With such a method, for example, any single sub-matrix for processed in parallel. By forming meaningful overlays of the two parameter sequences and appropriate evaluation of the formed Parameter combinations as well as suitable subsequent evaluation regulations can the closest sequence homologues are selected.

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.Other applications of the invention in parallel processing matrix concern the second step of homology search namely the comparative alignment of the potential matrices with the Target sequence. Other applications are sequence comparisons, evaluation of sequences or, for example, when determining / calculating of DNAs. The matrix according to the invention also accelerates also searching databases, for example substance databases.

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.Often takes place within such Searches of databases comparative formations take place in the case of substance databases, for example of sought substance properties and substances in the database with their specific properties. The matrix according to the invention For example, a sequence of parameters, whose parameters are the desired ones Contains properties with parameter sequences, the parameters of which the substances with their substance properties contains from the database to compare. This comparison is made by the matrix according to the invention carried out in parallel and leads thus to a significantly accelerated database research in substance databases.

Claims (48)

Verfahren zum Vergleich von n Parameterfolgen, wobei jede Parameterfolge Parameter enthält und wobei ein Teil der Parameter aller n 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, dadurch gekennzeichnet, dass 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.Method for comparing n parameter sequences, where each parameter sequence contains parameters and a part of the parameters of all n parameter sequences are combined with one another to form parameter combinations according to a previously defined regulation and a first value is assigned to each parameter combination according to a previously defined first evaluation regulation, and the result of the Evaluation rule corresponds to a property accessible to a measurement, characterized in that the combinations of the parameters of the n parameter sequences form an m-dimensional matrix and a part of this m-dimensional matrix corresponds to a matrix which comprises arithmetic logic computing units. Verfahren nach Anspruch 1, wobei die arithmetischen logischen Recheneinheiten die Bewertung der gebildeten Parameterkombinationen durchführen.The method of claim 1, wherein the arithmetic logic Computing units the evaluation of the parameter combinations formed carry out. Verfahren nach Anspruch 1 oder 2, wobei die Bildung aller oder eines Teiles der Parameterkombinationen gleichzeitig durchgeführt wird.The method of claim 1 or 2, wherein the formation of all or of part of the parameter combinations is carried out simultaneously. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Bewertung aller oder eines Teiles der Parameterkombinationen gleichzeitig durchgeführt wird.Method according to one of the preceding claims, wherein the evaluation of all or part of the parameter combinations performed simultaneously becomes. Verfahren nach einem der Ansprüche 1 bis 4, wobei die ersten Werte für alle Parameterkombinationen aus den n Parameterfolgen nach einer weiteren Bewertungsvorschrift weiterverarbeitet werden könnenMethod according to one of claims 1 to 4, wherein the first Values for all parameter combinations from the n parameter sequences after one further assessment rule can be processed Verfahren nach einem der vorhergehenden Ansprüche, wobei jede einzelne und/oder mehrere Kombinationen der Parameter in einer oder mehreren logischen Recheneinheiten gebildet und/oder bewertet wird.Method according to one of the preceding claims, wherein each individual and / or several combinations of the parameters in one or several logical computing units are formed and / or evaluated becomes. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass n eine ganze Zahl ist, die größer oder gleich 2 ist und dass m eine ganze Zahl ist, die gleich n ist oder von n verschieden ist.Method according to one of the preceding claims, characterized characterized in that n is an integer that is greater than or is 2 and that m is an integer equal to n or is different from n. Verfahren nach einem der vorhergehenden Ansprüche, wobei jede Folge von Parametern aus einer Abfolge von diskreten Parametern besteht.Method according to one of the preceding claims, wherein any sequence of parameters from a sequence of discrete parameters consists. Verfahren nach Anspruch 8, wobei die Folgen die gleiche und/oder eine unterschiedliche Anzahl von Parametern umfassen.The method of claim 8, wherein the sequences are the same and / or include a different number of parameters. Verfahren nach Anspruch 9, wobei die Folgen eine bestimmte vorab definierte Anordnung der Parameter innerhalb der Folgen aufweisen.The method of claim 9, wherein the sequences pre-determine a particular one have a defined arrangement of the parameters within the sequences. Verfahren nach einem der Ansprüche 8–10, wobei die Parameter eine einer Messung zugängliche Eigenschaft aufweisen.The method of any of claims 8-10, wherein the parameters are one accessible to a measurement Feature. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Werte aus der 1. Zuordnung von Werten weiteren Bewertungsvorschriften unterworfen werden können.Method according to one of the preceding claims, wherein the values from the 1st assignment of values to further valuation rules can be subjected. Verfahren nach Anspruch 12, wobei das Ergebnis eine einer Messung zugängliche Eigenschaft aufweist.The method of claim 12, wherein the result is a measurement accessible Has property. Verfahren nach einem der vorhergehenden Ansprüche zur Gestaltung, Bildung, Design von/oder zur Selektion von Stoffen.Method according to one of the preceding claims for Creation, formation, design of / or for the selection of substances. Verfahren nach Anspruch 14, wobei die Stoffe biologische Moleküle sind.The method of claim 14, wherein the substances are biological molecules. Verfahren nach Anspruch 15, wobei die Moleküle Oligonukleotide sind.The method of claim 15, wherein the molecules are oligonucleotides. Verfahren nach Anspruch 16, wobei die Parameter in den Parameterfolgen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 15 die Basen der Oligonukleotide umfassen.The method of claim 16, wherein the parameters in the parameter sequences of the steps of the method according to any one of claims 1 to 15, the bases of Include oligonucleotides. Verfahren nach Anspruch 17, wobei die Parameterkombinationen dadurch gebildet werden, 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.The method of claim 17, wherein the parameter combinations are formed by two parameter sequences, the n parameter sequences to each other go through part of all possible arrangements, and wherein the arrays are shifted one discrete at a time Parameters come about. Verfahren nach Anspruch 18, wobei die Parameterkombinationen aus dem Teil aller möglichen Anordnungen der Parameterfolgen Basenpaare umfassen.The method of claim 18, wherein the parameter combinations from the part of all possible Arrangements of the parameter sequences include base pairs. Verfahren nach Anspruch 19, wobei den Basenpaaren ein hierarchisierbarer Wert zugeordnet wird.The method of claim 19, wherein the base pairs are hierarchical Value is assigned. Verfahren nach Anspruch 20, wobei ein Teil der Parameterkombinationen gleichzeitig gebildet wird und diesem Teil und/oder einem Teil dieser gleichzeitig gebildeten Kombinationen zur gleichen Zeit ein hierarchisierbarer Wert zugeordnet wird.21. The method of claim 20, wherein a portion of the parameter combinations is formed simultaneously and this part and / or part of this Combinations formed at the same time can be hierarchized Value is assigned. Verfahren nach Anspruch 21, wobei der zugeordnete Wert der Bindungsstärke entspricht.22. The method of claim 21, wherein the associated value corresponds to the bond strength. Verfahren nach Anspruch 22, wobei die, den Bindungsstärken entsprechenden Werte weiteren Berechnungsverfahren unterzogen werden, so dass das Ergebnis ein oder mehrere Auswahlkriterien für ein oder mehrere Oligonukleotide darstelltThe method of claim 22, wherein the ones corresponding to the bond strengths Values are subjected to further calculation methods so that the Result one or more selection criteria for one or more oligonucleotides represents Verwendung der Schritte des Verfahrens nach einem der vorhergehenden Ansprüche zur Gestaltung, Bildung, Design von/oder zur Selektion von Stoffen.Use of the steps of the method according to one of the preceding Expectations for the design, formation, design of / or for the selection of substances. Verwendung nach Anspruch 24, wobei die Stoffe biologische Moleküle sind.Use according to claim 24, wherein the substances are biological molecules. Verwendung nach Anspruch 25, wobei die Moleküle Oligonukleotidsequenzen sind.Use according to claim 25, wherein the molecules are oligonucleotide sequences are. Verwendung nach Anspruch 26, wobei die Parameter in den Parameterfolgen der Schritte des Verfahrens nach einem der Ansprüche 1–23 die Basen C, G, T, A, U der Oligonukleotidsequenzen umfassen.Use according to claim 26, wherein the parameters in the parameter sequences the steps of the method according to any one of claims 1-23, the bases C, G, T, A, U of the oligonucleotide sequences. Verwendung nach Anspruch 27, wobei die Parameterkombinationen dadurch gebildet werden, indem jeweils zwei Parameterfolgen, der n Parameterfolgen zueinander einen Teil aller möglichen Anordnungen durchlaufen, wobei die Anordnungen durch Verschiebung um jeweils einen diskreten Parameter zustande kommen.Use according to claim 27, wherein the parameter combinations are formed by two parameter sequences, the n parameter sequences to each other go through part of all possible arrangements, the arrangements being shifted by a discrete one at a time Parameters come about. Verwendung nach Anspruch 28, wobei die Parameterkombinationen aus allen oder aus einem Teil aller Anordnungen der Parameterfolgen Basenpaare umfassen.Use according to claim 28, wherein the parameter combinations from all or part of all arrangements of the parameter sequences Include base pairs. Verwendung nach Anspruch 29, wobei den Basenpaaren ein hierarchisierbarer Zahlenwert zugeordnet wird.Use according to claim 29, wherein the base pairs are hierarchical Numerical value is assigned. Verwendung nach einem der Ansprüche 27–30, wobei ein Teil der Parameterkombinationen gleichzeitig gebildet wird und diesem Teil oder einem Teil dieser gleichzeitig gebildeten Kombinationen allen zur gleichen Zeit ein Wert zugeordnet wird.Use according to any one of claims 27-30, wherein part of the parameter combinations is formed simultaneously and this part or part of this combinations formed simultaneously all at the same time Value is assigned. Verwendung nach Anspruch 30 und/oder 31, wobei der zugeordnete Wert der Bindungsstärke entspricht.Use according to claim 30 and / or 31, wherein the associated Binding strength value equivalent. Verwendung nach Anspruch 32, wobei die, den Bindungsstärken entsprechenden Werten weiteren Berechnungsverfahren unterzogen werden, so dass das Ergebnis ein oder mehrere Auswahlkriterien für ein oder mehrere Oligonukleotide darstelltUse according to claim 32, wherein the ones corresponding to the bond strengths Values are subjected to further calculation methods so that the result one or more selection criteria for one or more oligonucleotides represents Verwendung nach Anspruch 33, wobei ein oder mehrere Auswahlkriterien einem oder mehreren Moleküldesigns entsprechen.Use according to claim 33, wherein one or more selection criteria one or more molecular designs correspond. Vorrichtung zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche, umfassend einen Prozessor und einen Hardwarebeschleuniger zur parallelen Datenverarbeitung und einen Speicher, der mit dem Prozessor und/oder dem Hardwarebeschleuniger gekoppelt ist, zum Ausführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 23.Implementation device of the method according to one of the preceding claims, comprising a Processor and a hardware accelerator for parallel data processing and a memory associated with the processor and / or the hardware accelerator is coupled to execute the steps of the method according to one of claims 1 to 23. Vorrichtung nach Anspruch 35, wobei der Speicher einen Teil der Programmbefehle zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 23 und/oder für den Betrieb der Vorrichtung aufweist.36. The apparatus of claim 35, wherein the memory is a portion of the program instructions for executing the Method according to one of the claims 1 to 23 and / or for has the operation of the device. Vorrichtung nach Anspruch 35 und/oder 36, wobei der Hardwarebeschleuniger mit dem Prozessor gekoppelt ist. Apparatus according to claim 35 and / or 36, wherein the hardware accelerator is coupled to the processor. Vorrichtung nach Anspruch 37, wobei der Hardwarebeschleuniger einen Logikbaustein zur parallelen Datenverarbeitung enthält.38. The apparatus of claim 37, wherein the hardware accelerator contains a logic module for parallel data processing. Vorrichtung nach Anspruch 38, wobei der Logikbaustein ein programmierbarer Logikbaustein ist.39. The apparatus of claim 38, wherein the logic device is a programmable Logic module is. Vorrichtung, nach Anspruch 39, wobei der programmierbare Logikbaustein ein field-programmable-gate-array (FPGA) ist.39. The apparatus of claim 39, wherein the programmable logic device is a field programmable gate array (FPGA). Vorrichtung nach Anspruch 38, wobei der Logikbaustein ein ASIC ist.39. The apparatus of claim 38, wherein the logic device is an ASIC is. Vorrichtung nach einem der vorhergehenden Ansprüche, die eine computerlesbare Speichereinheit oder ein computerlesbares Speichermedium enthält.Device according to one of the preceding claims, the a computer readable storage device or a computer readable storage medium contains. Vorrichtung nach Anspruch 42, wobei die Speichereinheit oder das Speichermedium aufgezeichnete Daten der Parameterfolgen des Verfahrens nach einem der Ansprüche 1 bis 23 umfaßt.43. The apparatus of claim 42, wherein the storage unit or the storage medium recorded data of the parameter sequences of the Method according to one of the claims 1 to 23 includes. Verfahren zur Durchführung einer Folge von Programmbefehlen mit einer Vorrichtung nach einem der Ansprüche 35–43.Method for carrying out a sequence of program instructions with a device according to one of the Claims 35-43. Verfahren nach Anspruch 44, wobei Bereitstellen, Übertragen und Empfangen von Daten über ein Netzwerk erfolgen kann.45. The method of claim 44, wherein providing, transmitting and receiving data about a network can take place. Verfahren nach einem der Ansprüche 1 bis 23 und/oder 44 bis 45, das auf einem computerlesbaren Speichermedium oder in einer computerlesbaren Speichereinheit gespeichert ist.Method according to one of claims 1 to 23 and / or 44 to 45 on a computer readable storage medium or in a computer readable storage unit is stored. Softwareprogrammprodukt mit Programmierbefehlen zum Ausführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 23 und/oder 44 bis 45.Software program product with programming instructions for executing the Steps of the method according to one of claims 1 to 23 and / or 44 to 45th Softwareprogrammprodukt nach Anspruch 47, das auf einem computerlesbaren Speichermedium oder in einer computerlesbaren Speichereinheit gespeichert ist.The software program product of claim 47, which is on a computer readable Storage medium or stored in a computer-readable storage unit is.
DE10238057A 2002-08-20 2002-08-20 Comparison of a number of parameter sequences, for the design and formation of biological molecules, uses matrix elements with arithmetical logic computing units for faster complex computations of data sets Ceased DE10238057A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10238057A DE10238057A1 (en) 2002-08-20 2002-08-20 Comparison of a number of parameter sequences, for the design and formation of biological molecules, uses matrix elements with arithmetical logic computing units for faster complex computations of data sets
PCT/EP2003/008898 WO2004027675A2 (en) 2002-08-20 2003-08-11 Method and device for selecting and comparing physical characteristics in parameter strings
AU2003266973A AU2003266973A1 (en) 2002-08-20 2003-08-11 Method and device for selecting and comparing physical characteristics in parameter strings

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10238057A DE10238057A1 (en) 2002-08-20 2002-08-20 Comparison of a number of parameter sequences, for the design and formation of biological molecules, uses matrix elements with arithmetical logic computing units for faster complex computations of data sets

Publications (1)

Publication Number Publication Date
DE10238057A1 true DE10238057A1 (en) 2004-03-04

Family

ID=31197120

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10238057A Ceased DE10238057A1 (en) 2002-08-20 2002-08-20 Comparison of a number of parameter sequences, for the design and formation of biological molecules, uses matrix elements with arithmetical logic computing units for faster complex computations of data sets

Country Status (3)

Country Link
AU (1) AU2003266973A1 (en)
DE (1) DE10238057A1 (en)
WO (1) WO2004027675A2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19651527A1 (en) * 1996-12-11 1998-06-25 Siemens Ag Computer arrangement and method for carrying out a sequence of program instructions
DE19654595A1 (en) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0 and memory bus system for DFPs as well as building blocks with two- or multi-dimensional programmable cell structures
DE19654846A1 (en) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
EP1094607A1 (en) * 1999-10-20 2001-04-25 Infineon Technologies AG Programmable cell for FPGA
EP1136932A1 (en) * 2000-03-20 2001-09-26 Hitachi, Ltd. Primer design system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19651527A1 (en) * 1996-12-11 1998-06-25 Siemens Ag Computer arrangement and method for carrying out a sequence of program instructions
DE19654595A1 (en) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0 and memory bus system for DFPs as well as building blocks with two- or multi-dimensional programmable cell structures
DE19654846A1 (en) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
EP1094607A1 (en) * 1999-10-20 2001-04-25 Infineon Technologies AG Programmable cell for FPGA
EP1136932A1 (en) * 2000-03-20 2001-09-26 Hitachi, Ltd. Primer design system

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
KUGEL, A.: A PCI-64 based High Performance FPGA Co-Processor. Im Internet: <URL:http://www-li5.ti. uni-mannheim.de/fpqa/race/> Universität Mannheim: Presseinformation vom 06.05.2002. Im Internet: <URL:http://www.uni-mannheim.de/users/presse/aktue ll/Landespreis.htm>
KUGEL, A.: A PCI-64 based High Performance FPGA Co-Processor. Im Internet: <URL:http://www-li5.ti.uni-mannheim.de/fpqa/race/> Universität Mannheim: Presseinformation vom 06.05.2002. Im Internet: <URL:http://www.uni-mannheim.de/users/presse/aktuell/Landespreis.htm> *
LIENHART, G. (u.a.): Simulation mit konfigurier- barer Hardware. Vortrag am 19.03.2002. In: Simulation in Physik, Informatik und Informations- technik. Tagungsband. ISSN 0944-7121. 2002. Im Internet: <URL:http://www.htw-dresden.de/-stark e/physh/Tagungsband/Kugel.pdf>
LIENHART, G. (u.a.): Simulation mit konfigurier- barer Hardware. Vortrag am 19.03.2002. In: Simulation in Physik, Informatik und Informations-technik. Tagungsband. ISSN 0944-7121. 2002. Im Internet: <URL:http://www.htw-dresden.de/-starke/physh/Tagungsband/Kugel.pdf> *
SIMMLER, H.: New concept for accelerating bioin- formatics. Vortrag am 22.04.02. Im Internet: <URL:http://www.eml.villa-bosch.de/english/News/Co lloquia/harald_simmler.html>
SIMMLER, H.: New concept for accelerating bioin- formatics. Vortrag am 22.04.02. Im Internet: <URL:http://www.eml.villa-bosch.de/english/News/Colloquia/harald_simmler.html> *

Also Published As

Publication number Publication date
WO2004027675A3 (en) 2005-02-03
AU2003266973A1 (en) 2004-04-08
WO2004027675A2 (en) 2004-04-01
WO2004027675A8 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
Drăghici Data analysis tools for DNA microarrays
US7269517B2 (en) Computer systems and methods for analyzing experiment design
DE112005002331T5 (en) Method, system and apparatus for compiling and using biological knowledge
DE112020001105T5 (en) DETECTING A GENETIC MUTATION USING DEEP LEARNING
DE112019001636T5 (en) MACHINE LEARNING (ML) MODELING THROUGH DNA DATA PROCESSING
DE60002189T2 (en) SYSTEM AND METHOD FOR MODELING GENETIC, BIOCHEMICAL, BIOPHYSICAL AND ANATOMICAL INFORMATION
DE102020133667A1 (en) Technologies for performing column reads on clustered data in a DIMM architecture
Qoku et al. Multimodal analysis methods in predictive biomedicine
KR101003175B1 (en) Versatile Applicable Genetic Discrimination Using Correlation Mapping
Chen et al. Novel and efficient tag SNPs selection algorithms
Fakhry et al. Global analysis of gene expression and projection target correlations in the mouse brain
DE10238057A1 (en) Comparison of a number of parameter sequences, for the design and formation of biological molecules, uses matrix elements with arithmetical logic computing units for faster complex computations of data sets
Qu et al. Enhancing understandability of omics data with shap, embedding projections and interactive visualisations
WO2003012135A2 (en) Method for the configuration of parallel nucleic acid analysis methods for sequence quantity classification
Chen et al. A new sponge genus from the Chengjiang biota with an intriguing combination of skeletal characters
Koide et al. SpotWhatR: a user-friendly microarray data analysis system
Chavda et al. Role of Data Mining in Bioinformatics
Holdener et al. Smoothie: Efficient Inference of Spatial Co-expression Networks from Denoised Spatial Transcriptomics Data
Khan et al. TransUNet-lite: A robust approach to cell nuclei segmentation
Wang et al. Emap2sec+: detecting protein and DNA/RNA structures in Cryo-EM maps of intermediate resolution using deep learning
DE602005001850T2 (en) COMPUTER SOFTWARE TO SUPPORT THE IDENTIFICATION OF SNPS WITH MICROARRAYS
Hall Semi-automated methods for simulation and measurement of amyloid fiber distributions obtained from transmission electron microscopy experiments
DE60103682T2 (en) Systems and methods for gene expression analysis
Bremer et al. Introduction to the statistical analysis of two-color microarray data
Sims et al. Language of stains: tokenization enhances multiplex immunofluorescence and histology image synthesis

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection