2013-07-25 1 views
0

매번 스크립트를 입력하지 않고 여러 파일에 파이썬 스크립트 (QIIME 파이프 라인에서)를 실행하도록 스크립트 파일을 만들려고합니다. (약 150 개 이상의 파일이 있습니다).여러 파일에 파이썬 QIIME 스크립트 실행하기

우분투 환경을 실행하기 위해 가상 박스를 사용합니다.

나는 gedit를 사용하여 파일 "splitvm3.sh"를 작성하여 시작

이 파일에는 다음이 포함

#!/bin/sh 
# this is the script for the VM3 experiment ~/splitvm3.sh 

split_libraries.py -m mappingVM3001.txt -b 0 -p -f DNA12115-001-L1-R1-ACGCTCGACA.fna -q DNA12115-001-L1-R1-ACGCTCGACA.qual -o split_library_output001 

split_libraries.py -m mappingVM3002.txt -b 0 -p -f DNA12115-002-L1-R1-AGACGCACTC.fna -q DNA12115-002-L1-R1-AGACGCACTC.qual -o split_library_output002 

는 내가 명령 사용 : 어디 디렉토리에서

chmod +x ./splitvm3.sh 

을 내 파일이 저장됩니다.

그리고 마침내 나는 입력하여 스크립트를 실행

SyntaxError: invalid syntax 

은 분명히 내 파일의 라인 4에 가리키는 :

python splitvm3.sh 

나는 오류 메시지가 있습니다.

나는 잘못되고있는 것을 이해하는 데 필요한 기본 지식이 완전히 부족합니다. 2 주 전에이 우분투/파이썬/QIIME 작업을 시작했고 나 혼자서 모든 것을 배웠습니다. 조금씩 도움을 주시면 대단히 감사하겠습니다!

셉은

답변

0

나는 'split_libraries.py'

에 대해이 스크립트 오류 메시지가 기록 것으로 보인다 모르겠어요.

이 "line 4"에 대처하고 터미널에서 직접 호출하십시오. 무슨 일이야? 어디에서 '... txt'파일을 가져 왔습니까?

입력 파일 중 하나가 잘못된 형식이거나 잘못된 인코딩입니까?

+0

안녕하세요, 'split_libraries.py'는 QIIME 파이프 라인의 스크립트입니다. 나는 .txt 파일을 직접 만들고 스크립트를 시작하기 전에 테스트한다. 내 터미널에 4 번 줄 (split_libraries.py ... 001 ...)을 붙이면 예상 된 결과를 얻었습니다. 다음에 대해 동일합니다. 문제는 QIIME 스크립트에서 오는 것이 아니라 내 .sh 스크립트 파일에서 오는 것 같습니다. – user2617763

0

문제는 파이썬 인터프리터를 사용하여 셸 스크립트를 실행하려고하는 것입니다. 사실 split_libraries.py은 python 스크립트이므로 실제로 시도한 스크립트는 실제로 쉘 스크립트입니다.

당신은 거의 그것이 바로 당신이 단지 같은 스크립트를 실행해야 있습니다 또한 단지

sh splitvm3.sh 

또는 당신은 당신이 할 수있는 오두막을 가지고 주어진을 :

./splitvm3.sh 
0

나는이 것을 알고 이전 질문과 문제는 아마 지금까지 정렬되어 있지만 오류는 파일의 여러 줄에서오고 있습니다.

Qiime 스크립트는 올바른 형식으로되어있는 한 여러 파일을 처리 할 수 ​​있습니다.

"splitvm3.SH "파일로 :

split_libraries.py -m mappingVM3001.txt -b 0 -p -f DNA12115-001-L1-R1-ACGCTCGACA.fna,DNA12115-002-L1-R1-AGACGCACTC.fna -q DNA12115-001-L1-R1-ACGCTCGACA.qual,DNA12115-002-L1-R1-AGACGCACTC.qual -o split_library_output 

그런 다음 .fna 및 .qual 파일이 모두 저장되어있는 같은 디렉토리에서 실행

python splitvm3.sh 
0

이 오래된 질문이지만, 내가 실험실 구성원 물어 했어

,369 : 이것에 대해 내가, 내가 또는

find . -name "*.fastq" -exec qiimescriptname.py {} \;
와 나는 여러 파일에 QIIME 스크립트를 실행하는 행운을 했어 추가하고 싶습니다, 나는 다음과 같은 bash는 루프를 수행 실행할

for file in data/*; do usearch32 -fastq_filter "${file}" -fastq_maxee 0.5 -fastq_truncqual 19 -fastq_qmax 45 -fastaout "${file}.fasta"; done;

관련 문제