------------3D851EE179FC590 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello there, first of all: sorry! i had some rather unpleasant real life stuff to attend to, thats why i didnt write anything within a week. Thursday, May 8, 2003, 9:17:22 PM, you wrote: SG> Write a function that returns the SCORE based on the ff. matrix SG> for example: SG> string A = "S E R G E" SG> string B = "F R A N K" SG> -2 0 -1 0 1 = -2 => FINAL SCORE SG>[...] D'oh! misunderstood the problem at first, this should be quite easy.. SG> Or you could use associative keys, e.g. SG> ( A => ( (A, 4), (R, -1), ... ) ) Did that since its easier for any function to access the values just by doing matrix["A"]["Q"], then looking up indexes first. SG> Of course, the next step is a function that handles strings of SG> unequal length, but we'll get to that later. and alignment i guess. ill read myself through the website myabe i can figure out some stuff ;) attached is a bit of code that returns the score based on a matrix. i finished 2 matrices (blosum62 and PAM250) from the site you referred to. but didnt check them for errors, yet. -- Best regards, frank mailto:asseg@ukl.uni-freiburg.de ------------3D851EE179FC590 Content-Type: application/octet-stream; name="matrices.inc.php" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="matrices.inc.php" PD9waHANCi8vIERvbnQgZXZlbiBhc2suIGkga25vdyBpdHMgdWdseSwgaXMgdGhlcmUgc29tZSBr aW5kIG9mIGFsZ29yaXRobSAob3RoZXIgdGhhbiByZWFkIGZyb20gZmlsZTspIHRvIGZpbGwgdGhp cyBhcnJheSBwbGVhc2UgbGV0IG1lIGtub3cuDQokbWF0cml4X0JMT1NVTTYyPWFycmF5KCJuYW1l IiA9PiAiQkxPU1VNIDYyIiwNCgkJCQkJICAgImluZGV4IiA9PiAiQVJORENRRUdISUxLTUZQU1RX WVYiLAkvLyBhbiBpbmRleCwgdGhhdCBpcyB1c2VkIGxhdGVyIHRvIGRldGVybWluZSB3ZXRoZXIg d2UgaGF2ZSB0byBzd2l0Y2ggaW5kaXplcw0KCQkJCQkgICAiQSIgPT4gYXJyYXkoIkEiPT40LCJS Ij0+LTEsIk4iPT4tMiwiRCI9Pi0yLCJDIj0+MCwiUSI9Pi0xLCJFIj0+LTEsIkciPT4wLCJIIj0+ LTIsIkkiPT4tMSwiTCI9Pi0xLCJLIj0+LTEsIk0iPT4tMSwiRiI9Pi0yLCJQIj0+LTEsIlMiPT4x LCJUIj0+MCwiVyI9Pi0zLCJZIj0+LTIsIlYiPT4wKSwNCgkJCQkJICAgIlIiID0+IGFycmF5KCJS Ij0+NSwiTiI9PjAsIkQiPT4tMiwiQyI9Pi0zLCJRIj0+MSwiRSI9PjAsIkciPT4tMiwiSCI9PjAs IkkiPT4tMywiTCI9Pi0yLCJLIj0+MiwiTSI9Pi0xLCJGIj0+LTMsIlAiPT4tMiwiUyI9PjEsIlQi PT4tMSwiVyI9Pi0zLCJZIj0+LTIsIlYiPT4wKSwNCgkJCQkJICAgIk4iID0+IGFycmF5KCJOIj0+ NiwiRCI9PjEsIkMiPT4tMywiUSI9PjAsIkUiPT4wLCJHIj0+MCwiSCI9PjEsIkkiPT4tMywiTCI9 Pi0zLCJLIj0+MCwiTSI9Pi0yLCJGIj0+LTMsIlAiPT4tMiwiUyI9PjEsIlQiPT4wLCJXIj0+LTQs IlkiPT4tMiwiViI9Pi0zKSwNCgkJCQkJICAgIkQiID0+IGFycmF5KCJEIj0+NiwiQyI9Pi0zLCJR Ij0+MCwiRSI9PjIsIkciPT4tMSwiSCI9Pi0xLCJJIj0+LTMsIkwiPT4tNCwiSyI9Pi0xLCJNIj0+ LTMsIkYiPT4tMywiUCI9Pi0xLCJTIj0+MCwiVCI9Pi0xLCJXIj0+LTQsIlkiPT4tMywiViI9Pi0z KSwNCgkJCQkJICAgIkMiID0+IGFycmF5KCJDIj0+OSwiUSI9Pi0zLCJFIj0+LTQsIkciPT4tMywi SCI9Pi0zLCJJIj0+LTEsIkwiPT4tMSwiSyI9Pi0zLCJNIj0+LTEsIkYiPT4tMiwiUCI9Pi0zLCJT Ij0+LTEsIlQiPT4tMSwiVyI9Pi0yLCJZIj0+LTIsIlYiPT4tMSksDQoJCQkJCSAgICJRIiA9PiBh cnJheSgiUSI9PjUsIkUiPT4yLCJHIj0+LTIsIkgiPT4wLCJJIj0+LTMsIkwiPT4tMiwiSyI9PjEs Ik0iPT4wLCJGIj0+LTMsIlAiPT4tMSwiUyI9PjAsIlQiPT4tMSwiVyI9Pi0yLCJZIj0+LTEsIlYi PT4tMiksDQoJCQkJCSAgICJFIiA9PiBhcnJheSgiRSI9PjUsIkciPT4tMiwiSCI9PjAsIkkiPT4t MywiTCI9Pi0zLCJLIj0+MSwiTSI9Pi0yLCJGIj0+LTMsIlAiPT4tMSwiUyI9PjAsIlQiPT4tMSwi VyI9Pi0zLCJZIj0+LTIsIlYiPT4tMiksDQoJCQkJCSAgICJHIiA9PiBhcnJheSgiRyI9PjYsIkgi PT4tMiwiSSI9Pi00LCJMIj0+LTQsIksiPT4tMiwiTSI9Pi0zLCJGIj0+LTMsIlAiPT4tMiwiUyI9 PjAsIlQiPT4tMiwiVyI9Pi0yLCJZIj0+LTMsIlYiPT4tMyksDQoJCQkJCSAgICJIIiA9PiBhcnJh eSgiSCI9PjgsIkkiPT4tMywiTCI9Pi0zLCJLIj0+LTEsIk0iPT4tMiwiRiI9Pi0xLCJQIj0+LTIs IlMiPT4tMSwiVCI9Pi0yLCJXIj0+LTIsIlkiPT4yLCJWIj0+LTMpLA0KCQkJCQkgICAiSSIgPT4g YXJyYXkoIkkiPT40LCJMIj0+MiwiSyI9Pi0zLCJNIj0+MSwiRiI9PjAsIlAiPT4tMywiUyI9Pi0y LCJUIj0+LTEsIlciPT4tMywiWSI9Pi0xLCJWIj0+LTMpLA0KCQkJCQkgICAiTCIgPT4gYXJyYXko IkwiPT40LCJLIj0+LTIsIk0iPT4yLCJGIj0+MCwiUCI9Pi0zLCJTIj0+LTIsIlQiPT4tMSwiVyI9 Pi0yLCJZIj0+LTEsIlYiPT4xKSwNCgkJCQkJICAgIksiID0+IGFycmF5KCJLIj0+NSwiTSI9Pi0x LCJGIj0+LTMsIlAiPT4tMSwiUyI9PjAsIlQiPT4tMSwiVyI9Pi0zLCJZIj0+LTIsIlYiPT4tMiks DQoJCQkJCSAgICJNIiA9PiBhcnJheSgiTSI9PjUsIkYiPT4wLCJQIj0+LTIsIlMiPT4tMSwiVCI9 Pi0xLCJXIj0+LTEsIlkiPT4tMSwiViI9PjEpLA0KCQkJCQkgICAiRiIgPT4gYXJyYXkoIkYiPT42 LCJQIj0+LTQsIlMiPT4tMiwiVCI9Pi0yLCJXIj0+MSwiWSI9PjMsIlYiPT4tMSksDQoJCQkJCSAg ICJQIiA9PiBhcnJheSgiUCI9PjcsIlMiPT4tMSwiVCI9Pi0xLCJXIj0+LTQsIlkiPT4tMywiViI9 Pi0yKSwNCgkJCQkJICAgIlMiID0+IGFycmF5KCJTIj0+NCwiVCI9PjEsIlciPT4tMywiWSI9Pi0y LCJWIj0+LTIpLA0KCQkJCQkgICAiVCIgPT4gYXJyYXkoIlQiPT41LCJXIj0+LTIsIlkiPT4tMiwi ViI9PjApLA0KCQkJCQkgICAiVyIgPT4gYXJyYXkoIlciPT4xMSwiWSI9PjIsIlYiPT4tMyksDQoJ CQkJCSAgICJZIiA9PiBhcnJheSgiWSI9PjcsIlYiPT4tMSksDQoJCQkJCSAgICJWIiA9PiBhcnJh eSgiViI9PjQpDQoJCQkJCSAgKTsNCg0KJG1hdHJpeF9QQU0yNTAgPSBhcnJheSgibmFtZSIgPT4g IlBBTSAyNTAiLA0KCQkJCQkgICAiaW5kZXgiID0+ICJBUk5EQ1FFR0hJTEtNRlBTVFdZViIsCS8v IGFuIGluZGV4LCB0aGF0IGlzIHVzZWQgbGF0ZXIgdG8gZGV0ZXJtaW5lIHdldGhlciB3ZSBoYXZl IHRvIHN3aXRjaCBpbmRpemVzDQoJCQkJCSAgICJBIiA9PiBhcnJheSgiQSI9PjIsIlIiPT4tMiwi TiI9PjAsIkQiPT4wLCJDIj0+LTIsIlEiPT4wLCJFIj0+MCwiRyI9PjEsIkgiPT4tMSwiSSI9Pi0x LCJMIj0+LTIsIksiPT4tMSwiTSI9Pi0xLCJGIj0+LTQsIlAiPT4xLCJTIj0+MSwiVCI9PjEsIlci PT4tNiwiWSI9Pi0zLCJWIj0+MCksDQoJCQkJCSAgICJSIiA9PiBhcnJheSgiUiI9PjYsIk4iPT4w LCJEIj0+LTEsIkMiPT4tNCwiUSI9PjEsIkUiPT4tMSwiRyI9Pi0zLCJIIj0+MiwiSSI9Pi0yLCJM Ij0+LTMsIksiPT4zLCJNIj0+MCwiRiI9Pi00LCJQIj0+MCwiUyI9PjAsIlQiPT4tMSwiVyI9PjIs IlkiPT4tNCwiViI9Pi0yKSwNCgkJCQkJICAgIk4iID0+IGFycmF5KCJOIj0+MiwiRCI9PjIsIkMi PT4tNCwiUSI9PjEsIkUiPT4xLCJHIj0+MCwiSCI9PjIsIkkiPT4tMiwiTCI9Pi0zLCJLIj0+MSwi TSI9Pi0yLCJGIj0+LTQsIlAiPT4tMSwiUyI9PjEsIlQiPT4wLCJXIj0+LTQsIlkiPT4tMiwiViI9 Pi0yKSwNCgkJCQkJICAgIkQiID0+IGFycmF5KCJEIj0+NCwiQyI9Pi01LCJRIj0+MiwiRSI9PjMs IkciPT4xLCJIIj0+MSwiSSI9Pi0yLCJMIj0+LTQsIksiPT4wLCJNIj0+LTMsIkYiPT4tNiwiUCI9 Pi0xLCJTIj0+MCwiVCI9PjAsIlciPT4tNywiWSI9Pi00LCJWIj0+LTIpLA0KCQkJCQkgICAiQyIg PT4gYXJyYXkoIkMiPT40LCJRIj0+LTUsIkUiPT4tNSwiRyI9Pi0zLCJIIj0+LTMsIkkiPT4tMiwi TCI9Pi02LCJLIj0+LTUsIk0iPT4tNSwiRiI9Pi00LCJQIj0+LTMsIlMiPT4wLCJUIj0+LTIsIlci PT4tOCwiWSI9PjAsIlYiPT4tMiksDQoJCQkJCSAgICJRIiA9PiBhcnJheSgiUSI9PjQsIkUiPT4y LCJHIj0+LTEsIkgiPT4zLCJJIj0+LTIsIkwiPT4tMiwiSyI9PjEsIk0iPT4tMSwiRiI9Pi01LCJQ Ij0+MCwiUyI9Pi0xLCJUIj0+LTEsIlciPT4tNSwiWSI9Pi00LCJWIj0+LTIpLA0KCQkJCQkgICAi RSIgPT4gYXJyYXkoIkUiPT40LCJHIj0+MCwiSCI9PjEsIkkiPT4tMiwiTCI9Pi0zLCJLIj0+MCwi TSI9Pi0yLCJGIj0+LTUsIlAiPT4tMSwiUyI9PjAsIlQiPT4wLCJXIj0+LTcsIlkiPT4tNCwiViI9 Pi0yKSwNCgkJCQkJICAgIkciID0+IGFycmF5KCJHIj0+NSwiSCI9Pi0yLCJJIj0+LTMsIkwiPT4t NCwiSyI9Pi0yLCJNIj0+LTMsIkYiPT4tNSwiUCI9Pi0xLCJTIj0+MSwiVCI9PjAsIlciPT4tNywi WSI9Pi01LCJWIj0+LTEpLA0KCQkJCQkgICAiSCIgPT4gYXJyYXkoIkgiPT42LCJJIj0+LTIsIkwi PT4tMiwiSyI9PjAsIk0iPT4tMiwiRiI9Pi0yLCJQIj0+MCwiUyI9Pi0xLCJUIj0+LTEsIlciPT4t MywiWSI9PjAsIlYiPT4tMiksDQoJCQkJCSAgICJJIiA9PiBhcnJheSgiSSI9PjUsIkwiPT4yLCJL Ij0+LTIsIk0iPT4yLCJGIj0+MSwiUCI9Pi0yLCJTIj0+LTEsIlQiPT4wLCJXIj0+LTUsIlkiPT4t MSwiViI9Pi00KSwNCgkJCQkJICAgIkwiID0+IGFycmF5KCJMIj0+NiwiSyI9Pi0zLCJNIj0+NCwi RiI9PjIsIlAiPT4tMywiUyI9Pi0zLCJUIj0+LTIsIlciPT4tMiwiWSI9Pi0xLCJWIj0+MiksDQoJ CQkJCSAgICJLIiA9PiBhcnJheSgiSyI9PjUsIk0iPT4wLCJGIj0+LTUsIlAiPT4tMSwiUyI9PjAs IlQiPT4wLCJXIj0+LTMsIlkiPT4tNCwiViI9Pi0yKSwNCgkJCQkJICAgIk0iID0+IGFycmF5KCJN Ij0+NiwiRiI9PjAsIlAiPT4tMiwiUyI9Pi0yLCJUIj0+LTEsIlciPT4tNCwiWSI9Pi0yLCJWIj0+ MiksDQoJCQkJCSAgICJGIiA9PiBhcnJheSgiRiI9PjksIlAiPT4tNSwiUyI9Pi0zLCJUIj0+LTIs IlciPT4wLCJZIj0+NywiViI9PjEpLA0KCQkJCQkgICAiUCIgPT4gYXJyYXkoIlAiPT42LCJTIj0+ MSwiVCI9PjAsIlciPT4tNiwiWSI9Pi01LCJWIj0+LTEpLA0KCQkJCQkgICAiUyIgPT4gYXJyYXko IlMiPT4zLCJUIj0+MSwiVyI9Pi0yLCJZIj0+LTMsIlYiPT4tMSksDQoJCQkJCSAgICJUIiA9PiBh cnJheSgiVCI9PjMsIlciPT4tNSwiWSI9Pi0zLCJWIj0+MCksDQoJCQkJCSAgICJXIiA9PiBhcnJh eSgiVyI9PjE3LCJZIj0+MCwiViI9Pi02KSwNCgkJCQkJICAgIlkiID0+IGFycmF5KCJZIj0+MTAs IlYiPT4tMiksDQoJCQkJCSAgICJWIiA9PiBhcnJheSgiViI9PjQpDQoJCQkJCSAgKTsNCg0KLyoN CiogcHJpbnRfMmRtYXRyaXgoJG1hdHJpeCk6IG91dHB1dHMgdGhlIDJkIG1hdHJpeCBzdXBwbGll ZCBpbiAkbWF0cml4LCBmb3IgZXJyb3JzZWFyY2hpbmcgcHVycG9zZXMgOykNCiovDQpmdW5jdGlv biBwcmludF8yZG1hdHJpeCgkbWF0cml4KSB7DQoJZm9yZWFjaCAoJG1hdHJpeCBhcyAkbGVmdF9p bmRleD0+JHZhbHVlKSB7DQoJCWlmIChpc19hcnJheSgkbWF0cml4WyRsZWZ0X2luZGV4XSkpIHsN CgkJCWZvcmVhY2ggKCRtYXRyaXhbJGxlZnRfaW5kZXhdIGFzICRyaWdodF9pbmRleD0+JHZhbHVl KXsNCgkJCQlwcmludGYoIiU1ZCIsICRtYXRyaXhbJGxlZnRfaW5kZXhdWyRyaWdodF9pbmRleF0p Ow0KCQkJfQ0KCQl9ZWxzZXsNCgkJCWVjaG8gIiRsZWZ0X2luZGV4PSRtYXRyaXhbJGxlZnRfaW5k ZXhdIjsNCgkJfQ0KCQllY2hvICJcbiI7DQoJfQ0KfQ0KDQovKg0KKiBjaGVja19wcygkcHMsJG1h dHJpeCk6IGNoZWNrcyBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc2VxdWVuY2UgJHBzIGFyZSBp biB0aGUgaW5kZXggb2YgdGhlIG1hdHJpeCAkbWF0cml4IGFuZCByZXR1cm4gZmFsc2Ugd2hlbiAN CiogCQkJCQkJIGFuIG5vbi1zZW5zZSBjaGFyIGlzIGZvdW5kDQoqLw0KZnVuY3Rpb24gY2hlY2tf cHMoJHBzLCRtYXRyaXgpIHsJCQkJCQkJCQkJCQkJCQkNCglmb3IgKCRpPTA7JGk8c3RybGVuKCRw cyk7JGkrKykgew0KCQlpZiAoKCFzdHJwb3MoJG1hdHJpeFsiaW5kZXgiXSwkcHNbJGldKSkgJiYg KCRtYXRyaXhbImluZGV4Il1bMF0hPSRwc1skaV0pKSB7IAkJLy90aGlzIHN1Y2tzISBzdHJwb3Mg cmV0dXJucyAwPWZhbHNlIGlmIHRoZSBoaXQgaXMgdGhlIGZpcnN0IGNoYXIgb2YgdGhlIGluZGV4 DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgl9DQoJcmV0dXJuIHRydWU7DQp9DQoNCi8qDQoqIGdl dF9wc19zY29yZSgkc3RyaW5nMSwkc3RyaW5nMiwkbWF0cml4KTogcmV0dXJucyB0aGUgc3VtIG9m IGVhY2ggY2hhciBpbiBzdHJpbmcxIGNvbXBhcmVkIHRvIHRoZSBjb3JyZXNwb25kZW50IGNoYXIg aW4gc3RyaW5nMiB1c2luZw0KKiAJCQkJCQkJCQkJICAgdGhlIHNjb3JpbmcgbWF0cml4ICRtYXRy aXguIElmIHN0cmxlbigkc3RyaW5nMSkhPXN0cmxlbigkc3RyaW5nMiksIHRoZSBzbWFsbGVyIG9u ZSBpcyB0aGUgaXRlcmF0aW9ubGltaXRlci4NCiovDQpmdW5jdGlvbiBnZXRfcHNfc2NvcmUoJHN0 cmluZzEsJHN0cmluZzIsJG1hdHJpeCkgewkNCgkkcmVzdWx0PTA7DQoJaWYgKCghY2hlY2tfcHMo JHN0cmluZzEsJG1hdHJpeCkpIHx8ICghY2hlY2tfcHMoJHN0cmluZzIsJG1hdHJpeCkpKSB7DQoJ CWRpZSgiU29tZXRoaW5nIGFpbnQgcmlnaHQhLiBXZXRoZXIgdGhlIHN0cmluZ3Mgc3VwcGxpZWQg dG8gZ2V0X3BzX3Njb3JlKCkgaGF2ZSBzb21lIG5vbi1zZW5zZSBjaGFyYWN0ZXJzIGluIGl0LCBv ciB0aGUgc3VwcGxpZWQgbWF0cml4IHN1Y2tzIVxuIik7DQoJCX0NCglmb3IgKCRpPTA7JGk8bWlu KHN0cmxlbigkc3RyaW5nMSksc3RybGVuKCRzdHJpbmcyKSk7JGkrKykgew0KCQlpZiAoc3RycG9z KCRtYXRyaXhbImluZGV4Il0sJHN0cmluZzFbJGldKSA8IHN0cnBvcygkbWF0cml4WyJpbmRleCJd LCRzdHJpbmcyWyRpXSkpIHsNCgkJCSRyZXN1bHQrPSRtYXRyaXhbJHN0cmluZzFbJGldXVskc3Ry aW5nMlskaV1dOw0KCQl9ZWxzZXsNCgkJCSRyZXN1bHQrPSRtYXRyaXhbJHN0cmluZzJbJGldXVsk c3RyaW5nMVskaV1dOw0KCQl9DQoJfQ0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KDQo/Pg== ------------3D851EE179FC590 Content-Type: application/octet-stream; name="test_get_score.php" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test_get_score.php" PD9waHANCmluY2x1ZGUoIm1hdHJpY2VzLmluYy5waHAiKTsNCg0KZWNobyAiQkxPU1VNIDYyOiAi LmdldF9wc19zY29yZSgiU0VSR0UiLCJGUkFOSyIsJG1hdHJpeF9CTE9TVU02MikuIlxuIjsNCmVj aG8gIlBBTTI1MDogIi5nZXRfcHNfc2NvcmUoIlNFUkdFIiwiRlJBTksiLCRtYXRyaXhfUEFNMjUw KS4iXG4iOw0KLy9VbmNvbW1lbnQgdGhpcyBjYWxscyB0byByZWNlaXZlIGFuIG91dHB1dCBvZiB0 aGUgdXNlZCBtYXRyaWNlcw0KLyoNCnByaW50XzJkbWF0cml4KCRtYXRyaXhfQkxPU1VNNjIpOyAg DQpwcmludF8yZG1hdHJpeCgkbWF0cml4X1BBTTI1MCk7DQoqLw0KDQo/Pg== ------------3D851EE179FC590--