【发布时间】:2018-07-09 20:28:28
【问题描述】:
我有一个包含数百行的数据框,看起来像这样:
Gene = c("EIF4A1", "CAPNS1", "LDHA", "RPL38", "CCAR1")
Pep = c("TGKTATFAISILQQIELDLKA", "MFLVNSFLKGGGGG", "CAISILMKDLAD", "VITDKEKAEKLKQSL", "TPANYQLTQTAALQQQAA")
Seq = c("MSASQDSRSRDNGPDGMEPEGVIESNWNEIVDSFDDMNLSESLLRGIYAYGFEKPSAIQQRAILPCIKGYDVIAQAQSGTGKTATFAISILQQIELDLKATQALVL*",
"MFLVNSFLKGGGGGGGGGGGLGGGLGNVLGGLISGAGGGGGGGGGGGGGGGGGGGGTAMRILGGVISAISEAAAQYNPES*",
"MATLKDQLIYNLLKEEQTPQNKITVVGVGAVGMACAISILMKDLADELALVDVIEDKLKGEMMDLQHGSLFLRTPKIVSGKDVFTE",
"MPRKIEEIKDFLLTARRKDAKSVKIKKNKDNVKFKVRCSRYLYTLVITDKEKAEKLKQSLPPGLAVKELK*",
"MAQFGGQKNPPWATQFTATAVSQPAALGVQQPSLLGASPTIYTQQTALAAAGLTTQTPANYQLTQTAALQQQAAAAAAALQQQYSQPQDQKSKENGASV")
df_in = data.frame(Gene, Pep, Seq)
我想将"Pep" 中的序列与"Seq" 中的序列进行匹配,并报告匹配是否在"Seq" 中序列的第一、第二、第三或第四季度内。如果序列落在边界内,则考虑匹配 >50% 的四分之一。
所需的输出数据帧:
df_out = data.frame(Gene, Pep, Seq, Q1, Q2, Q3, Q4)
非常感谢。
【问题讨论】:
-
我是 R 新手,但我在用它分析数据方面投入了大量时间。希望有人可能有想法(可能还有代码)来解决这个问题。因为,grep/stringr 处理文本,所以添加了这些标签。但是,老实说,任何工具(在 R 内)都可以。谢谢。
标签: r