글쎄, 나는 메이크 파일의 도움으로 나를 위해 일부 데이터를 실행하는 파이프 라인을 가지고있다. 이 파이프 라인은 내가 정리하고자하는 엄청난 양의 중복 파일을 생성합니다.깨끗한 중복 파일
파이프 라인을 실행하는 데 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에서
을 getCommand에 추가가되어야이 getCommand는 chipchap.mk의 기본 목표를 실행하고 있습니까? (그게 어떻게 생겼는지 모르겠다.) 기본 대상에 이름이 있으면 getCommand 명령에'<기본 대상 이름> cleanintermediate'를 추가하여 작동하게 할 수 있습니다. 그렇지 않다면'pool1_negCTRL' 본문에서 모든 변수를 제외하고'cleanintermediate'를 대상으로 두 번째 make를 실행할 수도 있습니다. –
@EtanReisner 정말로 getcommand가하는 일입니다. (늦은 답변에 대해 유감스럽게 생각합니다!) 그리고 나는 그걸 잘 설명해 주셔서 감사합니다. 내가 작동하게되면 너는 그것을들을 것이다! –