【问题标题】:R: Convert consensus output into a data frameR:将共识输出转换为数据框
【发布时间】:2017-05-16 18:31:19
【问题描述】:

我目前正在使用 Bioconductor 的“msa”包进行多序列比对。我正在使用它来计算共有序列 (msaConsensusSequence) 和保护分数 (msaConservationScore)。这给了我价值的输出......

例如

共识序列:

 i.llE etc (str = chr)

(小写 = 20%+ 守恒,大写 = 80%+ 守恒,. =

保护分数:

 221 -296 579 71 423 etc (str = named num)

我想将这些转换成一个表格,其中第一行包含列,其中每个列是一致序列中的不同字母,第二行是相应的保护分数。

例如

 i     .      l     l    E
 221   -296   579   71   423

请人们就解决此问题的最佳方法提出建议吗?

谢谢 娜塔莉

【问题讨论】:

  • 您是否尝试过使用msaConservationScore?您可以指定要使用的守恒矩阵,它会返回与您要求的输出完全相同的输出
  • 我通过 msaConservationScore 得到的输出确实给了我想要的东西,但我无法使用它,因为它是一个向量。当我尝试将其转换为数据框时,它只给我数字,而不是共识对齐。我真的需要一个带有 row1: 共识, row2: 保护分数的 data.frame。你知道我怎样才能把我的数据变成这种格式吗?谢谢

标签: r bioinformatics bioconductor


【解决方案1】:

对于您在 cmets 中所说的内容,您可以获得这样的数据框:

data(BLOSUM62)
alignment <- msa(mySequences)
conservation <- msaConservationScore(alignment, BLOSUM62)

# Now create the data fram
df <- data.frame(consensus = names(conservation), conservation = conservation)
head(df)

    consensus conservation
1         T          141
2         E          160
3         E          165
4         E          325
5         ?          179
6         ?           71
7         T          216
8         W          891
9         ?           38
10        T          405
11        L          204

如果你喜欢转置它,你可以:

df <- t(df)
colnames(df) <- 1:ncol(df)

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2013-06-27
    • 2017-10-19
    • 1970-01-01
    • 2018-08-02
    • 2018-09-01
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多