2014-04-04 3 views
0

글쎄, 나는 메이크 파일의 도움으로 나를 위해 일부 데이터를 실행하는 파이프 라인을 가지고있다. 이 파이프 라인은 내가 정리하고자하는 엄청난 양의 중복 파일을 생성합니다.깨끗한 중복 파일

파이프 라인을 실행하는 데 1 개의 메이크 파일이 있습니다. 그리고 파이프 라인 자체는 다른 많은 메이크 파일과 연결되어 있습니다. 내가이 스크립트는 파이프 라인을 호출하고에 제공 run_samples.mk 모든 샘플 별도로 명령을 실행 시작이 make -f run_samples.mk 처럼 내 파일을 실행 이제

.PHONY cleanintermediate  
cleanintermediate: $(CHIPCAP_OUTPUT) 
     rm -rf $(SAMPLE)clipsync.trimsync.fastq 
     rm -rf $(SAMPLE)clipsync.fastq 
     rm -rf $(SAMPLE)clip.fastq 
     rm -rf $(SAMPLE).fastq 
     rm -rf $(SAMPLE).wig && $(RM) -rf $(SAMPLE).wig.idx 
     rm -rf $(SAMPLE).sam 

: 그래서 파이프 라인 chipcap.mk 파일에이 코드를 추가 파이프 라인은 다음과 같습니다

all: pool1_negCTRL pool1R2R1 pool1SP1 pool2Posctrl pool2R2R2 pool2Input 

getCommand = $(MAKE) -f /data/DIV5/SASC/project-064-ronald-svdz/analysis/pipelines/chipcap/chipcap.mk \ 
     IN_DIR=/data/DIV5/SASC/project-064-ronald-svdz/input/$(1) \ 
     OUT_DIR=/data/DIV5/SASC/project-064-ronald-svdz/analysis/runs/$(2) \ 
     CHIPCAP_VER=0.1.2 \ 
     FASTQ_EXT=fastq \ 
     CHIPCAP_INPUT=$(3) \ 
     CHIPCAP_QC_MODE=cliptrim \ 
     GZIP_EXT=gz \ 
     MACS14_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/macs \ 
     PYTHON_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/python2.7 \ 
     OPT_MACS14_mfold=$(4),$(5) 
     #OPT_MACS14_control=control.bam 

#Negative control sample 
pool1_negCTRL: 
     $(call getCommand,pool1,pool1_negCTRL_monday_test,pool1-negCTRL_S1_L001_R1_001.fastq.gz,15,30) 

어떻게 (chipcap.mk에있는)도 cleanintermediate이 실행되어야한다는 run_samples.mk을 말할 수있다. 나는 많이 혼란 스럽지만 옳은 길을 찾을 수 없습니다. chipcap.mk에서

+1

을 getCommand에 추가가되어야이 getCommand는 chipchap.mk의 기본 목표를 실행하고 있습니까? (그게 어떻게 생겼는지 모르겠다.) 기본 대상에 이름이 있으면 getCommand 명령에'<기본 대상 이름> cleanintermediate'를 추가하여 작동하게 할 수 있습니다. 그렇지 않다면'pool1_negCTRL' 본문에서 모든 변수를 제외하고'cleanintermediate'를 대상으로 두 번째 make를 실행할 수도 있습니다. –

+0

@EtanReisner 정말로 getcommand가하는 일입니다. (늦은 답변에 대해 유감스럽게 생각합니다!) 그리고 나는 그걸 잘 설명해 주셔서 감사합니다. 내가 작동하게되면 너는 그것을들을 것이다! –

답변

0
cleanintermediate: $(CHIPCAP_OUTPUT) 

cleanintermediate: all

runchipcap.mk에서이 cleanintermediate이

getCommand = $(MAKE) -f /data/DIV5/SASC/project-064-ronald-svdz/analysis/pipelines/chipcap/chipcap.mk \ 
     IN_DIR=/data/DIV5/SASC/project-064-ronald-svdz/input/$(1) \ 
     OUT_DIR=/data/DIV5/SASC/project-064-ronald-svdz/analysis/runs/$(2) \ 
     CHIPCAP_VER=0.1.2 \ 
     FASTQ_EXT=fastq \ 
     CHIPCAP_INPUT=$(3) \ 
     CHIPCAP_QC_MODE=cliptrim \ 
     GZIP_EXT=gz \ 
     MACS14_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/macs \ 
     PYTHON_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/python2.7 \ 
     OPT_MACS14_mfold=$(4),$(5) cleanintermediate 
     #OPT_MACS14_control=control.bam