2016-08-09 17 views
0

入力ファイルのリストを含むディレクトリを作成し、コマンドラインツールと出力を実行するワークフローを作成しようとしています結果を出力ディレクトリに格納します。それは本当にシンプルでなければなりません。'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) 

+0

fastqcはファイルと同じディレクトリに実行可能ですか?そうでない場合は、絶対パスではなく(つまり、 '/ Documents/name/KO1_R1.fastq.gz')ファイル名(' KO1_R1.fastq.gz')だけを与えているというエラーがあると思われます。 – nbryans

答えて

2

はこれを変更してみてください。

+0

これで問題は解決しました、 ありがとうございました! – System

関連する問題