使用R包seqinr编写fasta文件?

时间:2012-08-06 00:00:08

标签: r fasta

当我在seqinr中使用write.fasta时,它输出的文件如下所示:

>Sequence name 1

>Sequence name 2

>Sequence name 3
...etc

Sequence 1 Sequence 2 Sequence 3 ...etc

换句话说,序列名称都在文件的开头,然后序列在文件末尾一起输出。

我想做的是:

>Sequence name 1
Sequence 1
>Sequence name 2
Sequence 2
>Sequence name 3
Sequence 3
...etc

write.fasta可以吗?

4 个答案:

答案 0 :(得分:16)

我遇到了类似的问题。我所做的是将包含序列的载体转换为列表并且工作正常。

例如,write.fasta(as.list(seq),names,file)

答案 1 :(得分:1)

实际上,我总是以正确的方式获得它,并且我从来没有遇到类似于你的问题。试试这个。

复制以下文字:

>seq1
agctgtagtc
>seq2
agtctctctt
>seq3
atgtataaaa

将其另存为“test.fasta”。然后在R中执行以下操作

my.dna<-read.fasta("test.fasta")
write.fasta(sequences=my.dna,names=names(my.dna),file.out="write.my.dna.fasta")

如果您打开“write.my.dna.fasta”,您将获得以下内容:

>seq1
agctgtagtc
>seq2
agtctctctt
>seq3
atgtataaaa

答案 2 :(得分:0)

该死。 6.5年后,我遇到了完全相同的问题。我不相信在此期间没有人修复它。

一个最小的例子:

write.fasta(c("AAA", "CCC"), names=c("a", "b"), file.out="foo.fa")

答案 3 :(得分:0)

我对此感到困惑,并从朋友那里得到了一些帮助。您需要在列表中定义序列,这里是一个代码示例,其中maxquant输出的输入是一个csv,具有名为sequence的列和名为“ leader razor protein”的名称列:

library(tidyverse)
library(seqinr)
MU = read_csv('data.csv')
seqs = as.list(dplyr::pull(MU, Sequence))
names = dplyr::pull(MU, `Leading razor protein`)
write.fasta(seqs, names, "MU.fasta",
            open = "w", as.string = FALSE)