申し訳ありませんが、これはダンプですが、どこにも見つかりませんでした。メイクファイルの依存関係を変更して中間ファイルを作成しない
私はたくさんの中間ファイルを作成するmakefileを作成しています。その多くは非常に大きいものです。私はmakefileをセットアップしていたので、私はこれらの中間ファイルを削除しますが、それは私に噛み付くように戻ってくるようです。私はfile10
を作成するステップにあったならば、私はFILE9以外のすべてを削除しているだろう
file10 : file9
file9 : file8
etc...
:depedencyよう
は、たとえば、file10のみFILE9に依存している場合、私はなるだろう。しかし、私はすべてのファイルを削除し、コマンドを実行する場合:すべての中間ファイルが作成されてい
make file10
...私は.INTERMEDIATE : file8 file7 ... etc
、および.SECONDARY : ...
両方としてファイル名をマーキングしようとしたが、それはしていません何らかの形で行動を変えているようだ。
これはおそらくmakeの通常の優れた機能だと私は考えていますが、どうすればそれを無効にすることができますか?
ありがとうございます!
EDIT:完全なメークファイルです。これはいくつかのためにちょっと乱暴なかもしれません、私はmakefilesに非常に新しいです。注意すべき点として、 'fastq-dump'関数は、ファイルに* _1.fastqと(場合によっては)* _2.fastqを与えるでしょう。依存関係が最初に奇妙されている理由は、私はあなたの質問は、あなたのメイクファイルにどのように関係するかを正しく理解してきたと仮定すると、
## all : execute all functions in this makefile (currently not being implemented)
all:
## run_bqsr : runs bqsr on data using SNPs identified using SAMTOOLS mpileup command
.PHONY : run_bqsr
run_bqsr : $(BAMFILE)_recal_data.grp
module load R_3.2.2 && java -jar /opt/gatk/3.3-0/GenomeAnalysisTK.jar -T BaseRecalibrator -nct 8 -R $(REF_GENOME_PATH) -I $(BAMFILE)_realigned_reads.bam -BQSR $(BAMFILE)_recal_data.grp -o $(BAMFILE)_post_recal_data.grp -plots $(BAMFILE)_after_recal.pdf
%_recal_data.grp : %_mpileup.bcf
module load module load R_3.2.2 && java -jar /opt/gatk/3.3-0/GenomeAnalysisTK.jar -T BaseRecalibrator -nct 8 -R $(REF_GENOME_PATH) -I $*_realigned_reads.bam -knownSites $*_mpileup.bcf -o $*_recal_data.grp -plots $*_before_recal.pdf
# create a reference of 'known' SNPs using samtools mpileup. use the -B option to increase sensitivity (important not to include false negatives in analysis because it will mess up the process of adjusting base scores
%_mpileup.bcf : %_realigned_reads.bam
module load samtools_1.2 && samtools mpileup -C50 --BCF -B -f $(REF_GENOME_PATH) $*_realigned_reads.bam -o $*_mpileup.bcf
## realign_indels : realign raw sequencing reads around indels using GATK's RealignerTargetCreator and IndelRealiner
.PHONY : realign_indels
realign_indels : $(BAMFILE)_realigned_reads.bam
%_realigned_reads.bam : %_target_intervals.list
java -jar /opt/gatk/3.3-0/GenomeAnalysisTK.jar -T IndelRealigner -R $(REF_GENOME_PATH) -I $(BAMFILE)_dedup_reads.bam -targetIntervals $*_target_intervals.list -o $*_realigned_reads.bam && rm $(BAMFILE)_dedup_reads.ba* $(BAMFILE)_target_intervals.list
%_target_intervals.list : $(BAMFILE)_dedup_reads.bam
java -jar /opt/gatk/3.3-0/GenomeAnalysisTK.jar -T RealignerTargetCreator -nt 8 -R $(REF_GENOME_PATH) -I $(BAMFILE)_dedup_reads.bam -o $*_target_intervals.list
## remove_dups : remove duplicate reads from SAMfiles, sort, and convert to a single merged BAM file
.PHONY : remove_dups
remove_dups : $(BAMFILE)_dedup_reads.bam
$(BAMFILE)_dedup_reads.bam : $(SAMFILES)
mkdir -p $(BAMFILE_DIR)/metrics; java -jar /opt/picard/1.72/MarkDuplicates.jar $(addprefix I=, $(SAMFILES)) OUTPUT=$(BAMFILE)_dedup_reads.bam M=$(BAMFILE_DIR)/metrics/$(QUERY_INPUT).metrics && java -jar /opt/picard/1.72/BuildBamIndex.jar I=$(BAMFILE)_dedup_reads.bam && rm -r $(SAMFILE_TEMPDIR)/* $(FASTQ_DIR)/*
#mark samfiles and fastq files as secondary:
.INTERMEDIATE : $(SAMFILE_TEMPDIR)/* $(FASTQ_DIR)/*
## map_fastqs : map fastq files to appropriate genome
.PHONY : map_fastqs
map_fastqs : $(SAMFILES)
%_sorted.sam : $(FASTQs)
module load bwa_0.7.13; mkdir -p $(dir $*) ; if echo $(PAIRED) | grep $(notdir $*); then bwa mem -M -R '@RG\tID:$(notdir $*)$(RG)' $(REF_GENOME_PATH) $(FASTQ_DIR)/$(notdir $*)_1.fastq $(FASTQ_DIR)/$(notdir $*)_2.fastq > $*.sam ; else bwa mem -M -R '@RG\tID:$(notdir $*)$(RG)' $(REF_GENOME_PATH) $(FASTQ_DIR)/$(notdir $*)_1.fastq > $*.sam; fi && java -jar /opt/picard/1.72/SortSam.jar I=$*.sam O=$*_sorted.sam SORT_ORDER=coordinate
## print_fastqs : print full path fastq files to be written
.PHONY : print_fastqs
print_fastqs :
@echo $(addprefix ../FASTQ/$(QUERY_INPUT)/,$(ALL_FASTQs))
## get_fastqs : get all fastq files for particular query:
.PHONY : get_fastqs
get_fastqs : $(ALL_FASTQs)
%_2.fastq : %_1.fastq
$(MARK_READS_EXE) $*_1.fastq && $(MARK_READS_EXE) $*_2.fastq
%_1.fastq :
mkdir -p $(dir $*); cd $(dir $*); $(FASTQDUMP_EXE) --split-files -F -I -X 10000 $(notdir $*)
#$(ALL_FASTQs) : $(FASTQs)
# echo $* $<
## give_org : print organism of this biosample
.PHONY : give_org
give_org :
@echo $(ORGANISM)
## print_SRRs : print the SRR files that will be downloaded
.PHONY : print_SRRs
print_SRRs :
@printf '\nPAIRED = $(PAIRED)\nUNPAIRED = $(UNPAIRED)\n'
## clean : clean up temporary files
.PHONY : clean
clean :
rm $(FASTQ_DIR)/SRR* $(SAMFILE_TEMPDIR)/*.sam $(BAMFILE_DIR)/$(QUERY_INPUT)*
## help : print help statement
.PHONY : help
help : makefile
@sed -n 's/^##//p' $<
完全な例を示します。最終的に 'file1'の前提条件となる物理的永続ファイルがありますか? 'file1'が存在しない場合、それは再作成する必要があります。つまり、' file2'は再作成する必要があり、等を意味します。中間ファイルについてのあなたの質問と思います赤ちゃんかもしれません。 – user657267