今天有同学问我LULU的第一步blast的问题,我看他用的blast的命令比较奇怪,一问才知他用rBLAST这个包跑的blast。简单看了一下用法mark一下。
##https://github.com/mhahsler/rBLAST
library(devtools)
devtools::install_github("mhahsler/rBLAST")
library(rBLAST)
##需要自己下载blast
#寻找本地可用的blast
Sys.which("blastn")
#如果找不到需要自己设置环境变量
Sys.setenv(PATH = paste(Sys.getenv("PATH"), "path_to_BLAST", sep= .Platform$path.sep))
#版本检查
system("blastn -version")
##建数据库
dir <- tempdir()
db = makeblastdb(file.path(dir, "seqs.fasta"), dbtype = "nucl", args="")
#dbtype:"nucl" or "prot"
#args:其他参数
## 加载数据库
bl <- blast(file.path(dir, "seqs.fasta"))
bl
## 比对,并设置输出格式。seq为需要比对的序列
output <- predict(bl, seq, custom_format = "qseqid bitscore length")