extracting data from a list within an S4Vector in R

Viewed 34

I have what I think is a dataframe in a list in an S4Vector. I cant, for the life of me, figure out how to flatten it?

And/or how do I create a simple dataframe with the gene name from the main "Query" column, and each of the GOID (starting with "GO:") from the go.BP, go.CC and go.MF dataframes.

View(res)


> class(res)
[1] "DFrame"
attr(,"package")
[1] "S4Vectors"

>res
DataFrame with 4 rows and 7 columns
        query         _id   X_score  entrezgene
  <character> <character> <numeric> <character>
1       BRCA1         672   87.6431         672
2       BRCA2         675   88.0092         675
3        SOX2        6657   88.3288        6657
4         MYC        4609   89.6193        4609
                                                                  go.BP
                                                                 <list>
1 IBA:BP:GO:0000724:...,IDA:BP:GO:0000724:...,TAS:BP:GO:0000729:...,...
2 IEA:BP:GO:0000722:...,IBA:BP:GO:0000724:...,IDA:BP:GO:0000724:...,...
3 IBA:BP:GO:0000122:...,ISS:BP:GO:0000122:...,IDA:BP:GO:0001649:...,...
4 TAS:BP:GO:0000082:...,IDA:BP:GO:0000122:...,IMP:BP:GO:0000122:...,...
                                                                  go.CC
                                                                 <list>
1 NAS:CC:GO:0000151:...,IDA:CC:GO:0000800:...,NAS:CC:GO:0000931:...,...
2 IDA:CC:GO:0000781:...,IDA:CC:GO:0000800:...,IBA:CC:GO:0005634:...,...
3  ISA:CC:GO:0000785:...,IC:CC:GO:0005634:...,IDA:CC:GO:0005634:...,...
4 IMP:CC:GO:0000785:...,ISA:CC:GO:0000785:...,IDA:CC:GO:0005634:...,...
                                                                  go.MF
                                                                 <list>
1 MF:IDA:GO:0000976:...,MF:TAS:GO:0003677:...,MF:IEA:GO:0003684:...,...
2 MF:IPI:GO:0002020:...,MF:IDA:GO:0003697:...,MF:IDA:GO:0004402:...,...
3 MF:IDA:GO:0000976:...,MF:IBA:GO:0000978:...,MF:IBA:GO:0000981:...,...
4 MF:IBA:GO:0000978:...,MF:IDA:GO:0000978:...,MF:IMP:GO:0000978:...,...


res[6]
DataFrame with 4 rows and 1 column
                                                                  go.CC
                                                                 <list>
1 NAS:CC:GO:0000151:...,IDA:CC:GO:0000800:...,NAS:CC:GO:0000931:...,...
2 IDA:CC:GO:0000781:...,IDA:CC:GO:0000800:...,IBA:CC:GO:0005634:...,...
3  ISA:CC:GO:0000785:...,IC:CC:GO:0005634:...,IDA:CC:GO:0005634:...,...
4 IMP:CC:GO:0000785:...,ISA:CC:GO:0000785:...,IDA:CC:GO:0005634:...,...

Ideally, the results would look like this:

Query go.BP go.CC go.MF
BRCA1 GO:0000002;GO:0000003 GO:0000005;GO:0000006 GO:0000007;GO:00000008
BRCA2 GO:0000002;GO:0000003 GO:0000005;GO:0000006 GO:0000007;GO:00000008
SOX GO:0000002;GO:0000003 GO:0000005;GO:0000006 GO:0000007;GO:00000008
MYC GO:0000002;GO:0000003 GO:0000005;GO:0000006 GO:0000007;GO:00000008
0 Answers
Related