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

R语言实现蛋白序列分割及指定条件肽段筛选咨询

R 蛋白序列分割后筛选实现

你已经完成了按R位置分割序列的操作,后续两轮筛选可以通过以下两种方式实现:

方法1:tidyverse 风格(和你使用的str_split同属stringr工具生态)

# 加载所需包(已加载可跳过)
library(tidyverse)

# 你已有的基础代码
protein = "ARTKQTARKSTGGKAPRKQLATKAARKSAPATGGVKKPHRYRPGTVALREIRRYQKSTELLIRKLPFQRLVREIAQDFKTDLRFQSSAVMALQEACEAYLVGLFEDTNLCAIHAKRVTIMPKDIQLARRIRGERA"
peptide_fragments <- str_split(protein, "(?<=[R])")

# 两轮筛选逻辑
filtered_fragments <- peptide_fragments %>%
  # 提取分割得到的字符向量(str_split默认返回列表,单输入序列对应列表第一个元素)
  pluck(1) %>%
  # 第一轮筛选:保留包含字母K的子串
  keep(~ str_detect(.x, "K")) %>%
  # 第二轮筛选:保留字符长度≥6的子串
  keep(~ nchar(.x) >= 6)

方法2:基础R 实现(无需加载第三方包)

# 基础代码
protein = "ARTKQTARKSTGGKAPRKQLATKAARKSAPATGGVKKPHRYRPGTVALREIRRYQKSTELLIRKLPFQRLVREIAQDFKTDLRFQSSAVMALQEACEAYLVGLFEDTNLCAIHAKRVTIMPKDIQLARRIRGERA"
# 基础R的strsplit需要加perl=TRUE支持后视正则语法
peptide_fragments <- strsplit(protein, "(?<=[R])", perl = TRUE)

# 两轮筛选逻辑
fragments <- peptide_fragments[[1]]
# 第一轮:剔除不含K的子串
fragments_with_k <- fragments[grepl("K", fragments)]
# 第二轮:剔除长度小于6的子串
filtered_fragments <- fragments_with_k[nchar(fragments_with_k) >= 6]

运行完成后,filtered_fragments变量中存储的就是符合你筛选要求的肽段片段。

内容的提问来源于stack exchange,提问作者hassan hejazi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:15:03