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