SYSTEM AND METHOD FOR CARBOHYDRATE SEQUENCE PRESENTATION, COMPARISON AND ANALYSIS

Abstract: A method for storing, retrieving, comparing and analyzing complex carbohydrates, by representing complex carbohydrates with a simple linear code, which is preferably also able to represent branches within the carbohydrate structure. The method of the present invention for converting the carbohydrate structure to such a linear code includes parsing each component of the structure; separately demarcating each branch within the structure; and then converting each component to a symbolic representation which may optionally be alphabetic, numeric, or a combination thereof.

Description: SYSTEM AND METHOD FOR CARBOHYDRATE SEQUENCE PRESENTATION, COMPARISON AND ANALYSIS FIELD OF THE INVENTION The present invention is related to a system and method for the presentation, analysis and comparison of carbohydrates, and in particular, to such a system and method in which complex carbohydrates/oligosaccharides are compared according to both sequence and structure, such that the carbohydrates are first converted to a linear representation of the sequence and structure thereof, before the comparison and/or analysis of the carbohydrates is performed. BACKGROUND OF THE INVENTION Informatics Informatics is basically information management as it relates to scientific research. The software tools, and related databases, which are provided through informatics enables the vast quantities of information to be managed, analyzed and maintained. Based on database and statistical techniques, informatics tools permit scientists to store, query, access, share, and use all of the data at their disposal. Without tools to handle, store, retrieve and analyze these data, data may be lost, duplicated, or simply never utilized. With regard to the life sciences, informatics may be split into two disciplines: bioinformatics and cheminformatics. Bioinformatics is concerned with the management, organization, and use of the data that describe biological material, mainly proteins and DNA. Cheminformatics is concerned with the management, organization, and use of the data that describe chemical compounds, with regard to their structure and properties (Knapman, 1999). Bioinformatics has emerged as a new branch of biology, following the advances made in experimental technologies of molecular and structural biology, which generate a vast amount of data, as exemplified by high-throughput DNA sequencing technology. Previously, the primary role of bioinformatics was to organize and manage these data; today, the major task of bioinformatics is to interpret the data with regard to various types of biological information. The data originally consisted largely of sequences of DNA and proteins and 3-D structures; now other types of data are becoming available, such as gene expression profiles generated by DNA chip technologies and 2-D protein maps of various cell and tissue types. At the same time, there is a huge body of knowledge on molecular interactions and biochemical pathways that exists only in the literature or in the minds of experts; this knowledge has to be computerized, organized and analyzed in order to transform the biological data into useful information for academic and industrial research (Persidis, 1999). Two aspects of bioinformatics are relevant for data interpretation on a massive scale: development of new algorithms and software, and computerization of data and knowledge. For example, although it is important to develop rapid and sensitive methods for searching through databases for related sequences of biological materials, interpretation of the results would not be possible without the related biological information which is associated with the sequences stored in the database (Frishman, 1998). The use of a single-letter code for the description of molecular modular components, as well as the construction of complex molecular structures through linear sequences of such single-letter code representations, enables the description of complex modular biomolecules, such as DNA and proteins, as a linear sequence of letters. Such a linear sequence is the basis for storage, management and analysis of information related to those molecules. The basic DNA of every living organism can be described with a code of four letters. Each letter represents a chemical base found within a DNA molecule - Adenine (A), Thymine (T), Guanine (G) and Cytosine (C). Proteins and peptides are described via a single-letter code that enables the expression of all twenty (20) amino acids (the "building blocks" of protein). This code designates all amino acids in a form which can be understood by persons who are not expert chemists - Argenine (A), Lysine (K), Proline (P), etc. The idea that the rich variety of life can be reduced to mere single-letter codes once seemed overwhelming, but is now fully accepted. This code enables the denotation of a DNA hexamer with 4096 different "words" and a peptide hexamer with 6.4 * 10 7 different words (Davis, 2000). All sequence data is compiled in large databases; these sequences will soon be followed by data collections on e.g. expression data, protein-protein interaction data, phenotypic data for mutants, etc. Straightforward access to data via the Internet means that a wealth of information is available. The topics included within the purview of bioinformatics range from retrieving and aligning DNA and protein sequences to predicting the structure and function of gene products. These common aspects of bioinformatics address a number of issues. For example, US Patent No. 6,023,659 describes a system for storing biomolecular sequence information according to protein function hierarchies, such that the data is retrieved both according to sequence and according to function, thereby providing more information about the sequence data than could be obtained simply from the sequences themselves. Originally, bioinformatics was invented to describe the task of handling, presenting and analyzing large amounts of sequence data. Today, due to intense efforts in a number of large research centers throughout the world, data can be rather easily accessed by anyone via the Internet and World Wide Web servers (Thayer, 2000). As a result, the screening of these sequence databases to find sequence homologues of a particular gene is currently almost an everyday activity in most molecular biology labs. Such searches are performed, not only to find homologues within a species, but also to look for similar, so-called orthologous, genes in other organisms. The discovery of numerous such orthologous groups of genes provides excellent support for the power of using of model organisms. Sequence similarity is also used to cluster organisms according to their evolutionary affinity, and thus to create phylogenetic trees, an important tool in taxonomy. In parallel to the DNA sequencing effort, determination of the location of genes on chromosomes is today performed in large-scale projects for a number of organisms, which provide information that needs to be efficiently handled and presented (Abbott, 1999). These linear sequences are then preferably employed for three-dimensional structural prediction. For most macromolecules, their function is closely linked to the three-dimensional structure; this is perhaps most apparent for proteins, DNA molecules and RNA molecules. Recent technical developments can now provide a more detailed view of how molecules are folded. The experimental determination of these three-dimensional structures, however, is a costly and slow process. Novel procedures for predicting the molecular folding from the primary sequence data are therefore urgently needed. Since the protein structure ultimately carries the information on the enzymatic active site or surface site for protein-protein interaction, knowledge of the protein tertiary structure will be of fundamental importance for the pharmaceutical industry in future (Searls, 2000; Rawlings, 1997). Such analyses of the sequence and predicted structure of individual molecules is currently being extended to analysis of genome-wide biomedical data and functional genomics (Gotoh, 1999; Searls, 2000). In the last few years, the advent of large-scale biomedical analysis tools have irreversibly changed research procedures for scientists in the fields of biology and medicine. These technologies enable the simultaneous study of the expressions of thousands of genes, at either the transcript or the protein level, or of the thousands of possible protein-protein interactions in a cell, or phenotypic analysis of thousands of mutants etc. All of these data, regardless of type and format, must be handled, presented and efficiently analyzed. This challenge is already being explored by statisticians for the clustering of e.g. similarly regulated genes. This clustering information is currently being evaluated as a potentially useful way of predicting the function of functionally uncharacterized genes in the follow-up on the genomics projects - a research area known as functional genomics. The prediction of gene function may eventually include more complex procedures, such as the integrated analysis of many types of large-scale molecular data into one tentative function for the studied gene. This latter task will, of course, also utilize information gained by applying the above described sequence analysis. In addition, genes with similar expression profiles would possibly exhibit common sequence elements in their regulatory regions. Identifying these sequences by means of computerized methods, which is more difficult than finding clear similarities between the encoded proteins, will be a great challenge that can provide extremely useful information (Gotoh, 1999; Brazma, 1998). Ultimately, these large-scale analyses may result in the mathematical modeling of life processes. The vast amounts of data generated by the genome-wide analytical technologies will not only have to be clustered, but also, and more importantly, to be interpreted in a physiological context. To enable this interpretation in a more sophisticated manner than is currently possible when handling thousands of information units, computerized strategies will have to be developed. This is a formidable task that incorporates modeling of all molecular processes in a cell at the molecular level. Initially, this task will be approached by modeling of discrete parts of the cell physiology, such as metabolic fluxes or regulatory networks. However, the integration of all these will in many ways constitute the ultimate challenge for bioinformatics and an important part of the final goal of biomedical science in general - the complete molecular understanding of a living organism (Gershon, 1997). In addition, regardless of the type of information which is to be generated, analyzed and finally interpreted, the data must be presented to the scientific community by establishing Internet-based World Wide Web servers. The presentation of this data can be rather challenging; the problems that may arise extend from the form of data submission to the need for intelligent and clear ways of presentation. Database management is thus not only an engineering problem, but also provides a clear scientific challenge, which is currently being addressed for protein and genetic material databases (Ouellette, 1999). Glycoconjugates and Lectins In addition to such well-known functions as structural and energy storage, carbohydrates (glycoproteins, proteoglycans and glycolipids) play a major role in most biological and pathological activities. Complex carbohydrates are essential in almost all forms of molecular recognition, as well as in processes involving fertilization, development of immune response, cell-cell communication and adhesion, inflammation, various cancers, central nervous system and autoimmune response, cardiovascular disease, diabetes and cellular invention of virus and bacteria. By "complex carbohydrate", it is also meant oligosaccharide as well. The term "carbohydrate" includes complex carbohydrates, monosaccharides and oligosaccharides. Carbohydrates of biological relevance in the above areas usually consist of several covalently linked monosaccharide units and are referred to as complex carbohydrates or oligosaccharides and glycans. There are ten monosaccharides found in mammalian systems which may be additionally modified, typically by acylation or sulphation. Oligosaccharides are in most cases associated with other biomolecules, such as lipids or proteins; these hybrids, known as glycoconjugates, can be classified as glycoproteins, glycolipids and proteoglycans. Glycoproteins are by far the most complex glycoconjugates and account for functions such as the determination of blood type. There are two major classes of glycoproteins, O-linked and N-linked, depending on whether the oligosaccharide chain is linked to the protein via threonine or serine side chains (O-linked) or via aspargine (N-linked). The oligosaccharide chains themselves are often branched, and a large number of sub-types exist. Glycolipids are composed of an oligosaccharide covalently linked to a fatty acid portion by means of an inositol or sphingosine moiety. The association of the non-polar function with the cell membranes effectively anchors these molecules to the extracellular surface. One class of glycolipids, known as glycophosphatidyl inositol anchors, acts as sites of attachment for proteins to the cell membrane. Another type, the gangliosides, are thought to be crucial in the development of nervous tissue. The carbohydrate portion of glycoproteins and glycolipids often acts as a site for the binding of other large biomolecules, such as cell-surface proteins (called lectins or adhesins), bacterial toxins, hormones and antibodies. As such, glycoconjugates mediate many cell-cell interactions; they are not only responsible for the defense of an organism against pathogens, but also, paradoxically, often facilitate infection. Lectins are multivalent carbohydrate-binding proteins which specifically bind (or crosslink) carbohydrates. By way of exception, ricin, the oldest lectin, is actually the enzyme RNA-N-glycosidase, Charcot-Leyden crystal protein (galectin-10) is known as lysophospholipase, and I-type lectins such as sialoadhesin are members of the immunoglobulin superfamily. Multivalency may not be an absolute requirement, even though it is still an important factor for most lectins. Since lectins generally have no apparent catalytic activity, as do enzymes, their physiological functions remain unclear. Unfortunately, for this reason, the term "lectin" has sometimes been used as a convenient taxon to "group out" carbohydrate-binding proteins, the functions of which were unknown. Lectins are often classified on the basis of saccharide-specificity. Though this conventional method is familiar and useful in practice, it is not necessarily relevant for refined specificity. Lectins in the same category (e.g., galactose-specific lectins) show considerably different sugar-binding preferences. Moreover, an increasing number of lectins which never show high affinity to simple saccharides have been found. From the standpoint of modern molecular biology, lectins should be understood as constituting protein families. However, during the projects to determine the sequence of the genomes of various organisms, including humans, the initial classification of lectins as protein (gene) families led to the realization that there are thousands of lectin genes waiting for functional decoding. Nevertheless, the above genetic approach is not enough to understand the essence of lectins. For example, even though members of the same families are similar, it does not necessarily mean they are the same (they usually have some degree of individual "personality"). The matter of "species specificity" is also involved. Thus, many general and specific features and characteristics of lectins remain unresolved. Glycobioinformatics In contrast to nucleic acids and proteins, whose primary structure is linear in nature, carbohydrates are branched molecules. It has been calculated that a carbohydrate hexamer may have 1.05xl0 12 permutations (Laine,1994). In addition to the branching complexity, the anomeric stereochemistry, ring size and subunit modifications of carbohydrates such as phosphorylation, sulphation, acetylation and many more show truth of the statement of Nathan Sharon in 1975 ("Complex Carbohydrates: Their Chemistry, Biosynthesis and Functions", by Nathan Sharon, Addison- Wesley Publishing Company, Massachusetts, USA, 1975): "indeed, we know now that the specificity of many natural polymers is written in terms of sugar, not amino acids or nucleotides". But this idea did not become pervasive until recently; as a result, sugar/saccharide/complex carbohydrate bioinformatics are lagging far behind DNA and peptide bioinformatics, and at times do not even exist. In spite of the abundance of carbohydrates in nature and their important role in many biological and pathological processes, glycobioinformatics remains an extremely limited discipline. In particular, only a few groups have attempted to address some aspects of carbohydrate bioinformatics, such as carbohydrate modeling and three-dimensional structure (Bohne, 1998; Imberty, 199; Bush, 1999; Gohiet, 1996; Von der Lieth, 1998). For example, the CarbBank (Complex Carbohydrate Structure Database - CCSD) which includes 48,956 records which were derived from published articles and compiled by the Complex Carbohydrate Research Center (CCRC), represents complex carbohydrates in a graphical or schematic manner only. The database does not have any tools for carbohydrate analysis, similarity or comparison, which severely limits its utility. Furthermore, unlike the genetic and protein databases of GeneBank and SwissProt, the CCSD was active only between 1993 and 1995, and was closed in 1999 due to financial problems, poor information management architecture and its limited capacity for analysis. Between 1995 and 1997, the first and only attempt to discuss carbohydrate bioinformatics was made by a group headed by Willett (Bruno, 1997). Willett and co- workers, relying on the data stored in the CCSD, implemented a carbohydrate imaging representation in the form of labeled graphs, in which the nodes and edges of a graph were used to denote the residues and the inter-residue linkages respectively. These graph representations were then searched by means of the subgraph isomorphism algorithm of Ullman (Ullman, 1976). It was demonstrated that this graph theory approach provided a precise way of searching carbohydrate structures in the CCSD. Nonetheless, even though this software algorithm supported searching, it lacked sophistication and the ability of the many high quality software tools and algorithms of gene or protein sequence analysis. Thus, clearly a higher quality software program, with associated database, is required for searching and retrieving carbohydrates from a database, on the basis of similarity comparisons and/or other types of analyses, particularly when the many important biological functions of carbohydrates are considered. The past decade has seen a renaissance in carbohydrate biology and chemistry. The advent of effective methods for characterizing the complex carbohydrate structures present on the surface of cells has spawned a new appreciation of the varied biological functions of these molecules (Dwek, 1996), as well as of new methods for the large-scale synthesis of carbohydrates. The involvement and importance of carbohydrates in most forms of life, on one hand, and the tremendous and relatively neglected body of information, on the other hand, illustrate the necessity of creating software tools that will facilitate glycobioinformatics . In particular, these software tools would require a simple yet complete representation of carbohydrates, which would facilitate the comparison and analysis of such structures by computer. The complexity of carbohydrate structure - including branching, sugar modification, stereochemistry, anomer and different ring size - makes the use of the single-letter system adopted for nucleic acids and proteins impossible. There is thus a need for, and it would be useful to have, software tools, including an associated database, for the storage, retrieval and standardized computer analysis of highly complex carbohydrate structures. SUMMARY OF THE INVENTION The present invention is of a system and method for storing, retrieving, comparing and analyzing complex carbohydrates, by representing complex carbohydrates with a simple linear code, which is preferably also able to represent branches and modifications within the carbohydrate structure. The method of the present invention for converting the carbohydrate structure to such a linear code includes the steps of parsing each component of the structure; separately demarcating each branch within the structure; and then converting each component to a symbolic representation which may optionally be alphabetic, numeric, or a combination thereof. According to the present invention, there is provided a method for representing a carbohydrate structure as a linear sequence, the steps of the method being performed by a data processor, the method comprising the steps of: (a) decomposing the carbohydrate structure into a plurality of elements; (b) determining a connection between each pair of elements; and (c) constructing a series of the plurality of elements connected with the connections to form the linear sequence. According to another embodiment of the present invention, there is provided a method for comparing a first carbohydrate structure to a second carbohydrate structure, the steps of the method being performed by a data processor, the method comprising the steps of: (a) providing each of the first and the second carbohydrate structures as a first and second linear sequence, respectively; (b) comparing at least a portion of the first linear sequence to the second linear sequence to form a comparison; and (c) determining a similarity score according to the comparison. According to yet another embodiment of the present invention, there is provided a method for representing a post-translation modification of a protein, the steps of the method being performed by a data processor, the method comprising the steps of: (a) providing a linear code for describing carbohydrate structures; and (b) representing the post-translation modification as a linear sequence with the linear code. By "complex carbohydrate", it is also meant oligosaccharide as well. The term "carbohydrate" includes complex carbohydrates, monosaccharides and oligosaccharides. Hereinafter, the term "computational device" includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows™, OS/2™ or Linux; Macintosh™ computers; computers having JAVA™-OS as the operating system; graphical workstations such as the computers of Sun Microsystems™ and Silicon Graphics™, and other computers having some version of the UNIX operating system such as ATX™ or SOLARIS™ of Sun Microsystems™; or any other known and available operating system, or any device, including but not limited to: laptops, hand-held computers, PDA (personal data assistant) devices, cellular telephones, any type of WAP (wireless application protocol) enabled device, any type of device which operates according to the Bluetooth standard or any other wireless standard, wearable computers of any sort, which can be connected to a network as previously defined and which has an operating system. Hereinafter, the term "Windows™" includes but is not limited to Windows95™, Windows 3.x™ in which "x" is an integer such as "1", Windows NT™, Windows98™, Windows CE™, Windows2000™, and any upgraded versions of these operating systems by Microsoft Corp. (USA). For the present invention, a software application could be written in substantially any suitable programming language, which could easily be selected by one of ordinary skill in the art. The programming language chosen should be compatible with the computational device according to which the software application is executed. Examples of suitable programming languages include, but are not limited to, C, C++, Perl and Java. In addition, the present invention could be implemented as software, firmware or hardware, or as a combination thereof. For any of these implementations, the functional steps performed by the method could be described as a plurality of instructions performed by a data processor. BRIEF DESCRIPTION OF THE DRAWINGS The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein: FIG 1. is a flowchart of an exemplary method for performing a sequence similarity comparison and analysis according to the present invention; FIG. 2 is a flowchart of a particular illustrative method for comparing the sequences according to the present invention; FIG. 3 demonstrates a comparison of the glycan: Aa3Ab4GNb3Ab3ANb4(NNa3)Ab4Gb:C that contains the Galilee antigen against a database constructed according to the present invention (Glycomics database; http.V/www.glycominds. net); and FIG. 4 is a schematic block diagram of an exemplary system according to the present invention for carboydrate sequence analysis. DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention is of a set of software tools, including an associated database, for storing, retrieving, comparing and analyzing complex carbohydrates. These software tools rely upon the representation of even complex carbohydrates with a simple linear code, which is preferably also able to represent branches and modifications within the carbohydrate structure. The method of the present invention for converting the carbohydrate structure to such a linear code includes the steps of parsing each component of the structure; separately demarcating each branch within the structure; and then converting each component to a symbolic representation which may optionally be alphabetic, numeric, or a combination thereof. In order to meet the requirements for such a simple linear code, the present invention provides a multi-letter code, composed of units described with regard to a Saccharide Unit (SU) letter code. The SU describes, as a linear string, all physical parameters expressing the carbohydrate parameters, while the syntax expresses the way the carbohydrate connected to each other, preferably including the branches. Once the structure of the carbohydrate has been rendered as a linear code, these linear codes may optionally and preferably be compared. The method of the present invention for comparing these linear codes is preferably performed as follows. Briefly, the query and subject carbohydrate structures are entered for comparison, preferably already as the linear code sequence. These sequences are then divided into saccharide units. Although any type of string comparison algorithm which is known in the art could be used, preferably the sequences are compared by "sliding" the query sequence against the subject sequence, resulting in a comparison of each saccharide unit and each sub-sequence of saccharide units of the query and subject complex carbohydrates. The results of this comparison procedure are then analyzed in order to determine the similarity score. Potential applications for the methods of the present invention include, but are not limited to, the management of carbohydrate databases, and searching through such databases in order to find and retrieve sequences of interest which are identical or similar to a query sequence; drug discovery, for example through the identification of biosynthetic pathways and inhibitors; comparative analysis; functional identification of newly discovered carbohydrate structures through a comparison to carbohydrates having known functions; functional identification of protein sequences having an unknown structure, which may be expected to bind to a carbohydrate sequence having an unknown structure; and to describe the in vitro synthetic pathways for carbohydrate structures. For both in vitro and in vivo synthetic pathways, the method of the present invention could optionally be used to describe these pathways as a set of linear equations, with participating carbohydrate structures being represented with linear sequences in the linear code. Another application for the methods of the present invention is to describe glycosylation as a post-translation modification of proteins with the linear code. For example, if a protein receives such a post-translation modification in the form of an added complex carbohydrate structure, this complex carbohydrate structure could be described with the linear code, thereby enabling the glycosylation to be stored in the database, along with the protein sequence. Such a complex carbohydrate structure could even optionally be searched and retrieved with a query sequence, for example in order to locate similar post-translation modifications of proteins. Examples of suitable protein databases for storing such added linear code sequences include, but are not limited to, SwissProt and PDB (Brookhaven Protein Databank). The carbohydrate linear code of the present invention digitizes the last analog data in biological science and opens a vast potential in bioinformatics, drug discovery and Web applications. The location of similarities and similarities between carbohydrate structures and the compilation of the entire bio-relevant information package will open another frontier for the drug discovery science and industry. Even though human lectins are of great importance in major biological and pathological processes, most lectins, their genes and their exact functions are not known. Comparison of known lectin genes in terms of the carbohydrate structure bound by these proteins would support the search for similar carbohydrate structures, as well as the identification of new lectin genes and evaluation of their potential function. The new opportunities provided by this novel linear code have opened a new era in discovery of glyco-related drugs and targets, whether carbohydrates, proteins or a combination thereof. The following description is divided into sections, in order to further facilitate the discussion of the different elements of the present invention for the storage, retrieval, comparison and analysis of complex carbohydrates. The first section, entitled "Linear Code Syntax", discusses the linear code itself; the second section, entitled "Method of Analysis", describes an exemplary method of analysis and comparison according to the present invention; the third section, entitled "Comparison Scores for Each Saccharide Unit", describes an exemplary specific method for comparing pairs of saccharide units; the fourth section, entitled "Comparison of Junctions", describes an exemplary specific method for comparing pairs of junctions; the fifth section, entitled "Further Analysis of Similarity Elements", describes an exemplary specific method for defining clusters of similar saccharide units; the sixth section, entitled "Specific Example of Analysis Method", describes a specific overall example of the operation of the method of the present invention; and the seventh section, entitled "Exemplary System for Sequence Analysis", describes an exemplary system according to the present invention. Section 1 : Linear Code Syntax The syntax of the linear code of the present invention requires the components of the carbohydrate to be represented as simple, repetitive elements. Collectively, these elements form the linear code, which is capable of representing even complex carbohydrate structures as simple linear sequences. According to the present invention, each such repetitive element is termed herein a "basic saccharide unit". The basic Saccharide Unit (SU) is composed of five parts: the sugar name, any modifications to the sugar, the anomer, the position according to which the sugar is connected to the neighboring sugar, and the presence of a branch (if any). Sugar name - The sugar name is represented by one capital letter, and is determined by a monosaccharide name table, an example of which is given below. All the monosaccharides are in the "D" configuration and in the pyranose form, unless stated otherwise. * Another description of Kdn is: 3-deoxy-D-glycero-D-galacto-nonulosonic acid The following abbreviations should be noted: MS' = Opposite stereospecificity to the common structure DoL MS Λ = Opposite structure to the common structure PoF MS- = Rare sugar with double opposite both in stereospecificity and in structure. Not all possible sugars in nature are described, even in this more complete table. For example, there are many less common sugars that are less relevant to carbohydrates found in mammalian species (Xylulose, Erythrulose, Tagose and so forth). However, this example clearly demonstrates that the table code easily permits the addition of any desired sugar by adding unique capital letters. Sugar modifications - The modifications are represented by brackets (the "[", "]" characters) with number-and-letter pairs inside them. The number denotes the position of the modification; the letter denotes the modification itself, determined by the modification table, an example of which is given below. It should be noted that only common modifications appear in the above exemplary table. A large number of alkyl groups, such as: ethyl, propyl, butyl, pentyl, hexyl, heptyl and many more, are not represented here, as well as a large number of acyl groups, such as: numerate, acetate, propaoate, butanoate and more. These modifications could certainly be added if desired. Other modifications might optionally be synthesized onto sugar molecules; as such, any modification can be added, but with a unique code. In addition, certain common modifications can be written as an appendix to the sugar name, for example : A[2S] H> AS. The rules for the common modifications are preferably included in a modification translation table, an example of which is given below as a list: AQ=A[2Q] AN=A[2N] GN=G[2N] NN=N[5N] NJ=N[5J] Anomer - The anomer appears after the modifications, if any such modification is present, and is denoted by the letter "a" (representing the α-anomer) or "b" (representing the β-anomer). Position - The position at which the sugar is connected to the neighboring sugar is represented by a number, and appears last in the SU. When a sugar is bound to a neighboring sugar through a modification (the modification is bound to the reducing end of the sugar and to neighboring sugar), the modification is preferably written inside '[',']', as usual, but the syntax changed, to represent the actual structure. The position of the modification is written after the anomer, and the position of the modification is not written. For example NeuAc bound through a sulphate group to the 6 th Glucose carbon is written:NNa[S]6G - rep. The following table gives a number of examples of the basic saccharide unit, with various types of modifications, and so forth, with accompanying notes. Basic sugar names The power of the simple linear code of the present invention is demonstrated in the following example. Sialic acid is an acidic sugar with many modifications, yet the linear code enables them to be easily written as follows. Complex Carbohydrates (CC's The basic saccharide unit is then used to build each complex carbohydrate, which is constructed of a plurality of linked saccharide units (SU). The CC is written 5 such that the saccharide units are arranged from right to left, such as Aa2Ga4Mb3 for example. The last character at the right may optionally be a conjugate. The linear code preferably uses three characters to represent different types of conjugates. The protein conjugate is represented by ';'. The conjugate amino acid sequence is then written in amino acid single letter code. In cases where the SU 10 bound amino acid is in the middle of the sequence, it is marked by '- -'. For example a-D-Glc bound to Asn in the sequence 345-Ile-Pro-Asn-Tyr-Ser-Cys - 350 is represented as: Ga;345IP-N-YSC . a-D-Glc bound to Asn 80 of a protein with a known sequence is represented as Ga;80N Lipid conjugate is represented by ':'. The conjugate sequence is then 15 written in linear code. Examples for the linear code for the lipid moiety are given in the following table: Lipid moieties in Linear Code 20 Conjugates of other nature are written in free text after '#'. When written in terms of trivial names, or with a regular graphic or schematic representation, a complex carbohydrate which features six monosaccharides would look like this: β -D-G_lp- (l->4) -p-D-GlcpNAc- (l-»3) -β -D-Galp- (l-»4) -β -D-GlcpNAc- (l->3) -β -D-Galp- (1→4) -β -D-Glcp- (1-»1) -Csramlde In the linear code of the present invention, the same structure is written as follows: Ab4GNb3Ab4GNb3Ab4Gb:C Clearly, the latter representation is far simpler to write, store, retrieve, and to compare to other carbohydrate sequences. Many string comparison tools exist, for example for the purpose of performing similarity comparisons for genetic material such as DNA sequences. Thus, the reduction of a lengthy complex carbohydrate description to a simple linear string demonstrates the clear advantage of the linear code of the present invention even for linear complex carbohydrates. Branched CC A more complex case is created when the carbohydrate structure features one or more branches. Unlike other types of biological materials, such.as DNA and proteins for example, which feature simple linear sequences of their basic elements, carbohydrates may have branched structures. Such branched structures are preferably handled by the simple linear code of the present invention such that the linearity of the represented sequences is maintained. Branches are optionally and preferably represented by parentheses (the "(", ")" characters). An open-parenthesis character appears at the beginning of each branch and a closed-parenthesis character at its end. The decision as to which node appears within the parentheses and which appears outside of the parentheses is more preferably based on the first SU of each node. Optionally and preferably, the assignment of a portion of the sequence to be either outside or within the parentheses is implemented as follows. First, if the saccharide units have different sugar names, the monosaccharide name table given above is used. The table is ordered in a hierarchical manner, which determines the relative location of a portion of the sequence as belonging inside or outside the parentheses. This hierarchy is more preferably empirically determined according to the frequency with which certain sugars appear at the branch node, in order to minimize the amount of the sequence which is placed within the parentheses. The chain beginning with the lower MS in the table (thus the more rare SU), is designated the branch chain. Concurrently, the chain beginning with the higher MS rank is designated the backbone chain. The sugar in the hierarchy is written as an absolute value, without considering if it is in D or L form, or if it is pyranose or furanose. Modifications also do not change the hierarchy of the MS except for the modified MSs existing in the table itself. An example If the units have the same sugar name, their positions are examined. The saccharide unit with the larger position number is preferably written within the parentheses. For example, a complex carbohydrate structure that includes one branch such as ganglioside GM1 is written as follows: -D-Galp- (l-»3) lp- (l-»4) -β-D-Glcp- (l-»l) -ceramldg According to the steps described above, the sugars D-GalpNac and D-Neup5Ac are preferably compared according to the information which is stored in the monosaccharide name table; since D-Neup5Ac is at the lower hierarchy in the table, this sugar is then written within the parentheses. The linear code format of the above branched structure is: Ab3ANb4(NNa3)Ab4Gb:C Another example in which the same sugar type is found at a branch point is demonstrated by the following structure: α-D-Galp- (l->3) -β -D-Galp- (l-»4) -β -D-GlcpNAc- (l.->2 ) -α-D-Manp- tl-tβ} -, I β-D-Manp- (l->4) -β-D-glcpNAC I cc-D-Nθup5Ac- (2-»3) -β-D-Galp- (l-»4) -β-D-GlcpNAc- (l-»2) -α-D-Manp- d-JS)- 1 In this structure, according to the linear code, for a monosaccharide from a pair of otherwise identical sugars, the monosaccharide with the larger position number is placed within the parentheses. Therefore, the structure is expressed as: NNa3Ab4GNb2Ma3(Aa3Ab4 GNb2Ma6)Mb4GN Complex carbohydrates may have multiple branches. For example, a compound that includes several branches, each starting with a different sugar type, is commonly represented as: -β -o -Galp -(It 4) -β -D -Glσp - (ltl) -cβramidθ In linear code of the present invention, this structure is written as: NNa3(NNa6)Ab4(Fa3)GNb3Ab4(Fa3)GNb3Ab4Gb:C Certain carbohydrate structures may also have nested branches, which can be represented by the linear code of the present invention as well, simply by specifying the open parentheses each time a new branch starts. For example, the common graphical or schematic written form for the following complex carbohydrate is typically written as follows: α -D -GalpNAC - ( It 3 ) η I β -D -Galp - (l-»4) -β -D -GlcpWAσ - d-tSΪ- ] I I <x- -£ucp - {lt2 ) J β -P -Galp - (l-*4) -β -D -GlcpNΛσ - C--»3} -β -D -Gslp - (1-+4) -β -D -Glcp - ( It 1 ) -Ceraande I α-D -NθUp5Aσ - (2t 3> -β -D -Gal - (It 4) -β -D -GlcpNAC - (l-t3ϊ J The structure for this complex carbohydrate is fully described by the linear code of the present invention as follows: NNa3Ab4GNb3(ANa3(Fa2)Ab4GNb6)Ab4GNb3Ab4Gb:CThe linear code of the present invention is highly versatile and enables expression of highly branched structures with extreme ease. For example, triple branch points are other complex structures are fully described by the linear code of the present invention in a predictable and reproducible manner. A triple branched junction exists in nature as well and is easily described by the linear code. Contiguous brackets opened one after the another show that in this node, several child nodes are present. For example, the complex structure : CC-D-NBup5Ac- (2→6!-| I α- -Fucp- !l-?4) -β-D-GlcpNAC- (1→3) -β -D-Salp I α-D-N8up5AC- (2-÷3) -β -D-Galp- (1->3) J is expressed in the linear • code of the present invention as: NNa3Ab3(NNa6)(Fa4)GNb3A The following example shows the operation of multiple rules for determining the linear code for the carbohydrate structure. The highly complex structure of the following carbohydrate is graphically or schematically written as follows: Ct-L-FUCp- (l-»4h 1 β -D-GlcpNAC- (1→3) -β -D-Galp- (1-J4J T I 1 β-D-6alp- (l->3) J β-D-GlcpNAC- (1-»6| - I I Ct-L-Fucp- (1-»3) J β-D-Galp- (1">4) -D-Glo i β -D-Galp- (1→3) -β -D-GlcpNAc- (l→3) J The linear code of this structure is: Ab3GNb3(Ab3(Fa4)GNb3Ab4(Fa3)GNb6)Ab4G As another example, polysaccharides are composed of a plurality of repeated carbohydrate units. Such polysaccharides are optionally represented with the basic repeated unit contained in curly brackets, or "{" and "}". The number of repetitions of the basic unit appears on the right side of the left bracket. When the number of repeats is unknown, the letter n is used instead of a number. For example, Cellulose, which is a polymer of glucose residues joined by β-1 ,4 linkages, would be written {nGb4} . If the repeating units are not connected 'head to tail but 'head to branch', the SU at which the unit is connected is marked with "- -". For example, the repeating unit of the capsular antigen from Klebsiella K61 is written in linear code {nAa3(- Ub2-)Ma3Gb6Ga4}, which means that the sequence is repeating through a connection of the repeating unit to the GlcA (U) residue. As a general rule in the linear code, a residue marked with '- -', is the residue to which a sequence is bound. Another example for its use, apart from repeating unit, is when a glycan is bound to a protein, and the amino acid n sequence of the entire binding site is mentioned. For example, the following linear code : GNb2Ma3(GNb2Ma6)Mb4GNb4(Fa6)GNb;K-N-QTW represents an N-linked glycan bound to Asparagine (N) which is in the amino acid sequence KNQTW. Cyclic Glycans can be represented in the linear code simply by adding c at the end of the sequence. Certain types of components are more difficult to describe within the linear code of the present invention, including doubles, unknown elements and wildcard elements. For example, there may optionally be one or more components in a SU or in a CC which are unknown. These components are preferably written as follows. First, if only one of the components of a SU is unknown, the "?" character is used. For example, for the linear code: AN?3 the anomer type (a b) is unknown. For this linear code: ANb??b4 the position of the left SU and the sugar name of the right SU are unknown. For the next linear code: A[?T7?]a3 the SU has a modification, but the position of the T and the identity of the 7 position are unknown. There can optionally be a combination of as many unknown, components as needed, such as for the following linear code: A[?T]???[5?]a3. However, if an entire SU in the CC is unknown, the "*" character is preferably used. For the linear code ANb3*Ab4 there are 3 saccharide units, but the identity of the middle SU is unknown. This is identical to writing the following linear code: ANb3???Ab4. However, it should be noted that the "?" character preferably replaces one component, and not one character, such that for example, the sugar AN is replaced by "?" and not by "??". In addition, a combination of such characters can optionally be used, as in the following linear code: ANb?*Ga4M[?T]?3 which states that the anomer and the position of the modification of the first SU are unknown. The entire third SU is also unknown, and so is the position of the fourth SU modification, as well as the identity of the entire SU itself. Another type of character which can be used to represent a structure with a degree of indeterminacy is the doubles characters. These characters are useful when the user is not certain of the identity of a particular SU or CC, but does not want to use the symbol for an unknown SU or CC. The doubles character is used to insert a CC which has several meanings. This can be done with the "/" character. The "/" character could be used, for example, when entering a new CC into the database of carbohydrate sequences, such that the new CC is determined to have one of a limited number of identities. For example, the doubles character could be used as follows: ANb3/4 which means that the position can only be 3. or 4, but nothing else. The "/" character may optionally be used several times in one CC. For example, the linear code: AN3/4G/Fa/b5N[3/4G]b7 may be rewritten to emphasize the meaning of what each "/" denotes: AN3/4 G/Fa/b5 N[3/4G]b7. Altogether, this CC can be interpreted in (2 Λ 4 = ) 16 different ways! Optionally and more preferably, although any number of "/" characters may be written for a SU or a CC, no more than two values may be entered for each "/". Therefore, the linear code: ANa/b3/4 is allowed, but the linear code: ANa3/4/5 is not allowed. Another linear code expression is /_, which means 'Or not'. It is used in modifications, for sugar units indicating that there is either a certain modification on them or not. For example, A[3P/_J indicates that either there is a phosphate group on the third position of the Galactose unit, or there is no modification there. One of two saccharide units may be selected for this type of representation as a possible element, as an entire SU, with the "//" symbol. For example, the linear code: Aa3//Gb2 states that one of the two monosaccharides is the correct monosaccharide. Combinations of these different unknown elements are preferably possible. For example, the linear code Aa/b4//Ga2/3 is interpreted to mean that one of the following possible options (Aa4, Ab4, Ga2, Ga3) is true, although the identity of the correct element is not known. This notation more preferably prompts the reader to select one or more of those SU's. For the method of comparison of the present invention, doubles can be compared to all CC's which can be interpreted from this CC, and which have been approved by the user who entered this CC initially. Each such possible CC is preferably considered to be a regular CC for the purposes of similarity comparison, for example. In other words, if a match is found with one of the components which previously constituted part of a double, this match is a legal match. Such multiple comparisons are clearly more difficult for the unknown elements, and therefore are preferably not performed. Instead, the unknown element preferably acts only as a space holder within the structure. Double character symbols can also optionally and preferably be used to examine a comparison between a CC entered by the user and the CC's in the database. All of the rules which apply to the previous use of the double characters preferably apply to this case as well, except for a single change, which is the user can enter as many values as desired for the same component This means that the user can now write the linear code: A[3N/T]a4/5/6Ga2//Ga3/ Fb2 which would preferably interpreted as these 18 CC's - A[3N]a4 preceded by Ga2 or Ga3 or Fb2 A[3N]a5 preceded by Ga2 or Ga3 or Fb2 A[3N]a6 preceded by Ga2 or Ga3 or Fb2 A[3T]a4 preceded by Ga2 or Ga3 or Fb2 A[3T]a5 preceded by Ga2 or Ga3 or Fb2 A[3T]a6 preceded by Ga2 or Ga3 or Fb2 The above CC can optionally be shortened even more, by writing the following linear code: A[3N/T]a4/5/6Ga2/3//Fb2 which adds an internal double inside a SU that is itself part of a double. The user is again preferably asked to choose which one (or more) of these CC's should be used in running the comparison. Of course, for complex carbohydrates which contain both double characters and branches, the syntax may be changed dramatically according to the identity of the element which fills the space designated by the double character. For example, the linear code: Gb4(Gb3/6)Fa3 would preferably be interpreted as these two CC's : Gb4(Gb6)Fa3 Gb3(Gb4)Fa3 The main node is Gb4 for the first CC, but Gb3 in the second CC. Preferably, the system handles such changes dynamically while building the interpreted CC's. The following examples illustrate the use of wildcard and doubles. The following graphical or schematic representation and linear code demonstrate how to write a CC when the modification position is not known. The graphical or schematic representation is: ACθCatθ- (l→? ) -α-D-NGUp5Ac- (2→8) -α-D-Nθup5AC- (2-»3) -β -D-Galp- (1→4) -β -D-Glcp- (1→3) -β -D-Galp- (1→4 ) -β-D-G cp- (l→l) -Cθramidθ In the linear code, the structure is expressed as: NN[?CB]a8NNa3Ab4Gb3Ab4Gb:C As another example, following graphical or schematic representation and linear code demonstrate how to write a structure when the glycoside bond is one of two possibilities. The graphical or schematic representation is as follows: α-D-GalpNAc- (l->3)τ I β-D-Galp- (l-»3/4J -β-D-GlcpNAC-(l-»6!τ I I α-L-r_cp- (i->2) I β-D-Galp- (1-»3J -β-D-GlcpNAc- (l-»3) -β-D-Galp- (l-»4) -β-D-elcp- (1-»1J -Cθramido α-D-GalpNAC- (l-»3)η | I I β-D-Galp- (l-»3) -β -D-61cpNAC- (l-»3) J I α-L-Fucp- (l-»2 )J In the linear code, the structure is expressed as: ANa3(Fa2)Ab3GNb3(ANa3(Fa2)Ab3/4GNb6)Ab3GNb3Ab4Gb:C The following graphical or schematic representation and linear code demonstiate how to write a structure when the bond position is not known. The graphical or schematic representation is as follows: α-D-NGup5Ac- (2→? ) -α-D-Nβup5Ac- (2→3) -β -D-Galp- (1→4) -β-D-Glcp- (l→L) -cecamide In the linear code, the structure is expressed as: NNa?NNa3Ab4Gb:C The following graphical or schematic representation and linear code demonstrate how to write a structure when the anomer is not known. The graphical or schematic representation is as follows: ? -D-GalpNAc- (L→3 ) -? -D-Galp- (1→4) -α-D-Galp- (1→4) -β -D-Galp- (l→l) -ceramldg In the linear code, the structure is expressed as: AN?3A?4Aa4Ab4:C Complex 'uncertain connection place' of CC elements: Sometimes the uncertainty lies in the connection site of a SU (or a sequence of SUs) to a CC. For example: I ~ βGal(l →4)βGlcNAc(l→6) — αGal(l→3) βGal(l →4)βGldNAc(l →2)αMan(l →6)— βGlcNac(l →4)βMan(l →4)βGlcNAc βGal(l →4)βGlcNAc(l →2)αlMan(l →3)— In this structure there is uncertainty regarding the connection site of αGal(l →3). Writing the linear code for this type of CC is optionally and preferably accomplished by using the following set of guidelines: • The set of 'possibilities' are labeled by a number and percentage symbol #"%". In CCs where there is more than one 'uncertain sugar unit', the numbers change for each possibility, and the "%" is constant (i.e. 1% and 2% represents two possibilities). • The full description (i.e. complete SUs name) of the possibilities, #"%", is placed in the end of the linear code, after the symbol " | ". • The " I " symbol separates between a given linear code and its possibilities or between one possibility to the next. The linear code representation of the aforementioned structure would therefore be: Aa3=l%|GNb4(Ab4GNb2Ma3)(l%Ab4GNb2(l%Ab4GNb6)Ma6)Mb4GN These rules can optionally and more preferably be used in combination to any other rule, of uncertain or unknown elements, such as an uncertainty element (shown with regard to the last example): αGal(l→3) βGal(l →4)βGlcNAc(l →6) — OR αNeuAc(2→6) βGal(l →4)βG16NAc(l →2)αMan(l →6j— βGlcNac(l →4)βMan(l →4)βGlcNAc βGal(l →4)βGlcNAc(l →2)α(Man(l →3) There is αGal(l→3) and αNeuAc(2→6) bound to the CC, and the uncertainty lays is the exact place they are bound to. αGal(l→3) is determined as 1% and αNeuAc(2→6) as 2%. The linear code is therefore: NNa6=2%jAa3=l%|GNb4(Ab4GNb2Ma3)(2%/l%Ab4GNb2(2%/l%Ab4GNb6)Ma6 )Mb4GN Section 2: Method of Analysis This section describes an exemplary method of analysis according to the present invention, for example for performing similarity comparisons between two or more sequences which are written in the linear code of the present invention. This method is preferably implemented as a software application, or other type of implementation as previously described, which assesses similarities between complex carbohydrate (CC) sequences, which are also termed "glycans" herein. The method is designed to assess the similarity between a sequence which is entered or selected by the user and sequences in a database, in order to find, present and score the most similar sequences in terms of structural similarity and/or biological function. The determination of similar string and structural elements in Linear Code is a powerful tool for clarification of the function and synthesis pathway of a new sequence by comparing its linear code to the codes of sequences with known or partly known function. The following method is described with regard to the flowchart of Figure 1. In step 1, the user preferably enters the linear code for a sequence to be compared. The term "entering" a sequence may optionally include selecting the sequence from a list of such sequences, as well as by manually entering the sequence by the user. Also optionally and preferably, the linear sequence could be automatically converted and/or translated from a known carbohydrate structure representation format. The comparison is optionally performed against another such sequence which is entered by the user; against a plurality of such sequences which are stored in a database; or against a model of a theoretical carbohydrate structure which has been rendered in the linear code of the present invention. In Figure 1 step 2, the user defines a set of parameters for similarity analysis. These parameters may optionally change according to the biological function and similarities in which the user is interested. The user is preferably able either to use a preset combination of parameters optimized for a specific kind of query, or to set the value of the parameters according to the particular search to be performed. In Figure 1 step 3, the comparison, optionally with an accompanying search through a plurality of sequences is performed according to the method described in Figure 2. The comparison preferably results in a numeric similarity score. In Figure 1 step 4, the output for the query is a list of CC's. Preferably, the final similarity score for these CC's is above a certain threshold, and the CC's are listed according to their similarity value, as the higher score is more likely to indicate results which are of interest. The similarity score and the probability of finding a linear code with the same similarity or higher by chance in the database is more preferably indicated for each CC having a score over that threshold. In Figure 1 step 5, if the user selects one of the similar CC's, the user is more preferably able to see both the query and the target or subject CC, with the elements of similarity highlighted according to degree of similarity. In Figure 1 step 6, the user most preferably is able to retrieve additional biological and structural data related to the similar CC's from the database. Optionally and either additionally or alternatively, the additional biological data is also used as part of the search information for performing the search, and as such may be entered by the user. As explained with regard to Figure 2, the analysis method of the present invention involves a number of steps. Briefly, the query and subject carbohydrate structures are entered for comparison, preferably already as the linear code sequence. These sequences are then divided into saccharide units. Basically, for the comparison of CCs, there are preferably two categories: a topology analysis of the tree-like structure of CCs, and an analysis of linear code sequences in relation to the composition of the branches of the CCs. The first analysis examines the topological structure while the other analysis is concerned with sequence and composition of the linear parts of the glycans. Optionally and preferably, the comparison is performed by first dividing the glycans to linear segments and junctions. Next, at least some, but more preferably all of the linear segments of the query glycan are compared to at least some, but more preferably all of the linear segments of the subject glycan. The junctions are most preferably compared in parallel. It should be noted that substantially any type of scoring function may optionally be used for these comparisons, although the description below centers on binary scoring functions ("1" and "0") for the purposes of illustration only and without any_ intention of being limiting. Additionally or alternatively, a combination of topological and composition- based analyses may optionally be used, such that both types of analyses are used. Although any type of string comparison algorithm which is known in the art could be used, preferably the sequences are compared by "sliding" the query sequence against the subject sequence, resulting in a comparison of each saccharide unit and each sub-sequence of saccharide units of the query and subject complex carbohydrates. The results of this comparison procedure are then analyzed in order to determine the similarity score. However, more preferably such "sliding" comparisons are only part of the overall comparison procedure. These steps are explained in greater detail with regard to the flowchart of the method shown in Figure 2. As shown, in step 1, the query and subject complex carbohydrate structures are entered for comparison, preferably in the linear code format of the present invention. If these carbohydrate structures are entered in a different format, such as the graphical or schematic format described previously, then these structures are first converted to the linear code of the present invention. The various formats for entering the linear code sequences are described with regard to Figure 1. In Figure 2 step 2, the linear code syntax of the query sequence is examined for errors and/or illegal code elements. If any errors are found, then these are displayed to the user for correction. In Figure 2 step 3, the complex carbohydrate string is divided into linear segments and junctions. Segments are preferably defined as linear sequences (without a branching point) of at least two adjacent SUs that may reach a junction. Junctions are preferably defined when a MS (monosaccharide) is connected to at least two other MSs. The junction then features the Root MS, the (at least two) glycosidic bonds and the MSs that are connected to them, the "Hands SUs". The segments and junctions may overlap; the MSs of a junction can also be defined in different linear segments. Preferably, this process includes the steps of defining the beginning and ending of each SU, as well as the corresponding serial number, or position number of the saccharide unit, in the sequence. Steps 4-7 are concerned with the analysis of the segments, while step 8 is concerned with analysis of the junctions; these steps may optionally be performed in parallel. In Figure 2 step 4, the query segments "slides" along the subject segments, such that each segment of the query sequence is compared to each branch at the subject sequence. This step preferably involves the steps of a method for comparing the saccharide units as follows, by comparing each of the two elements of the saccharide units. These two elements are preferably the MS score (for the sugar and modifications of the sugar); and the GB score (for the glycosidic bond). The MS score is decided by using the MS Description table, the Saccharide Modifications Comparison Table and the MS Modification Orientation Comparison Table, for the stereo-chemical structure of the sugar and its modification. The GB score is preferably decided by using the MS Description table, the Saccharide Modifications Comparison Table and the GB Modification Orientation Comparison Table. With the help of these tables, the GB is described, and the position of the bond to its neighbor (position 2, 3, 4, 6 and so forth), the orientation of the connection at this position (EqU, EqD, AxU and AxD) and the structure type of the neighbor (Dp, Df, Lp and Lf). From the linear code, the anomer (α/β) of the GB may also be known. The final SU similarity score is preferably a weighted average of the two factors. These procedures are described in greater detail below. Comparison of the MS and their Modifications The MS are compared according to their characters as described in the monosaccharide (MS) Description Table. First the "structure type" of the MS's (Dp, Df, Lp and Lf) is compared; if it is different, the result of this comparison is a score of zero. If the structure type is the same, then preferably further comparisons are performed, optionally directly with data obtained from the MS table, but more preferably also with linear code comparisons. For example, preferably the modification at each position of the two MS is compared. In that sense, the "normal" OH at position 2 of Galactose is considered to be a modification. The comparison also more preferably includes the chemical nature of the modification (according to the Saccharide Modifications Comparison Table) and their orientations (according to the MS Modification Orientation Comparison Table). Following the alignment of the data of the two MSs in tables and/or with some other type of comparison, each unit of data or cell is compared to its parallel unit of data or cell. An example of the results of such a comparison is presented below in a table: "Two MSs Comparison Table". The comparison most preferably includes only the carbons that have modifications. The processing of the data to form the "Two MSs Comparison Table" is more preferably performed as follows. First, multiply the numbers at each position to obtain the "Chemical and Orientation Comparison Score" (shown as a third row R). Next, use the following formula to calculate the Final MS Score R (0 =R>=1). Rj are all the results of the "Chemical and Orientation Comparison Score" at each of the positions. FR is a function that is dependent on the parameter s, the MS sensitivity parameter. Therefore, the final MS Score R is: Λ(j) :^ [α-*)*-*∑ Λ] + [j* πΛ] n When s=0, the comparison is not sensitive to the differences between the MSs and the MS score is an arithmetical mean of R. In this case, a zero value of one of the R; does not reduce the score dramatically. When s=l the comparison is most sensitive to the differences between the MSs and the MS score is a geometrical mean of Rj. In this case when even one of R is zero than the MS score R is zero. When 0>s>l the value of R is a continuous number between the previous cases. There is a linear relationship between the values of s and R. The s parameter may optionally and more preferably be manually set by the user, in order to determine the sensitivity of the comparison. As an example, consider the describe the comparison between Galactose (A) and N-acetyl glucose amine (GN or G[2N] when written out). The Galactose description according to the MS table is: The Glucose description according to the MS table is: For GN or G[2N] the modification in position number 2 is replaced from OH to N: The two MS (A and G) have the same structural type (Dp) therefore the comparison is meaningful, so the two MSs are compared in the "Two MS Comparison Table". For each position the modification and the modification orientation are compared, and a value is given according to the modification comparison table and the modification orientation comparison table. The results are multiplied to get the Chemical and Orientation Comparison Score at each position Rj. The Final MS Score is R. Two MSs Comparison Table: The Final MS Score R is: when s=0, R=0.6 (this is the arithmetical mean); when s=l, R=0 (this is the geometrical mean); for s=0.2, 0.4, 0.6 and 0.8, R=0.48, 0.36, 0.24 and 0.12, respectively. The linear relationship between the R and the s values can therefore be seen. The final MS Score is then determined as a function of s. Comparison of the GBs The score of the GB comparison preferably includes several factors: comparison of the anomers, such that if the anomers are the same, the score is 1, if not then the score is 0; and comparison of the position of the connection to the neighbor MS, such that if it is the same position, the score is 1, and if not, then the score is 0. Alternatively, other values may be used within a range, rather than a binary "yes/no" score. Another factor is preferably the comparison of the orientation of the connection to the neighbor MS. The score of the orientation is optionally and preferably taken from the table: "GB Orientation Comparison Table". For example, if the neighbor MS is glucose and the connection is at position 3, then the orientation is: EqU. The score is 1 for full match, and 0 if there is U versus D. For the difference in the Eq versus Ax a score in the range 0-1 is given, as described in the table. Also, preferably the structure of the neighbor MS is compared (Dp, Df, Lp or Lf); if it is the same the score is 1, if not, then the score is 0. The score of the GB is then preferably calculated by a weighted mean of these factors. The anomer and the orientation are two parameters that are both determined by the same kind of data: the angle of the GB. Therefore, these factors are preferably multiplied in the GB score formula: GB score = Angle weight* (anomer score* orientation score)+ Position weight* (position score) + Structure type weight* (Structure type score). The calculation of the score of the first SU is more preferably handled as a special case, since the first SU may only have an anomer, so this first comparison may lack information. Indeed, the first SU may not even have an anomer. For a comparison which includes only part of the SU information (just the MS or MS + anomer or MS + anomer + position), preferably if the same kind of data is available, then the comparison is performed according to all the data. Alternatively, if the same information is not available, then the default GB score is preferably the maximum score. The full comparison is for example Ga3 A to Ga3F, and in this case the GB score is 1 -structure type portion. Thus, most preferably, when a first SU (with partial data) is compared to other SUs (with full data), the GB score is 1. When the first SU is compared to other first SU, if the same data is available, the comparison preferably includes all of the data. However, different types of data are preferably not compared, such that the comparison includes only the type of data which is identical for both SUSs. The final SU's comparison score The score is preferably a weighted average of the MS and the GB scores. It is preferably calculated by multiplying each score (MS and GB) with a factor which is more preferably defined by the user according to the importance of each element, and a final score between 0-1 is accepted. If the first SU does not have a true GB, the SU comparison score is preferably the MS score. The Opposite Sliding Mechanism The purpose of this sliding mechanism is to compare all possible SUs to each other in order to locate all possible simple elements between " the query and the subject. Before the sliding mechanism can be performed, preferably the two CCs are divided into segments and junctions. The relative position of the segments and junctions and the first SU of the CC are all known. The comparison process is preferably based on a comparison of each SU at each segment in the query CC to each SU and each segment in the subject CC. In addition, each junction in the query is preferably compared to each junction in the subject. This is done by "sliding" the query and subject segments in opposite directions, against each other, more preferably in one SU "jump". The score for each SU in each sliding position is then calculated. Optionally and more preferably, the comparison of the SU to SU is performed by comparing MS to MS and GB to GB (query vs. subject). The SU jump more preferably has two scores (MS and GB), since it is divided to its two components: the MS similarity and the GB similarity. So, the overall similarity of an element may end in the middle of a SU. The SU is modular in other cases too: in the case of the comparison of the first SU (which is connected to a protein, lipid or other chemical) and in the case of junction comparison (see below). Example of the sliding process The comparison is performed between a segment of a query CC Y and a segment of a subject CC X. Note that the first SUs in both segments are not the "first SU" of these CCs, since both have a GB connected to a residue. The name of the Root MS for connecting segments is in parentheses. The query segment is: Segment ID =Y Aa3 Ab4 GNb3 (A) and subject segment is: Segment ID =X Fa3 Ab3 GNb6 (G) In each slide value, the SU comparison value is preferably calculated for every couple of overlapping SU's: Slide value -2 Aa3 Ab4 GNb3 (A) Fa3 Ab3 GNb6 (G) Results 0.33 Slide value -1 Aa3 Ab4 GNb3 (A) Fa3 Ab3 GNb6 (G) Results 0 0.86 Slide value 0 Aa3 Ab4 GNb3 (A) Fa3 Ab3 GNb6 (G) Results 0.66 0.66 0.66 Slide value 1 Aa3 Ab4 GNb3 (A) Fa3 Ab3 GNb6 (G) Results 0.66 0.86 Slide-value 2 Aa3 Ab4 GNb3 (A) Fa3 Ab3 GNb6 (G) Results 0.2 * Note that the scores of the SU comparison are not correct. The results are in the "The Sliding Table r Comparison of segmented CCs If there is more than one segment in the query CC or in the subject CC, or both, all of the linear segments of the query CC are preferably compared against all the linear segments of the subject CC. In Figure 2 step 5, the process of simple similar elements identification is preferably performed. Simple similar elements are sequence of at least two adjacent SU's that are similar in the subject and query CCs. Each of the similar sequence in the query and in the subject is called sub element. Similar elements have by definition only two sub elements one in the query and one in the subject. Simple similar elements do not include junctions (but can include apart of a junction). These elements share more than one SU similarity between segments. Simple linear element identification There are preferably two steps at this stage. First, the sliding table is preferably "cleaned" by removing the SUs with low scores using the SU Noise Filter. Also, adjacent SUs are preferably located for defining the "preliminary" linear similar elements. All of the rows in the slide results table are preferably examined. If a SU comparison score is found which is above the noise level, then preferably a linear similar element is defined and counting is started. After a SU comparison result which is lower than the noise value is found, the element is no longer counted. The noise value is a parameter which is more preferably manually controlled. Example for simple elements identification: If the row in the slide result tables looks like this :0, 0.8, 1, 1, 0.2, 1, 0.2, 0.8, and 0.7, then the noise value is 0.3. This slide has 3 elements, which are underlined: 0, 0.8, 1, 1, 0.2,1, 0.2. 0.8, 0.7 and which include one element of three SU's, one element of two SU's, and one element of one SU. However, since at the moment an element is at least two adjacent SUs, there are only two elements at that row (underlined): 0, 0.8, 1, 1, 0.2, 1, 0.2. 0.8, 0.7. In Figure 2 step 6, the process of complex elements identification is preferably performed. "Complex similar elements" are not a direct result of the sliding process, but instead are discovered through additional analyses. Such elements include, but are not limited to, the following examples. One such element occurs when a similar element (between the query segment and the subject segment) is repeated at least once, such that all of the sub elements (e.g.: the one sequence at the query CC and two sequences at the subject CC) are preferably totally overlapping, but may optionally be only partial overlapping. Another variation on such a complex element occurs when an element is presented only once in the query and once in the subject, but this element itself contains a repetitive element. These cases appear as several elements. Additionally, optionally such an element occurs when two sequences are homogeneous (same SU sequence e.g. Ab4Ab4Ab4Ab4) but with different lengths. These cases are called partial homogeneous overlapping elements and may hamper the correct alignment of the sequences. The different kinds of complex simple elements are identified based on the location of the simple sub elements obtained from the sliding process. Different kinds of complex elements as well as simple ones are optionally and more preferably scored at the next step. In Figure 2 step 7, the process of scoring the similar elements is performed, which optionally and more preferably also includes biological information. Different kinds of elements are more preferably scored differently according to a biological function of interest, thereby detecting different types of similar subject glycans. Examples of preferred rules for scoring a similar element include, but are not limited to, determining the score of an element as the sum of the scores of the SUs of which the element is composed. Inter and intra segments overlapping elements are scored after weighting according to the copy number. For example, if an element is composed of 3 sequences, one in the query CC and two in the subject CC, the element may be found first as 2 simple elements and then as an S repetitive overlapping element. The sum of the scores of both elements gives it too much weight, so the presence of only three sequences in the element must be considered. A "normal" similar element is a repeat of two similar sequences, so normalization may optionally be performed according to the repeat number. The sum of the scores of the simple elements that compose the overall complex element is then preferably adjusted by a factor. The factor is calculated optionally and more preferably by this formula: (The number of non repeating sequences)/(The number of "simple" elements*2) For example: a complex element is composed of the simple sequences A-B of score 1.8 and A-C of score 1.6. The factor is %. The score is (1.8+1.6)* %. Another example: a complex element is composed of the simple sequences A- B of score 1.8, A-C of score 1.6 and B-D of score 1.9. The factor is 4/6. The score is (1.8+1.6+1.9)*4/6. The formula accounts for the symmetry of the distribution of the simple elements. For partial overlapping elements, optionally and preferably, the overlapping element is scored after factoring by their copy number. The score of the partial overlapping element is, of course, lower than the score of the "whole" element. Unlike the previous section, the scoring is preferably not symmetric: the "whole" element receives a "full" score and the partial overlapping element score is preferably factored according to the overlapping portion. The overlapping portion is defined by the positions of the linear code, so modified SUs have more weight in determining the score. This scoring is preferably performed if there are only simple elements, to adjust the scores before the complex element identification is performed. For example, suppose that the element score is 3.8 (4 SUs in common), and the partial element score is 2.7 (3 SUs in common). The score of the "whole" element is taken as a whole and the score of the partial element is factored by 1/3. Partial homogeneous overlapping elements are preferably scored according to the length of the elements. The method receives the length of the elements and factors the scores accordingly. Such an element may optionally be graphically displayed as an element with two sub elements with different lengths. The previous two rules for nfrα-segment-overlapping elements may also optionally be also applied for wter-segments-overlapping elements. Elements containing repetitive elements are preferably scored once (without the apparent partial overlapping, which is deleted). The rules for scoring the similar junctions are described in greater detail below. Longer elements typically have higher scores. For example, for the CC comparison of two CCs with 2 SUs having a score of 1.8, suppose the second element is an inter-segment-overlapping element. It has 4 SUs with score 3 and the same 4 SUs in the query are similar to other 4 SUs on another segment with score 3.5. The CCs have one similar junction with the score: 0.8. IfA=l and B=3: the final CC comparison score is = A*[(1.8)+((3.3+3.5)/2*1.5)] + B*[0.8] = [1*6.9]+ [3*0.8] = 9.3 In Figure 2 step 8, the process of Junction Comparison and scoring is optionally and preferably performed separately, since the opposite sliding mechanism does not permit comparisons between the CC's branching junctions. After the sliding process is done, all of the junctions of the query CC are preferably compared to all the junctions of the subject CC, thereby obtaining a similarity score in the range 0-1. This comparison is preferably performed as follows. The "Root MS" from one junction is compared to the "Root MS" from the other junction, using the regular MS comparison. Then, the other "Hands SUs" or SU's which are connected to the "Root MS", are compared. All the possibilities of comparison are preferably considered, and the comparison with the highest score is preferably used to calculate the junction's score. The score of the junction is preferably a weighted average of the Root MS comparison score and the Hands SUs comparison score, used both for the "Final CCs Comparison Score" and for the presentation of results for similar junctions. A "Junction Noise Value" is more preferably used to determine which junctions are similar. The Junction Noise Value parameter (like the "SU Noise Value") may also optionally be manually controlled, independently of the calculated value. When comparing two junctions, each of which has two "hands", there are two possible forms for the comparison. The form with the highest score is then considered. For example, the following junctions are compared: Ab4 (Fa3) AN First, the Root MSs are compared, using the MS comparison procedure: AN «- ■ » AN = 1 Next the following Hands SU's couples are compared by using the SU comparison procedure. There are only two alignments: Fa4 (AN) « ■ • Fa3 (AN) = 0.66 (the first alignment) Fa3 (AN) « ■ ■ * Ab4 (AN) = 0 (the first alignment) Ab4 (AN) --> Fa4 (AN) = 0.33 (the second alignment) Fa3 (AN) <e"* Fa3 (AN) = 1 (the second alignment) The scores of each alignment are summed. The first alignment score is: 0.66. The second alignment score is: 1.33. The score of the second alignment is higher so it is preferably used to calculate the junction's score. A threshold parameter (filter) may optionally be used to delete low scores of SU comparisons. For example, suppose in one alignment the scores are 0.5 and 0.5; in the other alignment, the scores are 0.2 and 1. In this case the totally different kinds of junctions receive almost the same score, which is preferably differentiated. The Junction Score is then determined as A* [The Root MS score] + B*[(Hand SU score ! + Hand SU score + ... Hand SU score n )/n], where A is the weight of the Root MS score and B is the weight of the Hands SUs score. In order to make the scores reasonable, so the score of the junction is between 0 and l, let A+B = l. The parameter n is the maximal number of Hand SUs of the junctions. For example if a junction with 3 Hands SU is compared to a junction with 2 SUs n=3, there is a zero score for the comparison of the empty set (no SU) to a Hand SU. Thus, there is a large penalty for the 3 to 2 hands comparison (as described in greater detail below). A parameter may optionally be used to change the weights on the penalty of comparing junctions with different number of Hands SU (e.g.: 3 to 2 hands comparison). For example, for comparison of a junction in the previous example, let A = 0.4 and B = 0.6. The Junction Score = (0.4*1) + [0.6*(0.33+l)/2] = 0.8 Now this score is examined to determine if it passes the "Junctions Noise Value", since preferably only junctions which pass this noise value are defined as similar junctions and added to the final CC comparison score and presentation. In this example, the Junction Noise value is 0.6 so the two compared junctions are similar. Their score is then included in the final CCs score and they are presented as similar junctions. Comparison of junctions with more than two Hands SU When comparing a junction with 3 branches to a junction with 3 branches, the comparison is preferably executed in the same way. Six comparisons of hands SUs should be made, saving the one with the highest score. In the comparison of a junction with 2 branches to a junction with 3 branches, all the six alignments are preferably considered, and the alignment with the highest score is the one considered for the scoring and presentation. The following is an example of comparison of a junction with 2 branches to a junction with 3 branches. Junction X: Gb2(Ab6)(Aa3)G Junction Y: Gb2(Aa2)G The Root MSs are compared, using the MS comparison procedure: G « ■ ■ * G = 1 The following Hands SU's couples are compared by using the SU comparison procedure. There are six possible alignments: The first alignment: Gb2 (G) <- • » Gb2 (G) = l Aa3 (G) <- • » Aa2 (G) = 0.6 The second alignment: Gb2 (G) «- • » Gb2 (G) = l Ab6 (G) < • -» Fa3 (G) = 0 The remaining alignments may be similarly determined. The scores of each alignment are summed, and the highest is retained. If the first alignment is the highest and A = 0.4 and B = 0.6, then the Junction Score = (0.4*1) + [0.6*(0.6+l)/2] = 0.88 If this score is above the "Junctions Noise Value", it is considered to the CCs final comparison score and presentation. Unit junctions Following the matched junction's identification, preferablyjunction unification is performed. The unification examines the positions of the matched junctions (junctions pairs). If the junction's pair overlaps, they are a unit. The formula which considers the copy number of junctions is preferably determined as: (Sum of scores)* (a+b/2)/(a*b) a is the number of junctions in the query. b is the number of junctions in the subject. For example, for a query "Q" and a subject "S", the following sequences are given: Q= GNb4(Fa6)GNb4GNb4(Fa6)GN S= GNb4GNb4(Fa6)GN In the Query there are two matched junctions that both are identical to the junction in the Subject. The score of each junction is 1. The score of the unified junction is: (l+l)*((l+2)/2)/(l*2) = 1.5. In Figure 2, step 9 (which is optional), the process of element enlargement is performed. The linear element identification between segments uncovers only parts of the structural similarities between the CCs. The data from the junction comparison and the linear similar elements is analyzed, preferably to "create" larger "Branched Similar Elements" by unifying data from the linear elements and the junctions. A Branched Element has at least one or one linear element and one junction. The identification of branched elements is preferably performed by comparing the similar junctions and similar elements in a coordinated way. The comparison starts with the junctions and the compartments of similar junctions are aligned. Preferably, whether the Root MS of both junctions are part of the same element and whether the Hands SU are part of the same element is determined. If a positive answer in the Root MS and in at least one of Hand SU is obtained, both of the elements are preferably connected into one element. Another option for identifying a branched element is that two Hand SUs are in an element (and the Root MS is not in an element). For the other sub elements of the branched element, previously defined, which are not in the new branched element, they are preferably redefined, either as smaller elements or as nothing (e.g.: in case it is only one sub element). In Figure 2 step 10, the final scores of the CCs comparison and the statistical evaluation of the results are preferably determined. The final scores of the CCs comparison use the similar branched elements (in case this option is used), linear complex and simple similar elements and similar junctions. The Similarity Elements Score is preferably a weighted sum of the scores of all linear similar elements and all similar junctions. The parameters of the weights are "A" for elements, "B" for Junctions. For different biological functions, different formulae and/or parameters for determining these scores may also optionally be adjusted. The statistical evaluation of the results is preferably performed by calculating the E- value. E- value determines the expected number of glycans found in the database which receive the CC's comparison score. Since the score is related to the length of the CC, there is a need to calculate the distribution of the scores results for different length queries CCs. It should be noted that the present invention is not restricted to the selection, scoring and display of a single alignment for a pair of query and subject sequences, but instead may optionally and more preferably be used to show multiple possible alignments (with their associated scores) for such pairs of sequences. The following tables contain parameters and/or data which have been obtained from experiments. Those tables which contain parameters may optionally be adjusted, for example according to the preferences of the user. MS Description Table: MonoSaccharide LinearCode ! Structure type D-Glucose G Dp EqD EqU EqD EqU Modification Type OH OH OH OH L-Fucose Lp EqU EqD AxD EqD Modification Type OH OH OH Y D-Galactose Dp EqD EqU AxU EqU Modification Type OH OH OH OH D-Mannose M Dp AxU EqU EqD EqU Modification Type OH OH OH OH D-Xylosepyranose X Dp EqD EqU EqD Modification Type OH OH OH Y D-Xylofuranose X Λ Df AxD AxU EqU Modification Type OH OH OH D-Arabinopyranose Dp EqU EqD AxD Modification Type OH OH OH Y L-Arabinofuranose Lf AxD EqU EqD Modification Type OH OH OH L-Rhamnose H Lp AxD EqD EqU EqD Modification Type OH OH OH Y D-Rhamnose Dp AxU EqU AxU EqU Modification Type OH OH OH Y D-Glucuronic acid U Dp EqD EqU EqD EqU Modification Type OH OH OH OOH • L-Iduronic acid Lp AxD AxU AxD EqD Modification Type OH OH OH OOH Neuraminic acid N DpM AxU EqD EqU EqD Modification Type OOH Y OH Q OH OH OH Sialic acid (Neu 5 Ac) NN DpM AxU EqD EqU EqD Modification Type OOH Y OH N OH OH OH D-Galacuronic acid Dp EqD EqU AxU EqU Modification Type OH OH OH OH KDN DpM AxU EqD EqU EqD Modification Type OOH Y OH OH OH OH OH D-Ribose furanose Df AxD EqD EqU Modification Type OH OH OH KDO W DpM EqU EqU AxU EqU Modification Type OOH Y OH OH OH OH AUose Dp EqD AxD EqD EqU Modification Type OH OH OH OH Fructose Df AxD AxU AxD AxU Modification Type OH OH OH OH OH Abequose Dp EqD AxU EqU Modification Type OH Y OH Y Dp = D pyranose, Df = D furanose, Lp = L pyranose, Lf = L furanose, EqD = Equatorially down, EqU= Equatorially up, AxD=Axially down, AxU= Axially up. OOH = carboxyl MS Modification Orientation Comparison Table: GB Orientation Comparison Table: Saccharide Modifications Comparison Table: Implementation Example The previously described method is generally useful, but does not include biological information. This method may optionally be adjusted or functionally calibrated for a certain biological role, for example by comparing similar glycans in the sense that they are recognized by the same antibody. To predict whether a certain glycan may cause an immunological response, the glycan can be compared to the database; if the glycans with the highest scores are immunogenic, the query glycan has a higher probability of also being immunogenic. Therefore, in order to predict the immunogenic response of the query glycan, biological information is incorporated into the comparison process. The database preferably contains the relevant information on the known immune response cased by glycans, or on any other biological function(s) of interest. To demonstrate the ability of the method of the present invention to incorporate such biological information into the comparison process, raw data on the specificity of the binding of glycans by monoclonal antibodies was analyzed (e.g.: Thurin J. Binding sites of monoclonal anti-carbohydrate antibodies. Curr Top Microbiol Immunol. 1988;139:59-79.). For example, a monoclonal antibody which binds ANb3Aa3Ab4Gb:C with complete efficacy (100% binding) was also tested against five other glycans of different sequences. One of these glycans bound to the antibody with 40% equivalent efficacy, while the other glycans did not bind at all. Glycan Binding by the antibody (%) ANb3Aa3Ab4Gb:C 100 ANb3Aa3Ab4GNb3Ab4Gb:C 40 Aa4Ab4Gb:C 0 Aa3Ab4Gb:C 0 ANb3Aa4Ab4Ab:C 0 ANa3ANb3Aa4Ab4Gb:C 0 This type of information was used to determine a set of principals that describe the binding of glycans by antibodies. For example, the antibody usually binds at the end the end of the glycan. Blocking the ( end of a glycan by adding an SU usually interrupts the binding. Deleting an SU from end of the glycan also usually interrupts the binding. These new insights can be incorporated into the method of the present invention, in order to develop another optional implementation of this method with regard to biological function as determined by antibody binding. One example was obtained by comparing the glycan: Aa3Ab4GNb3Ab3ANb4(NNa3)Ab4Gb:C that contains the Galilee antigen against a database determined according to the present invention (Glycomics database; http://www.glycominds.net). The Galilee antigen has the sequence Aa3Ab4GN at the non-reducing end of a glycan. This epitope is not present in humans although it is abundant in other mammals. The results of the search included glycans that carry the Galilee antigen (in red) and other similar elements and junctions (see Figure 3). Section 3: Exemplary System for Sequence Analysis Figure 4 is a schematic block diagram of an exemplary system according to the present invention for carbohydrate sequence analysis. As shown, a system 10 includes a user computational device 12 for operation by a user (not shown), which is connected to a server 14 through a network 16. Network 16 could be the Internet, for example. Server 14 controls the operation of a database 18, which contains a plurality of complex carbohydrate sequences in the format of the present invention. The operation of system 10 is as follows. When the user wishes to perform a search for a query complex carbohydrate sequence, the user preferably enters the sequence through a user interface 20, which is provided through user computational device 12. The query sequence, optionally with any user-defined parameters, is then sent to server 14 through network 16. The method of the present invention for comparing carbohydrate sequences is then preferably performed as previously described, for example by a software module 22 being operated by server 14. The results of the search and comparison are then sent to user computational device 12, and are preferably displayed through user interface 20. References Abbott A (1999) Nature 398:6729 646 Bohne, A., Lang, E. and von der Lieth, C.W. (1998) J Mol. Model. 4 33-43. Brazma A, Jonassen I, Eidhammer I, Gilbert D (1998) J Comput Bid Summer 5 279-305. Bruno, I.J., Kemp, N.M., Artymiuk, PJ. and Willett, P. (1997) Carbohydrate res. 304, 61-67. Bush CA, Martin-Pastor M, Imberty A (1999) Annu Rev Biophys Biomol Struct 28 269- 93. BW Weston, RP Nair, RD Larsen, and JB Lowe, (1992) JBC 2674152-4160. Davis, B. G. (2000), Chem & Industry 21 134-139 Dwek, R.A., (1996) Chem. Rev., 96 683-720. Frishman D, Heumann K, Lesk A, Mewes HW (1998) Bioinformatics 14 551-61 Gershon D, Sobral BW, Horton B, Wickware P, Gavaghan H, Strobl M (1997) Nature 389:6649 417-22 Gohier A, Espinosa JF, Jimenez-Barbero J, Carrupt PA, P'rez S, Imberty A (1996) JMol Graph 14 322-7, 363-4. Gotoh O, (1999) Adv Biophys 36 159-206 Imberty A, Monier C, Bettler E, Morera S, Freemont P, Sippl M, Fkckner H, Roger W, Breton C (1999) Glycobiology 9 713-22. Knapman, K. Informatics, In: www. chemweb.com/alchemy/1999/molmodel, June 11,. Koch AE, Halloran MM, Haskell CJ, Shah MR, Polverini PJ, (1995)Nature 376:6540 517-9. Laine, R.A. (1994) Glycobiology 4 759-767. Ouellette F (1999) Clin Genet 56 179-85 Persidis A (1999) Nat Biotechnol 17 828-30 R Sawada, S Tsuboi, and M Fukuda (1994) JBC 269 1425-1431. Rawlings CJ, Searls DB (1997) Curr Opin Genet Dev 7 416-23 Searls, D.B. (2000) Drug Discovery Today 5 135-143. Sharon, N. (1975) In: Complex Carbohydrates: Their Chemistry, Biosynthesis and Functions. Eds: Addison- Wesley Publishing Company, USA. Thayer, A.M. (2000), C&EN 78 19-32. Ullmann, J.R. (1976) J. Association Computing Machinery 23 31-42. von der Lieth C, Siebert H, Koznr T, Burchert M, Frank M, Gilleron M, Kaltner H, Kayser G, Tajkhorshid E, Bovin NV, Vliegenthart JF, Gabius H (1998) Acta Anat (Basel) 16191-109. von Itzstein M, Wu WY, Kok GB, Pegg MS, Dyason JC, Jin B, Van Phan T, Smythe ML, White HF, Oliver SW, (1993) Nature 363:6428 418-23.

Claims: WHAT IS CLAIMED IS: 1. A method for representing a carbohydrate structure as a linear sequence, the method being performed by a data processor, the method comprising: (a) decomposing the carbohydrate structure into a plurality of elements; (b) determining a connection between each pair of elements; and (c) constructing a series of said plurality of elements connected with said connections to form the linear sequence. 2. The method of claim 1, wherein each element is a basic saccharide unit, said basic saccharide unit featuring at least a name of a sugar. 3. The method of claim 2, wherein said basic saccharide unit further includes a position for connecting said sugar to a neighboring sugar. 4. The method of claim 3, wherein said basic saccharide unit further features a modification to said sugar. 5. The method of claim 4, wherein said basic saccharide unit further features an anomer. 6. The method of claim 5, wherein said connection further comprises at least one branch of the carbohydrate structure. 7. The method of claim 6, wherein said plurality of elements includes a plurality of repeated basic saccharide units, said plurality of repeated basic saccharide units being represented at least by a single basic saccharide unit with an associated reference number for determining a number of repetitions of said basic saccharide unit. 8. The method of claim 6, wherein at least one element is replaced by a symbol representing an unknown saccharide unit. 9. The method of claim 6, wherein at least one element is replaced by a symbol representing a choice from a plurality of different saccharide units. 10. The method of claim 2, wherein the carbohydrate structure further features at least one branch, and step (a) further comprises: (i) locating said at least one branch; and (ii) representing said at least one branch within the linear sequence. 11. The method of claim 10, wherein step (i) is at least partially performed according to an identity of a saccharide at a junction of said at least one branch. 12. The method of claim 11, wherein said identity is used to select said at least one branch according to an empirically determined list of preferred saccharides for said junction. 13. The method of claim 12, wherein said junction includes at least two saccharides, a first saccharide before said branch, and a second saccharide after said branch, such that step (i) is at least partially performed by comparing an identity of said first saccharide to an identity of said second saccharide according to said empirically determined list. 14. The method of claim 13, wherein if said identity of said first saccharide is identical to said identity of said second saccharide, a position of said first saccharide is compared to a position of said second saccharide to perform step (i). 15. The method of claim 10, wherein step (ii) comprises: (1) locating each saccharide unit belonging to said branch; and (2) demarcating a start point and an end point to said branch within the linear sequence with a start point symbol and an end point symbol, respectively. 16. The method of claim 10, wherein at least one element is replaced by a symbol representing a saccharide unit having a modification with an unknown position. 17. The method of claim 10, wherein at least one element is replaced by a symbol representing a saccharide unit having a connection to a neighboring saccharide unit at an unknown position. 18. A method for comparing a first carbohydrate structure to a second carbohydrate structure, the method being performed by a data processor, the method comprising: (a) providing each of said first and said second carbohydrate structures as a first and second linear sequence, respectively; and (b) comparing at least a portion of said first linear sequence to said second linear sequence to form a comparison. 19. The method of claim 18, wherein step (a) further comprises: (i) decomposing each carbohydrate structure into a plurality of elements; (ii) determining a connection between each pair of elements; and (iii) constructing a series of said plurality of elements comiected with said comiections to form said first and second linear sequences. 20. The method of claim 19, wherein each element is a basic saccharide unit, said basic saccharide unit featuring at least a name of a sugar, and the position for connecting said sugar to a neighboring sugar. 21. The method of claim 20, wherein said basic saccharide unit further features a modification to said sugar. 22. The method of claim 21, wherein said basic saccharide unit further features an anomer. 23. The method of claim 22, wherein at least one element is replaced by a symbol representing an unknown saccharide unit. 24. The method of claim 22, wherein at least one element is replaced by a symbol representing a choice from a plurality of different saccharide units. 25. The method of claim 20, wherein at least one carbohydrate structure further features at least one branch, and step (i) further comprises: (1) locating said at least one branch; and (2) representing said at least one branch within said linear sequence. 26. The method of claim 25, wherein step (1) is at least partially performed according to an identity of a saccharide at a junction of said at least one branch. 27. The method of claim 27, wherein said identity is used to select said at least one branch according to an empirically determined list of preferred saccharides for said junction. 28. The method of claim 27, wherein said junction includes at least two saccharides, a first saccharide before said branch, and a second saccharide after said branch, such that step (i) is at least partially performed by comparing an identity of said first saccharide to an identity of said second saccharide according to said empirically determined list. 29. The method of claim 28, wherein if said identity of said first saccharide is identical to said identity of said second saccharide, a position of said first saccharide is compared to a position of said second saccharide to perform step (1). 30. The method of claim 25, wherein step (2) comprises: (A) locating each saccharide unit belonging to said branch; and (B) demarcating a start point and an end point to said branch within the linear sequence with a start point symbol and an end point symbol, respectively. 31. The method of claim 22, wherein at least one element is replaced by a symbol representing a saccharide unit having a modification with an unknown position. 32. The method of claim 22, wherein at least one element is replaced by a symbol representing a saccharide unit having a connection to a neighboring saccharide unit at an unknown position. 33. The method of claim 18, wherein each of said first and said second linear sequences is in a form of a linear code, such that step (a) is performed by translating at least one of the first carbohydrate structure and the second carbohydrate structure from a known carbohydrate structure representation format to said linear sequence, said known carbohydrate structure representation format being other than said linear code. 34. The method of claim 18, further comprising: (c) determining a similarity score according to said comparison. 35. The method of claim 34, wherein step (b) further comprises of: (i) comparing each saccharide unit of at least said portion of said first linear sequence to each saccharide unit of at least said portion of said second linear sequence; and (ii) determining a saccharide unit comparison score for each pair of saccharide units; such that said similarity score is at least partially detemiined according to said saccharide unit comparison score. 36. The method of claim 35, wherein step (i) further comprises: (1) comparing an identity of a monosaccharide for each of said pair of saccharide units, such that if said monosaccharides are identical, said saccharide unit comparison score is increased. 37. The method of claim 36, wherein step (i) further comprises: (2) comparing a position for connecting each monosaccharide to a neighboring monosaccharide, such that if said positions are identical for said pair of saccharide units, said saccharide unit comparison score is increased. 38. The method of claim 37, wherein step (i) further comprises: (3) comparing anomerity of each monosaccharide, such that if said anomerity is identical for said pair of saccharide units, said saccharide unit comparison score is increased. 39. The method of claim 38, wherein step (i) further comprises: (4) comparing a modification of each monosaccharide, such that if said modification is identical for said pair of saccharide units, said saccharide unit comparison score is increased. 40. The method of claim 35, wherein step (ii) is at least partially performed according to at least one biologically relevant characteristic of said saccharide unit. 41. The method of claim 34, wherein each of said first linear sequence and said second linear sequence has a branch, said branch including a junction, such that step (a) further comprises: (i) decomposing each of said first linear sequence and said second linear sequence into a plurality of sections, such that at least each portion of each of said first linear sequence and said second linear sequence before said junction, at said branch and after said junction is represented as a separate section; such that step (b) is performed separately for each section. 42. The method of claim 41, wherein step (b) further comprises: (i) comparing each pair of junctions for branches of said first linear sequence and said second linear sequence to determine a junction score; such that said similarity score is at least partially determined according to said junction score. 43. The method of claim 42, wherein said similarity score is at least partially determined according to said junction score if said junction score is above a minimum threshold. 44. The method of claim 34, wherein step (c) further comprises: (i) identifying at least one cluster of similar saccharide units; (ii) scoring said at least one cluster to determine a cluster score; and (iii) adjusting said similarity score according to said cluster score. 45. The method of claim 44, wherein step (i) further comprises: (1) determining a minimum threshold for similarity; and (2) counting a number of adjacent saccharide units having a saccharide unit comparison score above said minimum threshold to form a cluster; such that said cluster score is at least partially determined according to said number of adjacent saccharide units. 46. The method of claim 45, wherein step (i) further comprises: (3) determining an orientation of said adjacent saccharide units; such that said cluster score is at least partially determined according to said orientation. 47. The method of claim 34, wherein step (c) further comprises: (1) summing said saccharide unit comparison score for each pair of saccharide units to form a sequence score; and (2) adjusting said sequence score according to at least one 48. The method of claim 34, further comprising: (d) adjusting an orientation of said first linear sequence relative to said second linear sequence; and (e) repeating steps (b) and (c). 49. The method of claim 48, further comprising: (1) determining a final similarity score by selecting at least one similarity score from a plurality of similarity scores being determined at different orientations of said first linear sequence relative to said second linear sequence. 50. The method of claim 49, wherein step (f) further comprises: (i) selecting said at least one similarity score if said at least one similarity score is greater than a threshold minimum; and (ii) selecting said orientation of said first linear sequence relative to said second linear sequence to form a selected comparison pair. 51. The method of claim 50, further comprising: (g) displaying each selected comparison pair. 52. The method of claim 51, wherein step (g) further comprises displaying each similar pair of saccharide units, marked according to a degree of similarity. 53. A system for comparing a first carbohydrate linear sequence to a second carbohydrate linear sequence for a user through a network, comprising: (a) a user computational device for receiving at least one of the first and the second carbohydrate linear sequences from the user; (b) a server being connected to said user computational device through the network, said server receiving said at least one of the first and the second carbohydrate linear sequences; and (c) a database being connected to said server, said database containing a plurality of carbohydrate linear sequences, such that server searches through said database with said at least one of the first and the second carbohydrate linear sequences for a similar sequence. 54. The system of claim 53, wherein the network is the Internet. 55. A method for representing a post-translation modification of a protein, the method being performed by a data processor, the method comprising: (a) providing a linear code for describing carbohydrate structures; and (b) representing the post-translation modification as a linear sequence with said linear code. 56. The method of claim 55, wherein the post-translation modification is a glycosylation. 57. The method of claim 56, further comprising: (c) providing a protein sequence and a database; and (d) storing said linear sequence with said protein sequence in said database. 58. The method of claim 57, wherein said database is at least one of the group of PDB and SwissProt databases.

Inventors: DOTAN NIR, DUKLER AVINOAM, DOTAN, NIR, DUKLER, AVINOAM
Applicants: DOTAN NIR, DUKLER AVINOAM, GLYCOMINDS LTD, DOTAN, NIR, DUKLER, AVINOAM, GLYCOMINDS LTD.
Application year: 2001
Main classification: C07D
IPC codes: C08B37, G06F17, G06F19