我尝试编写一个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
非常感谢提前!
答案 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包装问题的更合适的地方。