【发布时间】:2018-12-11 02:01:38
【问题描述】:
我正在处理一些基因数据,但我的一个专栏不是我想要的格式。我不知道这里讨论了多少生物学,但我正在尝试修复我的氨基酸在数据中的显示方式。
氨基酸显然有名称,但它们也有 3 个字母的缩写和 1 个字母的缩写。我的数据包含 3 个字母形式的氨基酸,但我想将它们更改为 1 个字母的缩写。这是我的数据示例。
chr location effect impact AA_change
1 12543 missense_variant MODERATE p.Ala12Val
1 52367 missense_variant MODERATE p.Leu54Pro
1 752347 missense_variant MODERATE p.Met99Ser
1 984645 missense_variant MODERATE p.Lys34Ile
1 989845 missense_variant MODERATE p.Arg4Cys
1 999854 missense_variant MODERATE p.His43Gly
1 999855 missense_variant MODERATE p.Glu14Phe
dat <- structure(list(chr = c(1L, 1L, 1L, 1L, 1L, 1L, 1L), location = c(12543L,
52367L, 752347L, 984645L, 989845L, 999854L, 999855L), effect = c("missense_variant",
"missense_variant", "missense_variant", "missense_variant", "missense_variant",
"missense_variant", "missense_variant"), impact = c("MODERATE",
"MODERATE", "MODERATE", "MODERATE", "MODERATE", "MODERATE", "MODERATE"
), AA_change = c("Ala12Val", "Leu54Pro", "Met99Ser", "Lys34Ile",
"Arg4Cys", "His43Gly", "Glu14Phe")), .Names = c("chr", "location",
"effect", "impact", "AA_change"), row.names = c(NA, -7L), class = "data.frame")
这里列出了 3 个字母的氨基酸及其更好的缩写。
Ala == A
Arg == R
Asn == N
Asp == D
Cys == C
Glu == E
Gln == Q
Gly == G
His == H
Ile == I
Leu == L
Lys == K
Met == M
Phe == F
Pro == P
Ser == S
Thr == T
Trp == W
Tyr == Y
Val == V
我觉得有一个简单的功能可以做到这一点,但我正在努力解决如何做到这一点。我习惯于只更改一列的一部分,而不是一次更改两件事。所以我要问的是如何改变这个
Ala12Val
Leu54Pro
Met99Ser
Lys34Ile
Arg4Cys
His43Gly
Glu14Phe
到这里
A12V
L54P
M99S
K32I
R4C
E14F
这是可以做到的吗?
【问题讨论】:
-
是否总是采用“3 个字母,一些数字,3 个字母”的格式?
-
如果格式是固定的(根据 zx 的查询),您可以拆分 col 并匹配/合并以进行更新。如果它不固定,你可以使用正则表达式:stackoverflow.com/q/6954017
-
@zx8754 没错。它总是 3 个字母,一些数字,然后又是 3 个字母
标签: r regex bioinformatics genetics