当我在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可以吗?
答案 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)