我正在处理蛋白质组数据,并希望根据实际的蛋白质序列显示肽的表达。目前,它们是根据它们在量化(=随机)中的使用情况进行排序的。我想你可以使用正则表达式/ stringr&rebus (最好是)来做这件事,但是我不知道该怎么做。
这里有一个数据示例,非常感谢您的帮助!
peptides <- data.frame(peptide = c(1,2,3,4),
sequence = c("PRDPDPASRTH", "MTLGRRLACLF", "RRARPHAWP", "APNFVMSAAH"),
log2quant = c(21, 12, 17, 18))
protein_sequence <- c("MTLGRRLACLFLACVLPALLLGGTALASEIVGGRRARPHAWPFMVSLQLRGGHFCGATLIAPNFVMSAAHCVANVNVRAVRVVLGAHNLSRREPTRQVFAVQRIFENGYDPVNLLNDIVILQLNGSATINANVQVAQLPAQGRRLGNGVQCLAMGWGLLGRNRGIASVLQELNVTVVTSLCRRSNVCTLVRGRQAGVCFGDSGSPLVCNGLIHGIASFVRGGCASGLYPDAFAPVAQFVNWIDSIIQRSEDNPCPHPRDPDPASRTH")
expected_result <- data.frame(peptide = c(1,2,3,4),
sequence = c("PRDPDPASRTH", "MTLGRRLACLF", "RRARPHAWP", "APNFVMSAAH"),
log2quant = c(21, 12, 17, 18),
order = c(4, 1, 2, 3))我从Uniprot复制/粘贴的序列(它是ELANE蛋白)。其余数据来自MassSpec结果。很高兴能找到解决这个问题的方法,非常感谢!
发布于 2019-09-21 20:23:01
我们可以使用stringr中的str_locate来获取字符串protein_sequence中模式的开始(或结束)位置,并使用rank来获取它的顺序。
peptides$order <- rank(stringr::str_locate(protein_sequence,peptides$sequence)[, 1])
peptides
# peptide sequence log2quant order
#1 1 PRDPDPASRTH 21 4
#2 2 MTLGRRLACLF 12 1
#3 3 RRARPHAWP 17 2
#4 4 APNFVMSAAH 18 3在str_locate中使用peptides$sequence之前,请确保它是字符,而不是factor。
https://stackoverflow.com/questions/58040130
复制相似问题