如何用标题在Fasta格式的R中写入pairwiseAlignment?

时间:2015-09-04 06:40:15

标签: r

我尝试编写一个R脚本,用它可以将一个文件中的一个序列与另一个文件中的单个序列对齐。

到目前为止,我对结果非常满意,但我有一个大问题。如何以fasta格式编写带有标题名称的pairwiseAlignment输出?

我这样做了(等等):

seq1 <- readDNAStringSet("file1.fasta", use.names=T)
seq2 <- readDNAStringSet("file2.fasta", use.names=T)

mat <- nucleotideSubstitutionMatrix(match = 1, mismatch = -3, baseOnly= F)

# here I will introduce a loop with sapply() to align every sequence against 
# the sequence in file2

globalAlign <- pairwiseAlignment(seq1[1], seq2[1], type='global-local',   
substitutionMatrix=mat, gapOpening=10, gapExtension=-5)

r = BStringSet( c(toString(subject(globalAlign)), toString(pattern(globalAlign))) )
writeXStringSet(r,"out1.txt")

但是我的“out1.txt”-outfile看起来像这样:

>
ATGCGATGCTAGCTGCATAGCTCGATCG

>
ATGCGAT---AGCTGCATAGCT---TCG

您是否有人知道如何包含序列名称,使其如下所示:

>seq_name_1

ATGCGATGCTAGCTGCATAGCTCGATCG

>seq_name_2

ATGCGAT---AGCTGCATAGCT---TCG

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

将名称添加到DNAStringSet

r = c(as(subject(globalAlign), "DNAStringSet"), 
      as(pattern(globalAlign), "DNAStringSet"))
names(r) = c("subject", "pattern")
writeXStringSet(r, "out.fasta")

导致

>subject
GTTTCACTACTTCCTTTCGGGTAAGTAAATATATAAATATATAAAAATATAATTTTCATC
>pattern
ACTTCACCAGCTCCCTGGCGGTAAGTTGATC---AAAGG---AAACGCAAAGTTTTCAAG

Bioconductor support forum是关于Bioconductor包装问题的更合适的地方。