在 R 中比较 headers 的两个 FASTA 文件

Compare headers of two FASTA files in R

我有两个 FASTA 文件,大约有 8500 个蛋白质 headers。我想比较这两个文件并指出它们之间的差异。 到目前为止,我已经尝试过 diffr 包。但它没有按要求工作。

library(diffr)
diffr(Myxo_greped.txt, Myxo_arranged_final.txt)

图片是我的两个文件乍一看的样子。

我想您需要将文件名放在引号中:

这是示例 fasta 文件:

writeLines(">p1\nKLCLYTHI\n>p3\nGRNIYYGSY","file1.fa")
writeLines(">p1\nLYSETWNT\n>p4\nGIMLLLITMATAFM","file2.fa")

我们读到:

library(diffr)
diffr("file1.fa","file2.fa")

如果你想知道headers的区别:

library(Biostrings)
f1 = readAAStringSet("file1.fa")
f2 = readAAStringSet("file2.fa")

> names(f1)
[1] "p1" "p3"
> names(f2)
[1] "p1" "p4"

> setdiff(names(f1),names(f2))
[1] "p3"
> intersect(names(f1),names(f2))
[1] "p1"

使用bash:

diff <(grep ">" file1.fasta) <(grep ">" file2.fasta)

使用R:

# read the files
f1 <- readLines("file1.fasta")
f2 <- readLines("file2.fasta")

# join the headers side by side
f12 <- cbind(f1 = grep(">", f1, value = TRUE), 
             f2 = grep(">", f2, value = TRUE)) 

# extract rows that are different
f12[ f1 != f2, ]