跳过 'FILE' 不存在或无法读取错误
Skipping 'FILE' which didn't exist, or couldn't be read error
我正在尝试创建一个工作流,在该工作流中我获取一个包含输入文件列表的目录并通过命令行工具运行它们并将结果输出到输出目录。它应该非常简单,而且我已经让它工作了......主要是。
问题是每当我给它输入 目录 时,我都会收到 "Skipping FILE which didn't exist, or couldn't be read" 的错误,即使我 100% 确定这些文件存在于我的目录中输入目录。
但是,如果我稍微修改一下代码,只为它提供输入 file 而不是目录,脚本就会像它一样运行应该并且完美地完成。
我的输入文件是 gzip 压缩的。
这是脚本:
import argparse
import subprocess
import os
parser = argparse.ArgumentParser(description="A RNAseq pipeline for pair-end data")
parser.add_argument("-i", "--inputDir", help="A input directory containing your gzipped fastq files", required=True)
parser.add_argument("-o", "--outputDir", help="Output directory", required=True)
parser.parse_args()
### Define global variables
args = parser.parse_args()
inputDir = args.inputDir
outputDir = args.outputDir
### Grab all fastq files in input directory
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(file)
### Run FastQC
for file in fastq_files:
fastqc_command = "fastqc --extract -o {} {}".format(outputDir, file)
subprocess.check_output(['bash', '-c', fastqc_command])
错误:
Skipping 'KO1_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO1_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO2_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO2_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO3_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO3_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT1_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT1_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT2_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT2_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT3_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT3_R2.fastq.gz' which didn't exist, or couldn't be read
有什么建议吗?
PS:我知道脚本很糟糕,但我正在学习:)。尽管绝对欢迎提出建议!
尝试改变这个:
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(file)
为此:
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(os.path.join(inputDir, file))
这是因为 os.listdir()
只会 return 文件名,而不是完整路径。
我正在尝试创建一个工作流,在该工作流中我获取一个包含输入文件列表的目录并通过命令行工具运行它们并将结果输出到输出目录。它应该非常简单,而且我已经让它工作了......主要是。
问题是每当我给它输入 目录 时,我都会收到 "Skipping FILE which didn't exist, or couldn't be read" 的错误,即使我 100% 确定这些文件存在于我的目录中输入目录。
但是,如果我稍微修改一下代码,只为它提供输入 file 而不是目录,脚本就会像它一样运行应该并且完美地完成。
我的输入文件是 gzip 压缩的。
这是脚本:
import argparse
import subprocess
import os
parser = argparse.ArgumentParser(description="A RNAseq pipeline for pair-end data")
parser.add_argument("-i", "--inputDir", help="A input directory containing your gzipped fastq files", required=True)
parser.add_argument("-o", "--outputDir", help="Output directory", required=True)
parser.parse_args()
### Define global variables
args = parser.parse_args()
inputDir = args.inputDir
outputDir = args.outputDir
### Grab all fastq files in input directory
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(file)
### Run FastQC
for file in fastq_files:
fastqc_command = "fastqc --extract -o {} {}".format(outputDir, file)
subprocess.check_output(['bash', '-c', fastqc_command])
错误:
Skipping 'KO1_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO1_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO2_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO2_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO3_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'KO3_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT1_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT1_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT2_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT2_R2.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT3_R1.fastq.gz' which didn't exist, or couldn't be read
Skipping 'WT3_R2.fastq.gz' which didn't exist, or couldn't be read
有什么建议吗?
PS:我知道脚本很糟糕,但我正在学习:)。尽管绝对欢迎提出建议!
尝试改变这个:
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(file)
为此:
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(os.path.join(inputDir, file))
这是因为 os.listdir()
只会 return 文件名,而不是完整路径。