9

当我在 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

4 回答 4

27

我遇到了类似的问题。我所做的是将包含序列的向量转换为列表,它工作正常。

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

于 2012-10-09T03:48:31.827 回答
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
于 2012-10-03T15:00:26.880 回答
1

一个最小的例子:

write.fasta(as.list(c('AAA', 'CCC')), names=c("a", "b"), 
                               as.string=FALSE, file.out="foo.fa")
于 2019-01-08T18:11:16.577 回答
0

我遇到了这个问题,并得到了朋友的帮助。您需要在列表中定义序列,这是一个代码示例,其中来自 maxquant 输出的输入是一个 csv,其中有一列称为序列,名称列称为“前导剃刀蛋白”:

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)
于 2019-09-27T13:41:53.837 回答