【发布时间】:2020-11-09 12:59:04
【问题描述】:
我正在尝试整理几个样本中已识别肽序列的数据框:
Sample_Elu_HN, Sample_LW_HN, Sample_Elu_HM, Sample_LW_HM, Sample_Elu_M1, Sample_LW_M1, Sample_Elu_M2, Sample_LW_M2, Sample_Elu_N1, @987653331@, @98654331@, @9867653331@和Control_Preload_None。
数据框包含每个肽的信息,包括它们在每个样本中的丰度,以及其鉴定的可信度。
names <- c("Sequence", "Modifications", "Master Protein Accessions","Missed Cleavages",
"Abundance: Mean: Control, None, Preload","Abundance: SD: Control, None, Preload","Abundance: CV: Control, None, Preload",
"Abundance: Mean: Sample, HM, Elu","Abundance: SD: Sample, HM, Elu","Abundance: CV: Sample, HM, Elu",
"Abundance: Mean: Sample, HN, Elu","Abundance: SD: Sample, HN, Elu","Abundance: CV: Sample, HN, Elu",
"Abundance: Mean: Sample, M1, Elu","Abundance: SD: Sample, M1, Elu","Abundance: CV: Sample, M1, Elu",
"Abundance: Mean: Sample, M2, Elu","Abundance: SD: Sample, M2, Elu","Abundance: CV: Sample, M2, Elu",
"Abundance: Mean: Sample, N1, Elu","Abundance: SD: Sample, N1, Elu","Abundance: CV: Sample, N1, Elu",
"Abundance: Mean: Sample, N2, Elu","Abundance: SD: Sample, N2, Elu","Abundance: CV: Sample, N2, Elu",
"Abundance: Mean: Sample, HM, LW","Abundance: SD: Sample, HM, LW","Abundance: CV: Sample, HM, LW",
"Abundance: Mean: Sample, HN, LW","Abundance: SD: Sample, HN, LW","Abundance: CV: Sample, HN, LW",
"Abundance: Mean: Sample, M1, LW","Abundance: SD: Sample, M1, LW","Abundance: CV: Sample, M1, LW",
"Abundance: Mean: Sample, M2, LW","Abundance: SD: Sample, M2, LW","Abundance: CV: Sample, M2, LW",
"Abundance: Mean: Sample, N1, LW","Abundance: SD: Sample, N1, LW","Abundance: CV: Sample, N1, LW",
"Abundance: Mean: Sample, N2, LW","Abundance: SD: Sample, N2, LW","Abundance: CV: Sample, N2, LW",
"Found in Sample Group: Control, Preload, None","Found in Sample Group: Sample, Elu, HM",
"Found in Sample Group: Sample, Elu, HN","Found in Sample Group: Sample, Elu, M1",
"Found in Sample Group: Sample, Elu, M2","Found in Sample Group: Sample, Elu, N1",
"Found in Sample Group: Sample, Elu, N2","Found in Sample Group: Sample, LW, HM",
"Found in Sample Group: Sample, LW, HN","Found in Sample Group: Sample, LW, M1",
"Found in Sample Group: Sample, LW, M2","Found in Sample Group: Sample, LW, N1",
"Found in Sample Group: Sample, LW, N2")
peptide1 <- c("FQSEEQQQTEDELQDK","1xPhospho [S3(100)]","P02666",0,591079706.5,129831141.4,21.96508186,92078374.7,5559797.773,6.038114585,130764801.6,11101742.04,8.489854991,304661843.6,89701289.78,29.44290257,100024065.8,174405.3367,0.174363375,20777445.26,7953029.115,38.27722329,43696929.72,10030935.24,22.95569805,496031039,260945694.4,52.60672697,111323285.3,32961482.23,29.60879402,329268465.6,243189584.2,73.85753864,478737037.1,153121463.4,31.98446151,701372889.6,20000942.58,2.851684585,847417746,84344510.23,9.953120599,"High","High","High","High","High","High","High","High","High","Found","High","High","High")
peptide2 <- c("HPGDFGADAQGAMTK","1xPhospho [H1(100)]","P68082",0,295017576,49088902.73,16.63931464,2845912.875,709262.9265,24.92215882,3659951.5,215619.485,5.891320828,41946172,301640.4391,0.719113151,9336196.75,1507110.776,16.14266298,1469308.375,434213.7682,29.55225572,1607320,498424.3673,31.00965379,191151516,137956380.3,72.17121954,236416096,97608884.31,41.28690303,119327816,55998433.41,46.92823123,152802424,9555841.041,6.253723462,147086456,33874815.85,23.03054732,255244232,75472108.91,29.56858548,"High","High","High","High","High","High","High","High","High","Not Found","High","Not Found","High")
peptide3 <- c("IEKFQSEEQQQTEDELQDK","","P02666",1,75099003,12104439.14,16.11797582,18015945.88,6770542.657,37.58083369,7913736.75,4197999.975,53.04700053,46005954.5,8581332.638,18.65265645,14313846.5,4426286.925,30.92311298,5085692.75,528187.9059,10.38576123,7676983.313,3681526.619,47.95538129,24546758.5,13126407.14,53.47511419,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,9098671.051,22.39353163,31170934,NA,NA,"High","High","High","High","High","High","High","Not Found","Not Found","Not Found","High","Not Found","High")
example.data <- as.data.frame(rbind(peptide1, peptide2, peptide3))
colnames(example.data) <- names
example.data
我想要的是将列 "Abundance: Mean: ..."、"Abundance: SD: ..."、"Abundance: CV:..." 和 "Found in Sample Group: ..." 收集到 "Mean"、"SD"、"CV" 和 "Found"。
这是我尝试过的:
library(tidyr)
example.tidy <- pivot_longer(example.data, cols = c(str_which(colnames(example.data), "Abundance: [^F]"), str_which(colnames(example.data), "Found in Sample Group")),
names_to = c(".value", "Sample", "Polymer", "Fraction"), names_pattern = "(.*): (.*), (.*), (.*)")
但是,它将 Mean、SD 和 CV 值与 Found 值分开在不同的行中,留下很多 NA 值...
需要修复什么以使所有变量的所有值都包含在同一行中?
一如既往地感谢您的帮助!
【问题讨论】:
-
你能举一个预期结果的例子吗?