我有一张这样的表:
>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/