You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何改进R函数以按规则生成氨基酸序列的所有合法替换组合?

解决方案

首先定义精准的氨基酸替换映射表,每个氨基酸对应其所有合法的可选替换(包含自身,以保留原始字符串组合):

# 氨基酸替换规则映射表
aa_replace <- list(
  V = c("V", "L", "A"),
  L = c("L", "V", "A"),
  A = c("A", "V", "L"),
  S = c("S", "T"),
  T = c("T", "S"),
  C = c("C", "M"),
  M = c("M", "C")
)

接着处理输入字符串,拆分字符、提取候选集合、生成所有合规组合并拼接:

string2 <- "VSC"

# 拆分字符串为单个氨基酸字符
aa_chars <- strsplit(string2, "")[[1]]

# 为每个字符匹配对应的候选替换集合
candidates <- lapply(aa_chars, function(x) aa_replace[[x]])

# 生成所有可能的组合
combinations <- expand.grid(candidates, stringsAsFactors = FALSE)

# 将每行组合拼接为完整字符串
result <- apply(combinations, 1, paste0, collapse = "")

# 输出结果
print(result)

运行后会得到完全符合规则的所有组合:
"VSC" "LSC" "ASC" "VTC" "LTC" "ATC" "VSM" "LSM" "ASM" "VTM" "LTM" "ATM"

问题说明

之前的代码未针对每个位置的原始氨基酸做限制,将所有可替换氨基酸混在同一候选列表中,导致出现S替换为A/L/M这类不符合规则的情况。上述方案通过映射表为每个字符精准匹配合法候选,确保生成的组合完全遵循给定规则。

内容的提问来源于stack exchange,提问作者Ava Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 02:58:25