我有一张这样的表:

>head(X)
column1    column2
sequence1 ATCGATCGATCG
sequence2 GCCATGCCATTG

我需要一个 fasta 文件中的输出,如下所示:
sequence1
ATCGATCGATCG
sequence2
GCCATGCCATTG

所以,基本上我需要第二列的所有条目成为新行,穿插第一列。然后可以丢弃旧的第二列。

我通常这样做的方法是在 Notepad++ 中用\n 替换空格(或制表符),但我担心我的文件太大而无法这样做。

有没有办法在 R 中做到这一点?

最佳答案

D <- do.call(rbind, lapply(seq(nrow(X)), function(i) t(X[i, ])))
D
#         1
# column1 "sequence1"
# column2 "ATCGATCGATCG"
# column1 "sequence2"
# column2 "GCCATGCCATTG"

然后,当您写入文件时,您可以使用
write.table(D, row.names = FALSE, col.names = FALSE, quote = FALSE)
# sequence1
# ATCGATCGATCG
# sequence2
# GCCATGCCATTG

这样行名、列名和引号都将消失。

关于r - 在 R 中将表转换为 fasta,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23374100/

10-10 05:48