R如何可视化成对对齐

时间:2018-09-17 12:18:00

标签: r ggplot2 bioinformatics sequence-alignment

如何可视化两个序列的完全比对?

library(Biostrings)
s1 <-DNAString("ACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCAAGAAGACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCAAG")
s2 <-DNAString("GTTTCACTACTTCCTTTCGGGTAAGTAAATATATGTTTCACTACTTCCTTTCGGGTAAGTGTTTCACTACTTCCTTTCGGGTAAGTAAATATATAAATATATAAAAATATAATTTTCATCAAATATATAAATATATAAAAATATAATTTTCATCAAATATATAAAAATATAATTTTCATC")
pairwiseAlignment(s1,s2)

输出:

Global PairwiseAlignmentsSingleSubject (1 of 1)
pattern: [1] ACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGT--TTTCAC---...CTTCACCAGCTCCCTGGCGGTAAGTTG-ATCAAAGG---AAACGCAAAGTTTTCAAG 
subject: [1] GTTTCACTACTTCCTTTCGGGTAAGTAAAT-ATATGTTTCACTACTTCCTTTCGGGTA...TATATAAATATATAAAAATATAATTTTCATCAAATATATAAAAATATAATTTTCATC 
score: -394.7115 

在这里,仅显示了部分对齐方式?您是否知道任何绘制或打印路线的现有功能?

1 个答案:

答案 0 :(得分:6)

您可以在?pairwiseAlignments下找到有关如何提取对齐的模式和主题序列的信息和详细信息。

以下是基于您提供的示例数据的示例:

  1. 将成对对齐方式存储在PairwiseAlignmentsSingleSubject对象中

    alg <- pairwiseAlignment(s1,s2)
    
  2. 提取对齐的模式和主题序列,并将它们合并为DNAStringSet对象。

    seq <- c(alignedPattern(alg), alignedSubject(alg))
    
  3. 您可以使用as.character

    访问全部序列
    as.character(seq)
    [1] "ACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGT--TTTCAC--------TTCACCAGCTCCCTGGCGGTAAGTTGATC---AAAGG---AAACGCAAAGTTTTCAAGAAGACTTCACCAGCTCCCTGGCGGTAAGTTG-ATCAAAGG---AAACGCAAAGTTTTCAAG"
    [2] "GTTTCACTACTTCCTTTCGGGTAAGTAAAT-ATATGTTTCACTACTTCCTTTCGGGTAAGTGTTTCACTACTTCCTTTCGGGTAAGTAAATATATAAATATATAAAAATATAATTTTCATCAA-ATATATAAATATATAAAAATATAATTTTCATCAAATATATAAAAATATAATTTTCATC"
    

    似乎alignedPatternalignedSubject是最近才添加到Biostrings的。或者,您可以

    seq <- c(aligned(pattern(alg)), aligned(subject(alg)))
    

    ,但请注意,这将修剪全局对齐的序列(请参见details)。

  4. 有一个不错的R / Bioconductor软件包DECIPHER,它提供了一种在Web浏览器中可视化XStringSet数据的方法。它会在底部自动添加颜色编码和共识序列。在您的情况下,您会这样做

    library(DECIPHER)
    BrowseSeqs(seq)
    

    enter image description here