Home > Net >  Substitute string sequences for BLOSUM62 values in R
Substitute string sequences for BLOSUM62 values in R

Time:03-28

I have a df with several peptide sequences. For each sequence, I need to replace each AA for the BLOSUM62 values stored in another matrix.

|Sequences|
|:--------|
|KIFREIIHL|
|LALTYRGLI|
|DIKGLIVYR|
|...      |

**BLOSUM62 matrix**

       A       R       N       D       C       Q       E       G       H       I       L       K       M       F       P       S       T       W       Y       V
A 0.29015 0.03104 0.02564 0.02969 0.02159 0.02564 0.04049 0.07827 0.01484 0.04318 0.05938 0.04453 0.01754 0.02159 0.02969 0.08502 0.04993 0.00540 0.01754 0.06883
R 0.04457 0.34496 0.03876 0.03101 0.00775 0.04845 0.05233 0.03295 0.02326 0.02326 0.04651 0.12016 0.01550 0.01744 0.01938 0.04457 0.03488 0.00581 0.01744 0.03101
N 0.04270 0.04494 0.31685 0.08315 0.00899 0.03371 0.04944 0.06517 0.03146 0.02247 0.03146 0.05393 0.01124 0.01798 0.02022 0.06966 0.04944 0.00449 0.01573 0.02697
D 0.04104 0.02985 0.06903 0.39739 0.00746 0.02985 0.09142 0.04664 0.01866 0.02239 0.02799 0.04478 0.00933 0.01493 0.02239 0.05224 0.03545 0.00373 0.01119 0.02425
C 0.06504 0.01626 0.01626 0.01626 0.48374 0.01220 0.01626 0.03252 0.00813 0.04472 0.06504 0.02033 0.01626 0.02033 0.01626 0.04065 0.03659 0.00407 0.01220 0.05691
Q 0.05588 0.07353 0.04412 0.04706 0.00882 0.21471 0.10294 0.04118 0.02941 0.02647 0.04706 0.09118 0.02059 0.01471 0.02353 0.05588 0.04118 0.00588 0.02059 0.03529
E 0.05525 0.04972 0.04052 0.09024 0.00737 0.06446 0.29650 0.03499 0.02578 0.02210 0.03683 0.07551 0.01289 0.01657 0.02578 0.05525 0.03683 0.00552 0.01657 0.03131
G 0.07827 0.02294 0.03914 0.03374 0.01080 0.01889 0.02564 0.51012 0.01350 0.01889 0.02834 0.03374 0.00945 0.01619 0.01889 0.05128 0.02969 0.00540 0.01080 0.02429
H 0.04198 0.04580 0.05344 0.03817 0.00763 0.03817 0.05344 0.03817 0.35496 0.02290 0.03817 0.04580 0.01527 0.03053 0.01908 0.04198 0.02672 0.00763 0.05725 0.02290
I 0.04713 0.01767 0.01473 0.01767 0.01620 0.01325 0.01767 0.02062 0.00884 0.27099 0.16789 0.02356 0.03682 0.04418 0.01473 0.02504 0.03976 0.00589 0.02062 0.17673
L 0.04453 0.02429 0.01417 0.01518 0.01619 0.01619 0.02024 0.02126 0.01012 0.11538 0.37551 0.02530 0.04960 0.05466 0.01417 0.02429 0.03340 0.00709 0.02227 0.09615
K 0.05699 0.10708 0.04145 0.04145 0.00864 0.05354 0.07081 0.04318 0.02073 0.02763 0.04318 0.27807 0.01554 0.01554 0.02763 0.05354 0.03972 0.00518 0.01727 0.03282
M 0.05221 0.03213 0.02008 0.02008 0.01606 0.02811 0.02811 0.02811 0.01606 0.10040 0.19679 0.03614 0.16064 0.04819 0.01606 0.03614 0.04016 0.00803 0.02410 0.09237
F 0.03383 0.01903 0.01691 0.01691 0.01057 0.01057 0.01903 0.02537 0.01691 0.06342 0.11416 0.01903 0.02537 0.38689 0.01057 0.02537 0.02537 0.01691 0.08879 0.05497
P 0.05685 0.02584 0.02326 0.03101 0.01034 0.02067 0.03618 0.03618 0.01292 0.02584 0.03618 0.04134 0.01034 0.01292 0.49354 0.04393 0.03618 0.00258 0.01292 0.03101
S 0.10995 0.04014 0.05410 0.04887 0.01745 0.03316 0.05236 0.06632 0.01920 0.02967 0.04188 0.05410 0.01571 0.02094 0.02967 0.21990 0.08202 0.00524 0.01745 0.04188
T 0.07298 0.03550 0.04339 0.03748 0.01775 0.02761 0.03945 0.04339 0.01381 0.05325 0.06509 0.04536 0.01972 0.02367 0.02761 0.09270 0.24655 0.00592 0.01775 0.07101
W 0.03030 0.02273 0.01515 0.01515 0.00758 0.01515 0.02273 0.03030 0.01515 0.03030 0.05303 0.02273 0.01515 0.06061 0.00758 0.02273 0.02273 0.49242 0.06818 0.03030
Y 0.04050 0.02804 0.02181 0.01869 0.00935 0.02181 0.02804 0.02492 0.04673 0.04361 0.06854 0.03115 0.01869 0.13084 0.01558 0.03115 0.02804 0.02804 0.31776 0.04673
V 0.06996 0.02195 0.01646 0.01783 0.01920 0.01646 0.02332 0.02469 0.00823 0.16461 0.13032 0.02606 0.03155 0.03567 0.01646 0.03292 0.04938 0.00549 0.02058 0.26886

**Resulting output for first sequence (KIFREIIHL):**

0,05699 0,10708 0,04145 0,04145 0,00864 0,05354 0,07081 0,04318 0,02073 0,02763 0,04318 0,27807 0,01554 0,01554 0,02763 0,05354 0,03972 0,00518 0,01727 0,03282 0,04713 0,01767 0,01473 0,01767 0,0162  0,01325 0,01767 0,02062 0,00884 0,27099 0,16789 0,02356 0,03682 0,04418 0,01473 0,02504 0,03976 0,00589 0,02062 0,17673 0,03383 0,01903 0,01691 0,01691 0,01057 0,01057 0,01903 0,02537 0,01691 0,06342 0,11416 0,01903 0,02537 0,38689 0,01057 0,02537 0,02537 0,01691 0,08879 0,05497 0,04457 0,34496 0,03876 0,03101 0,00775 0,04845 0,05233 0,03295 0,02326 0,02326 0,04651 0,12016 0,0155  0,01744 0,01938 0,04457 0,03488 0,00581 0,01744 0,03101 0,05525 0,04972 0,04052 0,09024 0,00737 0,06446 0,2965  0,03499 0,02578 0,0221  0,03683 0,07551 0,01289 0,01657 0,02578 0,05525 0,03683 0,00552 0,01657 0,03131 0,04713 0,01767 0,01473 0,01767 0,0162  0,01325 0,01767 0,02062 0,00884 0,27099 0,16789 0,02356 0,03682 0,04418 0,01473 0,02504 0,03976 0,00589 0,02062 0,17673 0,04713 0,01767 0,01473 0,01767 0,0162  0,01325 0,01767 0,02062 0,00884 0,27099 0,16789 0,02356 0,03682 0,04418 0,01473 0,02504 0,03976 0,00589 0,02062 0,17673 0,04198 0,0458  0,05344 0,03817 0,00763 0,03817 0,05344 0,03817 0,35496 0,0229  0,03817 0,0458  0,01527 0,03053 0,01908 0,04198 0,02672 0,00763 0,05725 0,0229  0,04453 0,02429 0,01417 0,01518 0,01619 0,01619 0,02024 0,02126 0,01012 0,11538 0,37551 0,0253  0,0496  0,05466 0,01417 0,02429 0,0334  0,00709 0,02227 0,09615

How can I create a function in R that replaces each AA for the corresponding values in the matrix?

Many thanks

CodePudding user response:

assuming sequences is the vector and blosum_matrix the name of the matrix:

# split each sequence to individual letters
sequences_split <- strsplit(sequences, "")

# initialise list to hold all blosum values
blo_values <- vector("list", length(sequences))

for(i in seq_along(sequences_split)){
    blo_value[[i]] <- unlist(lapply(sequences_split[[i]], function(x) blosum_matrix[x, ]))
}
  • Related