gpt4 book ai didi

R - 从例如转换一串重复氨基酸NNNN 到 (N4)

转载 作者:行者123 更新时间:2023-12-04 05:22:39 24 4
gpt4 key购买 nike

我正在从多个序列比对中计算单倍型,并且正在获得重复序列,例如 RNNNNNNNT 和 RNNNT。有许多变体,因此很难理解数据。

数据如下所列,我是否有兴趣生成列 单倍型_2 基于 单倍型_1 如..所示:

hap_code    haplotypes_1          haplotypes_2
1 SKNNNRNNNNNKNNNNNNNKF SK(N3)R(N5)K(N7)KF
2 SKNNNNNNNNNKNNNNNNNNKF SK(N9)K(N8)KF
3 SKNNNNNNNNNNNNNNNNKF SK(N16)KF

最佳答案

几乎与@d.b 完全相同,但转换为几个函数,因此可重用且易于阅读:

abbreviate_letters <- function(type_letters) {
runs <- rle(type_letters)
run_codes <- ifelse(
runs[["lengths"]] == 1,
yes = runs[["values"]],
no = paste0("(", runs[["values"]], runs[["lengths"]], ")")
)
paste0(run_codes, collapse = "")
}


condense_haplotype <- function(haplotype_long) {
split_terms <- strsplit(haplotype_long, split = "")
vapply(
X = split_terms,
FUN = abbreviate_letters,
FUN.VALUE = character(1)
)
}


haplotypes <- c(
"SKNNNRNNNNNKNNNNNNNKF",
"SKNNNNNNNNNKNNNNNNNNKF",
"SKNNNNNNNNNNNNNNNNKF"
)

condense_haplotype(haplotypes)
# [1] "SK(N3)R(N5)K(N7)KF" "SK(N9)K(N8)KF" "SK(N16)KF"

关于R - 从例如转换一串重复氨基酸NNNN 到 (N4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47518132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com