【发布时间】:2023-02-15 22:48:42
【问题描述】:
考虑到我有 2 个不同的对象。第一个是数据框 (df),它看起来像这样:
>df
Pos MHC Peptide
1 HLA-A*02:01 VTGYKVQYTS
2 HLA-A*02:01 TGYKVQYTSL
3 HLA-A*02:01 GYKVQYTSLT
4 HLA-A*02:01 YKVQYTSLTG
5 HLA-A*02:01 KVQYTSLTGL
1 HLA-A*02:01 SHDLGIILQK
2 HLA-A*02:01 HDLGIILQKI
3 HLA-A*02:01 DLGIILQKIR
4 HLA-A*02:01 LGIILQKIRD
5 HLA-A*02:01 GIILQKIRDM
6 HLA-A*02:01 IILQKIRDMP
7 HLA-A*02:01 ILQKIRDMPY
8 HLA-A*02:01 LQKIRDMPYM
1 HLA-A*02:01 MGLEALMPLA
2 HLA-A*02:01 GLEALMPLAV
3 HLA-A*02:01 LEALMPLAVI
4 HLA-A*02:01 EALMPLAVIV
5 HLA-A*02:01 ALMPLAVIVA
1 HLA-B*35:01 VTGYKVQYTS
2 HLA-B*35:01 TGYKVQYTSL
3 HLA-B*35:01 GYKVQYTSLT
4 HLA-B*35:01 YKVQYTSLTG
5 HLA-B*35:01 KVQYTSLTGL
1 HLA-B*35:01 SHDLGIILQK
2 HLA-B*35:01 HDLGIILQKI
3 HLA-B*35:01 DLGIILQKIR
4 HLA-B*35:01 LGIILQKIRD
5 HLA-B*35:01 GIILQKIRDM
6 HLA-B*35:01 IILQKIRDMP
7 HLA-B*35:01 ILQKIRDMPY
8 HLA-B*35:01 LQKIRDMPYM
1 HLA-B*35:01 MGLEALMPLA
2 HLA-B*35:01 GLEALMPLAV
3 HLA-B*35:01 LEALMPLAVI
4 HLA-B*35:01 EALMPLAVIV
5 HLA-B*35:01 ALMPLAVIVA
现在,可以注意到:
- 对于
df$Pos列的每次迭代,df$Peptide本质上是相同的(它只有一个 aa 不同,因为阅读框架是向前的)。和每次df$Pos重新启动,它表示一个新的肽. - 另外,请注意数据框的一半由HLA-A*02:01在
df$MHC专栏,另一半由HLA-B*35:01.除此之外,每个组的肽完全相同,因此它们的名称也应该相同.也就是说,第二个对象
names包含每个肽段的定义名称,如下所示:>names "COL7A1_Pro268Ser" "COL7A1_Arg1120Lys" "CYP2D6_Val7Met"我的问题是:
我怎样才能组合这两个对象,所以最终的数据框看起来像这样:
>df Pos MHC Peptide Name 1 HLA-A*02:01 VTGYKVQYTS COL7A1_Pro268Ser 2 HLA-A*02:01 TGYKVQYTSL COL7A1_Pro268Ser 3 HLA-A*02:01 GYKVQYTSLT COL7A1_Pro268Ser 4 HLA-A*02:01 YKVQYTSLTG COL7A1_Pro268Ser 5 HLA-A*02:01 KVQYTSLTGL COL7A1_Pro268Ser 1 HLA-A*02:01 SHDLGIILQK COL7A1_Arg1120Lys 2 HLA-A*02:01 HDLGIILQKI COL7A1_Arg1120Lys 3 HLA-A*02:01 DLGIILQKIR COL7A1_Arg1120Lys 4 HLA-A*02:01 LGIILQKIRD COL7A1_Arg1120Lys 5 HLA-A*02:01 GIILQKIRDM COL7A1_Arg1120Lys 6 HLA-A*02:01 IILQKIRDMP COL7A1_Arg1120Lys 7 HLA-A*02:01 ILQKIRDMPY COL7A1_Arg1120Lys 8 HLA-A*02:01 LQKIRDMPYM COL7A1_Arg1120Lys 1 HLA-A*02:01 MGLEALMPLA CYP2D6_Val7Met 2 HLA-A*02:01 GLEALMPLAV CYP2D6_Val7Met 3 HLA-A*02:01 LEALMPLAVI CYP2D6_Val7Met 4 HLA-A*02:01 EALMPLAVIV CYP2D6_Val7Met 5 HLA-A*02:01 ALMPLAVIVA CYP2D6_Val7Met 1 HLA-B*35:01 VTGYKVQYTS COL7A1_Pro268Ser 2 HLA-B*35:01 TGYKVQYTSL COL7A1_Pro268Ser 3 HLA-B*35:01 GYKVQYTSLT COL7A1_Pro268Ser 4 HLA-B*35:01 YKVQYTSLTG COL7A1_Pro268Ser 5 HLA-B*35:01 KVQYTSLTGL COL7A1_Pro268Ser 1 HLA-B*35:01 SHDLGIILQK COL7A1_Arg1120Lys 2 HLA-B*35:01 HDLGIILQKI COL7A1_Arg1120Lys 3 HLA-B*35:01 DLGIILQKIR COL7A1_Arg1120Lys 4 HLA-B*35:01 LGIILQKIRD COL7A1_Arg1120Lys 5 HLA-B*35:01 GIILQKIRDM COL7A1_Arg1120Lys 6 HLA-B*35:01 IILQKIRDMP COL7A1_Arg1120Lys 7 HLA-B*35:01 ILQKIRDMPY COL7A1_Arg1120Lys 8 HLA-B*35:01 LQKIRDMPYM COL7A1_Arg1120Lys 1 HLA-B*35:01 MGLEALMPLA CYP2D6_Val7Met 2 HLA-B*35:01 GLEALMPLAV CYP2D6_Val7Met 3 HLA-B*35:01 LEALMPLAVI CYP2D6_Val7Met 4 HLA-B*35:01 EALMPLAVIV CYP2D6_Val7Met 5 HLA-B*35:01 ALMPLAVIVA CYP2D6_Val7Met请注意,我已经在不同的来源中进行了搜索,包括此处。因此,我发布这个问题是因为我在其他地方找不到类似的东西。任何帮助是极大的赞赏。
示例数据:
df <- structure(list(Pos = c("1","2","3","4","5","1","2","3","4","5","6","7","8","1","2","3","4","5","1","2","3","4","5","1","2","3","4","5","6","7","8","1","2","3","4","5"), MHC = c("HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-A*02:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01","HLA-B*35:01"), Peptide = c("VTGYKVQYTS","TGYKVQYTSL","GYKVQYTSLT","YKVQYTSLTG","KVQYTSLTGL","SHDLGIILQK", "HDLGIILQKI","DLGIILQKIR","LGIILQKIRD","GIILQKIRDM","IILQKIRDMP","ILQKIRDMPY","LQKIRDMPYM","MGLEALMPLA","GLEALMPLAV","LEALMPLAVI","EALMPLAVIV","ALMPLAVIVA","VTGYKVQYTS","TGYKVQYTSL","GYKVQYTSLT","YKVQYTSLTG","KVQYTSLTGL","SHDLGIILQK","HDLGIILQKI","DLGIILQKIR","LGIILQKIRD","GIILQKIRDM","IILQKIRDMP","ILQKIRDMPY","LQKIRDMPYM","MGLEALMPLA","GLEALMPLAV","LEALMPLAVI","EALMPLAVIV","ALMPLAVIVA")), class = "data.frame", row.names = c(1L,2L,3L,4L,5L,6L, 7L,8L,9L,10L,11L,12L,13L,14L,15L,16L,17L,18L,19L,20L,21L,22L,23L,24L,25L,26L,27L,28L, 29L,30L,31L,32L,33L,34L,35L,36L)) names <- c("COL7A1_Pro268Ser", "COL7A1_Arg1120Lys", "CYP2D6_Val7Met")
【问题讨论】: