入力ファイルのリストを含むディレクトリを作成し、コマンドラインツールと出力を実行するワークフローを作成しようとしています結果を出力ディレクトリに格納します。それは本当にシンプルでなければなりません。'FILE'が存在しないか、読み込めませんでした。エラー
問題は、私はそれを入力ディレクトリを与えるたび、私はファイルが存在することを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:私はスクリプトがひどいと知っていますが、私は学習しています:)。提案は間違いなく歓迎されましたが! os.listdir()
はファイル名だけではなく、完全なパスを返しますので、これは
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(os.path.join(inputDir, file))
:これに
fastq_directory = os.listdir("{}".format(inputDir))
fastq_files = []
for file in fastq_directory:
fastq_files.append(file)
:
fastqcはファイルと同じディレクトリに実行可能ですか?そうでない場合は、絶対パスではなく(つまり、 '/ Documents/name/KO1_R1.fastq.gz')ファイル名(' KO1_R1.fastq.gz')だけを与えているというエラーがあると思われます。 – nbryans