调用fastqc报错‘sh:1:fastqc:not found’的技术求助
我完全懂你现在的困扰——明明已经确认FastQC装在bin目录,R里加载fastqcr也没问题,可一调用fastqc()函数就弹出找不到可执行文件的报错。咱们一步步拆解排查:
先确认FastQC的系统可执行性与路径
先打开Ubuntu终端,直接输入which fastqc,记下输出的完整路径(比如/usr/local/bin/fastqc)。接着回到R里运行Sys.getenv("PATH"),看看这个路径有没有包含在R的环境变量里。如果没找到,那就是R的PATH没覆盖到FastQC的位置,这是最常见的原因。直接在R中指定FastQC路径
fastqcr包的fastqc()函数其实支持手动指定FastQC可执行文件的路径,你可以试试这个方法绕开环境变量问题:fastqc(fq.dir = "~/WES_Pipeline/Data", qc.dir = "~/WES_Pipeline/FASTQC", threads = 4, fastqc.path = "/usr/local/bin/fastqc") # 替换成你刚才用which查到的实际路径检查FastQC的执行权限
就算路径对了,如果FastQC没有执行权限也会报错。在终端里运行ls -l /path/to/fastqc(替换成你的FastQC路径),看权限列有没有x标记(执行权限)。如果没有,执行sudo chmod +x /path/to/fastqc给它加上执行权限。确认R会话的环境变量继承
如果你是通过图形界面启动的R/RStudio,它可能没继承终端里配置的PATH(比如你在~/.bashrc或~/.profile里加的路径)。这时候可以在R里临时添加路径:# 把下面的路径替换成你的FastQC所在的bin目录 Sys.setenv(PATH = paste(Sys.getenv("PATH"), "/usr/local/bin", sep = ":"))之后再重新调用
fastqc()试试。验证FastQC本身是否正常
在终端里直接运行fastqc --version,看能不能正常输出版本信息。如果终端里都跑不了,那说明FastQC本身安装有问题,你可以尝试用sudo apt-get install fastqc重新安装(Ubuntu14.04的源里应该有这个包),或者从官方下载解压后重新配置路径。
内容的提问来源于stack exchange,提问作者Lot_to_learn

