2016-08-09 1 views
0

입력 파일 목록을 포함하는 디렉토리를 취하고 명령 행 도구 및 출력을 통해 실행하는 워크 플로를 만들려고합니다. 결과를 출력 디렉토리에 저장합니다. 그것은 정말 간단해야하고, 나는 그것이 작동하도록 ... 대부분 얻었습니다.존재하지 않거나 읽을 수없는 'FILE'을 건너 뜁니다.

디렉토리를 입력 할 때마다 파일이 존재한다는 것을 100 % 확신하지만 "존재하지 않거나 읽을 수없는 파일 건너 뛰기"오류가 발생합니다. 내 입력 디렉토리에.

그러나 코드를 조금만 변경하고 입력 파일이면서 디렉토리가 아닌 경우에만 스크립트를 실행하여 완벽하게 완료해야합니다.

입력 파일을 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 

모든 권고 여기

스크립트입니까?

추신 : 나는 스크립트가 끔찍하다는 것을 알고 있지만, 나는 배우고있다. :). 제안은 확실히 환영했지만! 이 변경

+0

fastqc는 파일과 동일한 디렉토리에서 실행 가능합니까? 그렇지 않다면, 나는 절대 경로 (즉,'/ Documents/name/KO1_R1.fastq.gz')가 아닌 파일 이름 (즉'KO1_R1.fastq.gz') 만주고 있다는 오류가 의심 스럽습니다 – nbryans

답변

2

시도 : 여기에

fastq_directory = os.listdir("{}".format(inputDir)) 
fastq_files = [] 
for file in fastq_directory: 
     fastq_files.append(file) 

는 : os.listdir()은 파일 이름이 아닌 전체 경로를 반환하기 때문에

fastq_directory = os.listdir("{}".format(inputDir)) 
fastq_files = [] 
for file in fastq_directory: 
     fastq_files.append(os.path.join(inputDir, file)) 

이다.

+0

이것이 문제를 해결했습니다 , 고맙습니다! – System