src/gnCompare.cpp

Go to the documentation of this file.
00001 
00002 // File:            gnCompare.cpp
00003 // Purpose:         Coparator for all Sequences
00004 // Description:     Compares sequences
00005 // Changes:        
00006 // Version:         libGenome 0.5.1 
00007 // Author:          Aaron Darling 
00008 // Modified by:     
00009 // Copyright:       (c) Aaron Darling 
00010 // Licenses:        See COPYING file for details
00012 #include "gn/gnCompare.h"
00013 
00014 //      public:
00015 
00016 const gnCompare *gnCompare::ProteinSeqCompare(){
00017         const static gnCompare* t_comp = new gnCompare(ProteinSeqCompareType);
00018         return t_comp;
00019 }
00020 const gnCompare *gnCompare::DNASeqCompare(){
00021         const static gnCompare* t_comp = new gnCompare(DNASeqCompareType);
00022         return t_comp;
00023 }
00024 const gnCompare *gnCompare::RNASeqCompare(){
00025         const static gnCompare* t_comp = new gnCompare(RNASeqCompareType);
00026         return t_comp;
00027 }
00028 
00029 gnCompare::gnCompare( const gnCompareType c_type ){
00030         for( gnSeqC i = 0; i < GNSEQC_MAX; ++i ){
00031                 m_pairArray[i] = new gnSeqC[1];
00032                 m_pairArray[i][0] = 0;
00033                 m_containArray[i] = new gnSeqC[1];
00034                 m_containArray[i][0] = 0;
00035         }
00036         switch(c_type){
00037                 case ProteinSeqCompareType:
00038                         CreateProteinComparator();
00039                         break;
00040                 case DNASeqCompareType:
00041                         CreateDNAComparator();
00042                         break;
00043                 case RNASeqCompareType:
00044                         CreateRNAComparator();
00045                         break;
00046         }
00047 }
00048 
00049 boolean gnCompare::Contains( gnSeqC ch, gnSeqC ch2, boolean case_sensitive) const
00050 {
00051         if(!case_sensitive){
00052                 ch = toupper(ch);
00053                 ch2 = toupper(ch2);
00054         }
00055         if(strchr(m_containArray[ch], ch2) == 0)
00056                 return false;
00057         return true;
00058 }
00059 
00060 boolean gnCompare::Contains( const gnSeqC* seq, const gnSeqC* seq2, const uint32 len, boolean case_sensitive ) const{
00061         for( uint32 i=0; i < len ; ++i )
00062                 if(!Contains(seq[i], seq2[i], case_sensitive))
00063                         return false;
00064         return true;
00065 }
00066 
00067 boolean gnCompare::Contains( const string &seq, const string &seq2, boolean case_sensitive) const
00068 {
00069         gnSeqI shorter_len = seq.length() < seq2.length() ? seq.length() : seq2.length();
00070         return Contains( (gnSeqC*)seq.data(), (gnSeqC*)seq2.data(), shorter_len, case_sensitive );
00071 }
00072 //      public:
00073 gnCompare::gnCompare()
00074 {
00075         for( gnSeqC i = 0; i < GNSEQC_MAX; ++i ){
00076                 m_pairArray[i] = new gnSeqC[1];
00077                 m_pairArray[i][0] = 0;
00078                 m_containArray[i] = new gnSeqC[1];
00079                 m_containArray[i][0] = 0;
00080         }
00081 }
00082 
00083 gnCompare::gnCompare( const gnCompare &sf )
00084 {
00085         m_name = sf.m_name;
00086         for( gnSeqC i = 0; i < GNSEQC_MAX; ++i ){
00087                 m_pairArray[i] = new gnSeqC[strlen(sf.m_pairArray[i])+1];
00088                 strcpy(m_pairArray[i], sf.m_pairArray[i]);
00089                 m_containArray[i] = new gnSeqC[strlen(sf.m_containArray[i])+1];
00090                 strcpy(m_containArray[i], sf.m_containArray[i]);
00091         }
00092 }
00093 gnCompare::~gnCompare()
00094 {
00095         for( gnSeqC i = 0; i < GNSEQC_MAX; ++i ){
00096                 delete[] m_pairArray[i];
00097                 delete[] m_containArray[i];
00098         }
00099 }
00100 
00101 
00102 void gnCompare::AddArrayEntry( gnSeqC *array[GNSEQC_MAX], const gnSeqC ch, const gnSeqC ch2){
00103         uint32 curlen = strlen(array[ch]);
00104         gnSeqC* tmp = new gnSeqC[curlen + 2];
00105         strcpy(tmp, array[ch]);
00106         tmp[curlen] = ch2;
00107         tmp[curlen+1] = 0;
00108         delete[] array[ch];
00109         array[ch] = tmp;
00110 }
00111 
00112 void gnCompare::DelArrayEntry( gnSeqC *array[GNSEQC_MAX], const gnSeqC ch, const gnSeqC ch2){
00113         //check that the pair exists
00114         gnSeqC* loc = strchr(m_containArray[ch], ch2);
00115         uint32 count = 0;
00116         while(loc != NULL){
00117                 count++;
00118                 loc = strchr(loc+1, ch2);
00119         }
00120         if(count == 0)
00121                 return;
00122 
00123         uint32 curlen = strlen(array[ch]);
00124         gnSeqC* tmp = new gnSeqC[curlen - count];
00125         uint32 tmppos = 0;
00126         for(uint32 i=0; i < curlen; i++)
00127                 if(m_containArray[ch][i] != ch2)
00128                         tmp[tmppos++] = m_containArray[ch][i];
00129         tmp[tmppos] = 0;
00130         delete[] array[ch];
00131         array[ch] = tmp;
00132 }
00133 
00134 
00135 void gnCompare::CreateProteinComparator()
00136 {
00137         SetName( "Protein Comparator" );
00138         SetSingle( 'A' );
00139         SetSingle( 'R' );
00140         SetSingle( 'N' );
00141         SetSingle( 'D' );
00142         SetSingle( 'C' );
00143         SetSingle( 'Q' );
00144         SetSingle( 'E' );
00145         SetSingle( 'G' );
00146         SetSingle( 'H' );
00147         SetSingle( 'I' );
00148         SetSingle( 'L' );
00149         SetSingle( 'K' );
00150         SetSingle( 'M' );
00151         SetSingle( 'F' );
00152         SetSingle( 'P' );
00153         SetSingle( 'S' );
00154         SetSingle( 'T' );
00155         SetSingle( 'W' );
00156         SetSingle( 'Y' );
00157         SetSingle( 'V' );
00158         SetSingle( '.' );
00159         
00160         SetSingle( 'a' );
00161         SetSingle( 'r' );
00162         SetSingle( 'n' );
00163         SetSingle( 'd' );
00164         SetSingle( 'c' );
00165         SetSingle( 'q' );
00166         SetSingle( 'e' );
00167         SetSingle( 'g' );
00168         SetSingle( 'h' );
00169         SetSingle( 'i' );
00170         SetSingle( 'l' );
00171         SetSingle( 'k' );
00172         SetSingle( 'm' );
00173         SetSingle( 'f' );
00174         SetSingle( 'p' );
00175         SetSingle( 's' );
00176         SetSingle( 't' );
00177         SetSingle( 'w' );
00178         SetSingle( 'y' );
00179         SetSingle( 'v' );
00180 }
00181 
00182 void gnCompare::CreateDNAComparator()
00183 {
00184         SetName( "Full DNA Comparator" );
00185 
00186         SetSingle( 'a' );
00187         SetSingle( 'c' );
00188         SetSingle( 'g' );
00189         SetSingle( 't' );
00190         SetSingle( 'r' );
00191         SetSingle( 'k' );
00192         SetSingle( 's' );
00193         SetSingle( 'm' );
00194         SetSingle( 'y' );
00195         SetSingle( 'w' );
00196         SetSingle( 'b' );
00197         SetSingle( 'v' );
00198         SetSingle( 'd' );
00199         SetSingle( 'h' );
00200         SetSingle( 'n' );
00201         SetSingle( 'x' );
00202 
00203         SetSingle( 'A' );
00204         SetSingle( 'C' );
00205         SetSingle( 'G' );
00206         SetSingle( 'T' );
00207         SetSingle( 'R' );
00208         SetSingle( 'K' );
00209         SetSingle( 'S' );
00210         SetSingle( 'M' );
00211         SetSingle( 'Y' );
00212         SetSingle( 'W' );
00213         SetSingle( 'B' );
00214         SetSingle( 'V' );
00215         SetSingle( 'D' );
00216         SetSingle( 'H' );
00217         SetSingle( 'N' );
00218         SetSingle( 'X' );
00219 
00220         SetPair( 'g', 'r' );
00221         SetPair( 'g', 'k' );
00222         SetPair( 'g', 's' );
00223         SetPair( 'g', 'd' );
00224         SetPair( 'g', 'v' );
00225         SetPair( 'g', 'b' );
00226         SetPair( 'g', 'x' );
00227         SetPair( 'G', 'R' );
00228         SetPair( 'G', 'K' );
00229         SetPair( 'G', 'S' );
00230         SetPair( 'G', 'D' );
00231         SetPair( 'G', 'V' );
00232         SetPair( 'G', 'B' );
00233         SetPair( 'G', 'X' );
00234         SetPair( 'a', 'r' );
00235         SetPair( 'a', 'w' );
00236         SetPair( 'a', 'm' );
00237         SetPair( 'a', 'd' );
00238         SetPair( 'a', 'v' );
00239         SetPair( 'a', 'h' );
00240         SetPair( 'a', 'x' );
00241         SetPair( 'A', 'R' );
00242         SetPair( 'A', 'W' );
00243         SetPair( 'A', 'M' );
00244         SetPair( 'A', 'D' );
00245         SetPair( 'A', 'V' );
00246         SetPair( 'A', 'H' );
00247         SetPair( 'A', 'B' );
00248         SetPair( 'A', 'X' );
00249         SetPair( 'c', 's' );
00250         SetPair( 'c', 'm' );
00251         SetPair( 'c', 'y' );
00252         SetPair( 'c', 'v' );
00253         SetPair( 'c', 'b' );
00254         SetPair( 'c', 'h' );
00255         SetPair( 'c', 'x' );
00256         SetPair( 'C', 'S' );
00257         SetPair( 'C', 'M' );
00258         SetPair( 'C', 'Y' );
00259         SetPair( 'C', 'V' );
00260         SetPair( 'C', 'B' );
00261         SetPair( 'C', 'H' );
00262         SetPair( 'C', 'X' );
00263         SetPair( 't', 'k' );
00264         SetPair( 't', 'w' );
00265         SetPair( 't', 'y' );
00266         SetPair( 't', 'd' );
00267         SetPair( 't', 'b' );
00268         SetPair( 't', 'h' );
00269         SetPair( 't', 'x' );
00270         SetPair( 'T', 'K' );
00271         SetPair( 'T', 'W' );
00272         SetPair( 'T', 'Y' );
00273         SetPair( 'T', 'D' );
00274         SetPair( 'T', 'B' );
00275         SetPair( 'T', 'H' );
00276         SetPair( 'T', 'X' );
00277 
00278         SetPair( 'r', 'x' );
00279         SetPair( 'y', 'x' );
00280         SetPair( 'w', 'x' );
00281         SetPair( 's', 'x' );
00282         SetPair( 'k', 'x' );
00283         SetPair( 'm', 'x' );
00284         SetPair( 'b', 'x' );
00285         SetPair( 'd', 'x' );
00286         SetPair( 'h', 'x' );
00287         SetPair( 'v', 'x' );
00288         SetPair( 'n', 'x' );
00289 
00290         SetPair( 'R', 'X' );
00291         SetPair( 'Y', 'X' );
00292         SetPair( 'W', 'X' );
00293         SetPair( 'S', 'X' );
00294         SetPair( 'K', 'X' );
00295         SetPair( 'M', 'X' );
00296         SetPair( 'B', 'X' );
00297         SetPair( 'D', 'X' );
00298         SetPair( 'H', 'X' );
00299         SetPair( 'V', 'X' );
00300         SetPair( 'N', 'X' );
00301 
00302         SetPair( 'k', 'd' );
00303         SetPair( 'k', 'b' );
00304         SetPair( 'r', 'd' );
00305         SetPair( 'r', 'v' );
00306         SetPair( 's', 'v' );
00307         SetPair( 's', 'b' );
00308         SetPair( 'm', 'v' );
00309         SetPair( 'm', 'h' );
00310         SetPair( 'w', 'd' );
00311         SetPair( 'w', 'h' );
00312         SetPair( 'y', 'b' );
00313         SetPair( 'y', 'h' );
00314 
00315         SetPair( 'K', 'D' );
00316         SetPair( 'K', 'B' );
00317         SetPair( 'R', 'D' );
00318         SetPair( 'R', 'V' );
00319         SetPair( 'S', 'V' );
00320         SetPair( 'S', 'B' );
00321         SetPair( 'M', 'V' );
00322         SetPair( 'M', 'H' );
00323         SetPair( 'W', 'D' );
00324         SetPair( 'W', 'H' );
00325         SetPair( 'Y', 'B' );
00326         SetPair( 'Y', 'H' );
00327 //set the containment properties
00328         SetContained( 'g', 'r' );
00329         SetContained( 'g', 'k' );
00330         SetContained( 'g', 's' );
00331         SetContained( 'g', 'd' );
00332         SetContained( 'g', 'v' );
00333         SetContained( 'g', 'b' );
00334         SetContained( 'g', 'x' );
00335         SetContained( 'G', 'R' );
00336         SetContained( 'G', 'K' );
00337         SetContained( 'G', 'S' );
00338         SetContained( 'G', 'D' );
00339         SetContained( 'G', 'V' );
00340         SetContained( 'G', 'B' );
00341         SetContained( 'G', 'X' );
00342         SetContained( 'a', 'r' );
00343         SetContained( 'a', 'w' );
00344         SetContained( 'a', 'm' );
00345         SetContained( 'a', 'd' );
00346         SetContained( 'a', 'v' );
00347         SetContained( 'a', 'h' );
00348         SetContained( 'a', 'x' );
00349         SetContained( 'A', 'R' );
00350         SetContained( 'A', 'W' );
00351         SetContained( 'A', 'M' );
00352         SetContained( 'A', 'D' );
00353         SetContained( 'A', 'V' );
00354         SetContained( 'A', 'H' );
00355         SetContained( 'A', 'B' );
00356         SetContained( 'A', 'X' );
00357         SetContained( 'c', 's' );
00358         SetContained( 'c', 'm' );
00359         SetContained( 'c', 'y' );
00360         SetContained( 'c', 'v' );
00361         SetContained( 'c', 'b' );
00362         SetContained( 'c', 'h' );
00363         SetContained( 'c', 'x' );
00364         SetContained( 'C', 'S' );
00365         SetContained( 'C', 'M' );
00366         SetContained( 'C', 'Y' );
00367         SetContained( 'C', 'V' );
00368         SetContained( 'C', 'B' );
00369         SetContained( 'C', 'H' );
00370         SetContained( 'C', 'X' );
00371         SetContained( 't', 'k' );
00372         SetContained( 't', 'w' );
00373         SetContained( 't', 'y' );
00374         SetContained( 't', 'd' );
00375         SetContained( 't', 'b' );
00376         SetContained( 't', 'h' );
00377         SetContained( 't', 'x' );
00378         SetContained( 'T', 'K' );
00379         SetContained( 'T', 'W' );
00380         SetContained( 'T', 'Y' );
00381         SetContained( 'T', 'D' );
00382         SetContained( 'T', 'B' );
00383         SetContained( 'T', 'H' );
00384         SetContained( 'T', 'X' );
00385 
00386         SetContained( 'r', 'x' );
00387         SetContained( 'y', 'x' );
00388         SetContained( 'w', 'x' );
00389         SetContained( 's', 'x' );
00390         SetContained( 'k', 'x' );
00391         SetContained( 'm', 'x' );
00392         SetContained( 'b', 'x' );
00393         SetContained( 'd', 'x' );
00394         SetContained( 'h', 'x' );
00395         SetContained( 'v', 'x' );
00396         SetContained( 'n', 'x' );
00397 
00398         SetContained( 'R', 'X' );
00399         SetContained( 'Y', 'X' );
00400         SetContained( 'W', 'X' );
00401         SetContained( 'S', 'X' );
00402         SetContained( 'K', 'X' );
00403         SetContained( 'M', 'X' );
00404         SetContained( 'B', 'X' );
00405         SetContained( 'D', 'X' );
00406         SetContained( 'H', 'X' );
00407         SetContained( 'V', 'X' );
00408         SetContained( 'N', 'X' );
00409 
00410         SetContained( 'k', 'd' );
00411         SetContained( 'k', 'b' );
00412         SetContained( 'r', 'd' );
00413         SetContained( 'r', 'v' );
00414         SetContained( 's', 'v' );
00415         SetContained( 's', 'b' );
00416         SetContained( 'm', 'v' );
00417         SetContained( 'm', 'h' );
00418         SetContained( 'w', 'd' );
00419         SetContained( 'w', 'h' );
00420         SetContained( 'y', 'b' );
00421         SetContained( 'y', 'h' );
00422 
00423         SetContained( 'K', 'D' );
00424         SetContained( 'K', 'B' );
00425         SetContained( 'R', 'D' );
00426         SetContained( 'R', 'V' );
00427         SetContained( 'S', 'V' );
00428         SetContained( 'S', 'B' );
00429         SetContained( 'M', 'V' );
00430         SetContained( 'M', 'H' );
00431         SetContained( 'W', 'D' );
00432         SetContained( 'W', 'H' );
00433         SetContained( 'Y', 'B' );
00434         SetContained( 'Y', 'H' );
00435 
00436 }
00437 
00438 void gnCompare::CreateRNAComparator()
00439 {
00440         SetName( "Full RNA Comparator" );
00441 
00442         SetSingle( 'a' );
00443         SetSingle( 'c' );
00444         SetSingle( 'g' );
00445         SetSingle( 'u' );
00446         SetSingle( 'r' );
00447         SetSingle( 'k' );
00448         SetSingle( 's' );
00449         SetSingle( 'm' );
00450         SetSingle( 'y' );
00451         SetSingle( 'w' );
00452         SetSingle( 'b' );
00453         SetSingle( 'v' );
00454         SetSingle( 'd' );
00455         SetSingle( 'h' );
00456         SetSingle( 'n' );
00457         SetSingle( 'x' );
00458 
00459         SetSingle( 'A' );
00460         SetSingle( 'C' );
00461         SetSingle( 'G' );
00462         SetSingle( 'U' );
00463         SetSingle( 'R' );
00464         SetSingle( 'K' );
00465         SetSingle( 'S' );
00466         SetSingle( 'M' );
00467         SetSingle( 'Y' );
00468         SetSingle( 'W' );
00469         SetSingle( 'B' );
00470         SetSingle( 'V' );
00471         SetSingle( 'D' );
00472         SetSingle( 'H' );
00473         SetSingle( 'N' );
00474         SetSingle( 'X' );
00475 
00476         SetPair( 'g', 'r' );
00477         SetPair( 'g', 'k' );
00478         SetPair( 'g', 's' );
00479         SetPair( 'g', 'd' );
00480         SetPair( 'g', 'v' );
00481         SetPair( 'g', 'b' );
00482         SetPair( 'g', 'x' );
00483         SetPair( 'G', 'R' );
00484         SetPair( 'G', 'K' );
00485         SetPair( 'G', 'S' );
00486         SetPair( 'G', 'D' );
00487         SetPair( 'G', 'V' );
00488         SetPair( 'G', 'B' );
00489         SetPair( 'G', 'X' );
00490         SetPair( 'a', 'r' );
00491         SetPair( 'a', 'w' );
00492         SetPair( 'a', 'm' );
00493         SetPair( 'a', 'd' );
00494         SetPair( 'a', 'v' );
00495         SetPair( 'a', 'h' );
00496         SetPair( 'a', 'x' );
00497         SetPair( 'A', 'R' );
00498         SetPair( 'A', 'W' );
00499         SetPair( 'A', 'M' );
00500         SetPair( 'A', 'D' );
00501         SetPair( 'A', 'V' );
00502         SetPair( 'A', 'H' );
00503         SetPair( 'A', 'B' );
00504         SetPair( 'A', 'X' );
00505         SetPair( 'c', 's' );
00506         SetPair( 'c', 'm' );
00507         SetPair( 'c', 'y' );
00508         SetPair( 'c', 'v' );
00509         SetPair( 'c', 'b' );
00510         SetPair( 'c', 'h' );
00511         SetPair( 'c', 'x' );
00512         SetPair( 'C', 'S' );
00513         SetPair( 'C', 'M' );
00514         SetPair( 'C', 'Y' );
00515         SetPair( 'C', 'V' );
00516         SetPair( 'C', 'B' );
00517         SetPair( 'C', 'H' );
00518         SetPair( 'C', 'X' );
00519         SetPair( 'u', 'k' );
00520         SetPair( 'u', 'w' );
00521         SetPair( 'u', 'y' );
00522         SetPair( 'u', 'd' );
00523         SetPair( 'u', 'b' );
00524         SetPair( 'u', 'h' );
00525         SetPair( 'u', 'x' );
00526         SetPair( 'U', 'K' );
00527         SetPair( 'U', 'W' );
00528         SetPair( 'U', 'Y' );
00529         SetPair( 'U', 'D' );
00530         SetPair( 'U', 'B' );
00531         SetPair( 'U', 'H' );
00532         SetPair( 'U', 'X' );
00533 
00534         SetPair( 'r', 'x' );
00535         SetPair( 'y', 'x' );
00536         SetPair( 'w', 'x' );
00537         SetPair( 's', 'x' );
00538         SetPair( 'k', 'x' );
00539         SetPair( 'm', 'x' );
00540         SetPair( 'b', 'x' );
00541         SetPair( 'd', 'x' );
00542         SetPair( 'h', 'x' );
00543         SetPair( 'v', 'x' );
00544         SetPair( 'n', 'x' );
00545 
00546         SetPair( 'R', 'X' );
00547         SetPair( 'Y', 'X' );
00548         SetPair( 'W', 'X' );
00549         SetPair( 'S', 'X' );
00550         SetPair( 'K', 'X' );
00551         SetPair( 'M', 'X' );
00552         SetPair( 'B', 'X' );
00553         SetPair( 'D', 'X' );
00554         SetPair( 'H', 'X' );
00555         SetPair( 'V', 'X' );
00556         SetPair( 'N', 'X' );
00557 
00558         SetPair( 'k', 'd' );
00559         SetPair( 'k', 'b' );
00560         SetPair( 'r', 'd' );
00561         SetPair( 'r', 'v' );
00562         SetPair( 's', 'v' );
00563         SetPair( 's', 'b' );
00564         SetPair( 'm', 'v' );
00565         SetPair( 'm', 'h' );
00566         SetPair( 'w', 'd' );
00567         SetPair( 'w', 'h' );
00568         SetPair( 'y', 'b' );
00569         SetPair( 'y', 'h' );
00570 
00571         SetPair( 'K', 'D' );
00572         SetPair( 'K', 'B' );
00573         SetPair( 'R', 'D' );
00574         SetPair( 'R', 'V' );
00575         SetPair( 'S', 'V' );
00576         SetPair( 'S', 'B' );
00577         SetPair( 'M', 'V' );
00578         SetPair( 'M', 'H' );
00579         SetPair( 'W', 'D' );
00580         SetPair( 'W', 'H' );
00581         SetPair( 'Y', 'B' );
00582         SetPair( 'Y', 'H' );
00583 //set the containment properties
00584         SetContained( 'g', 'r' );
00585         SetContained( 'g', 'k' );
00586         SetContained( 'g', 's' );
00587         SetContained( 'g', 'd' );
00588         SetContained( 'g', 'v' );
00589         SetContained( 'g', 'b' );
00590         SetContained( 'g', 'x' );
00591         SetContained( 'G', 'R' );
00592         SetContained( 'G', 'K' );
00593         SetContained( 'G', 'S' );
00594         SetContained( 'G', 'D' );
00595         SetContained( 'G', 'V' );
00596         SetContained( 'G', 'B' );
00597         SetContained( 'G', 'X' );
00598         SetContained( 'a', 'r' );
00599         SetContained( 'a', 'w' );
00600         SetContained( 'a', 'm' );
00601         SetContained( 'a', 'd' );
00602         SetContained( 'a', 'v' );
00603         SetContained( 'a', 'h' );
00604         SetContained( 'a', 'x' );
00605         SetContained( 'A', 'R' );
00606         SetContained( 'A', 'W' );
00607         SetContained( 'A', 'M' );
00608         SetContained( 'A', 'D' );
00609         SetContained( 'A', 'V' );
00610         SetContained( 'A', 'H' );
00611         SetContained( 'A', 'B' );
00612         SetContained( 'A', 'X' );
00613         SetContained( 'c', 's' );
00614         SetContained( 'c', 'm' );
00615         SetContained( 'c', 'y' );
00616         SetContained( 'c', 'v' );
00617         SetContained( 'c', 'b' );
00618         SetContained( 'c', 'h' );
00619         SetContained( 'c', 'x' );
00620         SetContained( 'C', 'S' );
00621         SetContained( 'C', 'M' );
00622         SetContained( 'C', 'Y' );
00623         SetContained( 'C', 'V' );
00624         SetContained( 'C', 'B' );
00625         SetContained( 'C', 'H' );
00626         SetContained( 'C', 'X' );
00627         SetContained( 'u', 'k' );
00628         SetContained( 'u', 'w' );
00629         SetContained( 'u', 'y' );
00630         SetContained( 'u', 'd' );
00631         SetContained( 'u', 'b' );
00632         SetContained( 'u', 'h' );
00633         SetContained( 'u', 'x' );
00634         SetContained( 'U', 'K' );
00635         SetContained( 'U', 'W' );
00636         SetContained( 'U', 'Y' );
00637         SetContained( 'U', 'D' );
00638         SetContained( 'U', 'B' );
00639         SetContained( 'U', 'H' );
00640         SetContained( 'U', 'X' );
00641 
00642         SetContained( 'r', 'x' );
00643         SetContained( 'y', 'x' );
00644         SetContained( 'w', 'x' );
00645         SetContained( 's', 'x' );
00646         SetContained( 'k', 'x' );
00647         SetContained( 'm', 'x' );
00648         SetContained( 'b', 'x' );
00649         SetContained( 'd', 'x' );
00650         SetContained( 'h', 'x' );
00651         SetContained( 'v', 'x' );
00652         SetContained( 'n', 'x' );
00653 
00654         SetContained( 'R', 'X' );
00655         SetContained( 'Y', 'X' );
00656         SetContained( 'W', 'X' );
00657         SetContained( 'S', 'X' );
00658         SetContained( 'K', 'X' );
00659         SetContained( 'M', 'X' );
00660         SetContained( 'B', 'X' );
00661         SetContained( 'D', 'X' );
00662         SetContained( 'H', 'X' );
00663         SetContained( 'V', 'X' );
00664         SetContained( 'N', 'X' );
00665 
00666         SetContained( 'k', 'd' );
00667         SetContained( 'k', 'b' );
00668         SetContained( 'r', 'd' );
00669         SetContained( 'r', 'v' );
00670         SetContained( 's', 'v' );
00671         SetContained( 's', 'b' );
00672         SetContained( 'm', 'v' );
00673         SetContained( 'm', 'h' );
00674         SetContained( 'w', 'd' );
00675         SetContained( 'w', 'h' );
00676         SetContained( 'y', 'b' );
00677         SetContained( 'y', 'h' );
00678 
00679         SetContained( 'K', 'D' );
00680         SetContained( 'K', 'B' );
00681         SetContained( 'R', 'D' );
00682         SetContained( 'R', 'V' );
00683         SetContained( 'S', 'V' );
00684         SetContained( 'S', 'B' );
00685         SetContained( 'M', 'V' );
00686         SetContained( 'M', 'H' );
00687         SetContained( 'W', 'D' );
00688         SetContained( 'W', 'H' );
00689         SetContained( 'Y', 'B' );
00690         SetContained( 'Y', 'H' );
00691 }

Generated on Mon Mar 28 06:00:21 2005 for libGenome by doxygen 1.3.6