[Biophp-dev] [Biophp-dev]matrices scores (was:Re: levenshtein distance)

biophp-dev@bioinformatics.org biophp-dev@bioinformatics.org
Sun, 18 May 2003 19:15:32 +0200


------------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--