2016-07-29 5 views
0

part1을 마친 후 2 부 실행하려는 PBS 코드를 실행하려고합니다. 그러나 part1을 완료 한 후에 어떤 이유로 part2를 실행하지 않습니다. 한 번에 2 번 파트를 실행하려면 어떻게해야합니까?PBS 스크립트를 체인화하는 방법은 무엇입니까?

#!/bin/bash -l 
#PBS -N AOGC_Contest 
#PBS -l walltime=10:00:00 
#PBS -l mem=10gb 
#PBS -J 0-2 

cd /mypath 

##module load java ##AN commented out 
##module load gatk ##AN commented out 


SNP=/mypath/file.vcf 
TMPDIR=/mypath/Contest/data/test_tmpdir/ 
FASTA=/mypath/Contest/data/hg19.fasta 
CONTAMINATION=/mypath/Contest/data/test_contamination/ 
POPFILE=/mypath/Contest/data/hg19_CHR_FIXED.vcf 

BAMS=(/mypath//S05-F13-P01_C06A1ACXX-1-13.ReCal.sort.bam /mypath//S08-F10-P01_C06A1ACXX-2-13.ReCal.sort.bam /mypath//AOGC-02-0010_C0J43ACXX-4-13.ReCal.sort.bam) 

SAMPS=(S05-F13-P01 S08-F10-P01 AOGC-02-0010) 

BAM=${BAMS[$PBS_ARRAY_INDEX]} 
SAM=${SAMPS[$PBS_ARRAY_INDEX]} 

#BAM=${BAMS[1]} 
#SAM=${SAMPS[1]} 

echo "$SAM" 

PART1

java -jar GenomeAnalysisTK.jar \ 
-T SelectVariants \ 
-U ALLOW_SEQ_DICT_INCOMPATIBILITY \ 
-R ${FASTA} \ 
-V $SNP \ 
-o ${TMPDIR}/${SAM}_${PBS_ARRAY_INDEX}.vcf \ 
-nt 4 \ 
--excludeNonVariants \ 
--removeUnusedAlternates \ 
--keepOriginalAC \ 
--keepOriginalDP \ 
-sn ${SAM} 

모든 프로그램과 마찬가지로 2 부

java -jar GenomeAnalysisTK.jar \ 
-T ContEst \ 
-U ALLOW_SEQ_DICT_INCOMPATIBILITY \ 
-I ${BAM} \ 
-R ${FASTA} \ 
--popfile ${POPFILE} \ 
--genotypes:VCF4 ${TMPDIR}/${SAM}_$PBS_ARRAY_INDEX.vcf \ 
-o ${CONTAMINATION}/contamination_${SAM}_${PBS_ARRAY_INDEX}.txt 
+2

두 번째 명령이 시작되지 않은 이유를 조사하려고 했습니까 (완료하지 못했습니다)? 그렇게했다면 결과를 공유하십시오. 그것이 의미하는 바와 같이이 게시물에는 불필요한 세부 사항과 많은 중요한 정보가 빠져 있습니다. –

+0

아니요, 아직 이해할 수 없었습니다. – MAPK

답변

0

, 쉘 스크립트는 "작동하지 않습니다"의도와 사실 사이에 약간의 차이가있을 때. 귀하의 경우, 그것은 당신이 의도대로 변수가 설정되지 않은 것처럼 보입니다.

$ SAMPS=(S05-F13-P01 S08-F10-P01 AOGC-02-0010) 
$ echo $SAMPS 
S05-F13-P01 

당신이 SAMPS 공백을 포함한 전체 문자열을 갖고 싶어

, 인용이 :

$ SAMPS='S05-F13-P01 S08-F10-P01 AOGC-02-0010' 
$ echo $SAMPS 
S05-F13-P01 S08-F10-P01 AOGC-02-0010 

(I 선행과 후행 공백을 포함하지 않는 것이 좋습니다 그것은 당신이 사용할 때 추가하는 정도로 간단합니다. 변수).

일반적인 디버깅 기법으로는 $ bash -x scriptname에서 변수가 어떻게 확장되는지 보여줍니다. 또한 스크립트에 set -xset +x을 뿌려 문제 영역에서 더 자세히 표시 할 수 있습니다.

HTH.